web-dev-qa-db-fra.com

Habillage de lignes de code - comment gérer les longues lignes

Je suis confronté à une ligne particulière de 153 caractères. Maintenant, j’ai tendance à casser des choses après 120 caractères (bien sûr, cela dépend fortement de mon lieu de résidence et des conventions locales.) Mais pour être honnête, partout où je casse la ligne, cela donne une mauvaise image. Je cherche donc des idées sur ce que je devrais faire pour cela.

Voici la ligne:

private static final Map<Class<? extends Persistent>, PersistentHelper> class2helper = new HashMap<Class<? extends Persistent>, PersistentHelper>();

Je suis ouvert aux idées sur comment/où casser la ligne (et pourquoi), ainsi que sur les moyens de raccourcir la ligne elle-même.

Nous ne sommes pas un magasin Java, et il n'y a pas de conventions locales pour ce genre de chose, ou bien je les suivrais simplement.

Merci!

31
corsiKa

En général, je casse les lignes avant opérateurs et indente les lignes suivantes:

Map<long parameterization> longMap
    = new HashMap<ditto>();

String longString = "some long text"
                  + " some more long text";

Pour moi, l’opérateur principal indique clairement que "cette ligne a été poursuivie à partir d’autre chose, elle n’est pas autonome". Bien entendu, d'autres personnes ont des préférences différentes.

35
Anon

Voici comment je le fais et Google le fait à ma façon.

  • Casser avant le symbole pour les opérateurs non affectés.
  • Casser après le symbole pour = et pour ,.

Dans votre cas, puisque vous utilisez 120 caractères, vous pouvez le séparer après l’opérateur d’affectation, ce qui entraîne

private static final Map<Class<? extends Persistent>, PersistentHelper> class2helper =
        new HashMap<Class<? extends Persistent>, PersistentHelper>();

En Java, et dans ce cas particulier, je donnerais deux onglets (ou huit espaces) après la pause, selon que des onglets ou des espaces sont utilisés pour l'indentation.

Ceci est bien sûr une préférence personnelle et si votre projet a sa propre convention pour le retour à la ligne, c’est ce que vous devriez suivre, que cela vous plaise ou non.

10
Daniel

IMHO c'est le meilleur moyen d'écrire votre ligne:

private static final Map<Class<? extends Persistent>, PersistentHelper> class2helper =
        new HashMap<Class<? extends Persistent>, PersistentHelper>();

De cette façon, l'indentation accrue sans accolades peut vous aider à voir que le code vient d'être divisé car la ligne était trop longue. Et au lieu de 4 espaces, 8 le rendront plus clair.

6
Colin Hebert

Utilise les méthodes de fabrique statique de Guava pour les cartes et ne compte que 105 caractères.

private static final Map<Class<? extends Persistent>, PersistentHelper> class2helper = Maps.newHashMap();
4
whiskeysierra

Je pense que déplacer le dernier opérateur au début de la ligne suivante est une bonne pratique. De cette façon, vous savez tout de suite le but de la deuxième ligne, même si cela ne commence pas par un opérateur. Je recommande également 2 espaces d'indentation (2 onglets) pour un onglet précédemment cassé, pour le différencier de l'indentation normale. Cela est immédiatement visible en tant que ligne précédente continue. C'est pourquoi je suggère ceci:

private static final Map<Class<? extends Persistent>, PersistentHelper> class2helper 
            = new HashMap<Class<? extends Persistent>, PersistentHelper>();
0
Sasa