web-dev-qa-db-fra.com

Comment empêcher le formateur Eclipse de placer tous les enums sur une seule ligne

J'ai des enums comme:

public static enum Command
{
login,
register,
logout,
newMessage
}

Lors du formatage du fichier, le résultat devient:

public static enum Command 
{
login, register, logout, newMessage
}
97
MetaChrome

La réponse de @wjans a bien fonctionné pour les énumérations normales, mais pas pour les énumérations avec arguments. Pour développer un peu sa réponse, voici les paramètres qui m'ont fourni le format le plus judicieux dans Eclipse Juno:

  1. Window> Preferences> Java> Code Style> Formatter
  2. Cliquez sur Edit
  3. Sélectionnez l'onglet Line Wrapping
  4. Sélectionnez le code de déclaration enum
  5. Définissez Line wrapping policy sur Wrap all elements, every element on a new line (...) afin qu’il indique maintenant 3 sur 3 dans la parenthèse.
  6. Désélectionnez Force split, even if line shorter than maximum line width (...) pour qu'il indique maintenant 3 sur 3 entre parenthèses.
  7. Sélectionnez le treenode Constants
  8. Vérifier Force split, even if line shorter than maximum line width

Cela définit les 3 sous-noeuds pour le treenode enum sur la même politique de wrapping et la même politique de fractionnement de force, à l'exception du treenode Constants, de sorte que vos enums avec arguments seront formatés chacun sur leur propre ligne. Les arguments ne seront renvoyés à la ligne que s'ils dépassent la largeur de ligne maximale.

Exemples:

@wjans

enum Example {
    CANCELLED,
    RUNNING,
    WAITING,
    FINISHED
}

enum Example {
    GREEN(
        0,
        255,
        0),
    RED(
        255,
        0,
        0)
}

Solution décrite ci-dessus:

enum Example {
    CANCELLED,
    RUNNING,
    WAITING,
    FINISHED
}

enum Example {
    GREEN(0, 255, 0),
    RED(255, 0, 0)
}
190
PolyTekPatrick

Vous pouvez spécifier ceci dans vos préférences de formateur:

  • Préférences: Java - Style de code - Formateur
  • Cliquez sur Modifier
  • Sélectionnez l'onglet 'Line Wrapping'
  • Sélectionnez la déclaration 'enum' -> Constantes dans la case de gauche
  • Définissez la stratégie d'habillage de ligne sur "Emballer tous les éléments, chaque élément sur une nouvelle ligne"
  • Check 'Force divisée ...'
49
wjans

C'est un peu moche aussi, mais si la politique de votre entreprise vous empêche de modifier le formateur, vous pouvez simplement mettre des commentaires à la fin des lignes que vous ne souhaitez pas encapsuler.

public static enum Command 
{
    login,//
    register,//
    logout,//
    newMessage//
};
10
Raku

Ce n'est pas agréable, mais vous pouvez désactiver le formateur Eclipse pour certaines sections de code ...

// @formatter:off
public static enum Command {
    login,
    register,
    logout,
    newMessage
};
// @formatter:on

l'option est dans le panneau Windows-> Préférences-> Java-> Code Style-> Formatter-> Edition-> Balises désactivées

5
pauli

Vous devez définir la stratégie de retour à la ligne dans la déclaration enum pour "Constantes".

Définissez la politique d’emballage sur

  • Envelopper tous les éléments, chaque élément sur une nouvelle ligne

ET

  • Cochez la case "Force Split, même si la ligne est plus courte que ,
4
Ray Toal

Tout en ajoutant la dernière Eclipse 2018.9

  1. Window > Preferences > Java > Code Style > Formatter - Edit
  2. Développez le noeud d'arbre Line Wrapping.
  3. Développer Wrapping settings
  4. Développer 'enum' declaration
  5. Éditez Constants et Constant arguments.

Les constantes doivent être Wrap all elements, every element on a new line. Les arguments constants doivent être Wrap where necessary.

0
Ondrej Burkert