Domanda

Abbiamo qui al lavoro una convention di codifica molto strana e non sono riuscito a configurare il formatter Java in Eclipse, nel modo giusto di fare quello che voglio. La convenzione dice:

  • Prima di un tutore riccio "{" dovrebbe esserci sempre una nuova linea

AGGIORNAMENTO] Non esiste una regola nella nostra convenzione che dice, se dopo un "{" dovrebbe essere una pausa di linea o meno. Gli esempi in realtà usano una pausa di linea (e quasi ogni convenzione che ho visto finora dice o implica che dopo un "{" e un "}" dovrebbero essere sempre una pausa di linea). Quindi il campione 1 e 2 sono entrambi "sintatticamente corretti". [/AGGIORNARE

Dato che questo soffia il codice, il nostro team ha deciso di scrivere codice come questo (no, questa non era la mia scelta!):

public void methode(final boolean b)
{ if (b)
  { do.something();
  }
  else
  { do.somethingElse();
  }
}

Ma nel formatter sono riuscito solo a ottenere questo:

public void methode(final boolean b)
{
  if (b)
  { 
    do.something();
  }
  else
  { 
    do.somethingElse();
  }
}

o questo:

public void methode(final boolean b) { 
  if (b) { 
    do.something();
  }
  else {
    do.somethingElse();
  }
}

C'è un modo per dire al formatter di rompere le linee prima di un "{" ma non dopo? So che il primo stile è terribile e sarei lieto di usare uno degli ultimi due, ma questa è una decisione aziendale.

È stato utile?

Soluzione

Quindi, qui un'informazione su questo argomento. Ho fatto qualche ricerca in più. Lo stile del tutore così abominato (campione 1) ha un nome: Lo stile del turistico Horstman o qui Horstman. C'è un piccolo gruppo di persone che lo difendono, in quanto combina i vantaggi dello stile K&R e Allman (Sample 2). Man mano che le parentesi graffe sono allineate e non ci sono "rifiuti" di spazio.

Ma questo non è l'unico vero. Questo stile infelice per i VC. Se è necessario aggiungere una linea tra il tutore di apertura e la prima affermazione, è necessario prima per rompere la linea e mettere lì la tua nuova linea. Nel diff o unione vedrai quindi "una riga è stata aggiunta", ma "una riga è stata scambiata da due righe". Ma la vecchia affermazione è stata cambiata da te.

Quindi un altro argomento, non per usare questo stile.

Altri suggerimenti

Potresti disattivare le parti pertinenti del formatter di codice e utilizzare invece i modelli. Ad esempio durante la digitazione

private_

E colpire Ctrl+Space invocherebbe il modello privato_method. Potresti quindi modificare il modello privato per essere qualcosa del genere -

private ${return_type} ${name}(${}) 
{ ${cursor}
}

Dovresti fare cose simili alle altre dichiarazioni a blocchi e dovresti modificare il tuo stile di codifica per iniziare a usare i modelli più spesso, ma ritengo che potrebbe funzionare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top