2013-04-13 1 views
0

Existe-t-il un moyen d'empêcher Eclipse d'ajouter une nouvelle ligne avant l'accolade d'ouverture de bloc?Formatage Eclipse. Supprimer une nouvelle ligne avant l'ouverture de l'accolade pour le bloc

Format Eclipse code suivant

p = new JPanel(new GridLayout(0, 1)); { 
    p.add(login); 
    p.add(password); 
} 
frame.add(p, BorderLayout.EAST); 

à

p = new JPanel(new GridLayout(0, 1)); 
{ 
    p.add(login); 
    p.add(password); 
} 
frame.add(p, BorderLayout.EAST); 
+0

Pourquoi le feriez-vous? Le bloc est un bloc anonyme, qui n'est pas du tout lié à la déclaration du Panel. Êtes-vous sûr de ne pas confondre cela avec le code d'un gestionnaire attaché au panneau? Ce serait formaté comme vous le souhaitez. – Bananeweizen

+2

J'utilise un bloc anonyme pour faciliter la relecture. Tout ce contenu de bloc sera ajouté au panneau et est en retrait. – NBlackout

+0

Cool. J'utilise aussi cette technique pour cacher des variables locales répétitives et/ou découpler des fragments de code. – Vitaly

Répondre

1

J'utilise aussi cette technique e parfois.

Je pense que vous ne pourrez pas faire cela dans Eclipse.

Et je dirais, ce qui est bon :)

Think, p = new JPanel(new GridLayout(0, 1)); n'est pas une déclaration qui contrôle le bloc suivant et ainsi ne peut pas l'ouvrir. Lors de la lecture du code lorsque nous trouvons } nous attendons intuitivement pour/if/etc au début qui est synonyme de {. Mais il n'y a que p = new ... Cela n'a aucun sens - la première pensée serait, où est IF ou quelque chose! :)

Nous voulons simplement que le bloc soit séparé du bloc externe - textuellement ou en visibilité de la visibilité. Donc, lors du défilement, nous avons trouvé le { de départ à la même indentation (pas de contrôle ou d'autres déclarations avant) - et c'est tout. Pas d'autres pensées, tout va bien.

Juste changer la façon dont vous y pensez et vous apprécierez { au début de la ligne.

p.s. J'utilise le formatage standard de sorte que toutes les autres accolades de début sont à la fin de la ligne dans mon code.

+0

Merci pour la clarification, je suis d'accord avec vous dans ce sens. C'est juste une convention que j'utilise toujours pour ce cas particulier. Je vais penser différemment ... – NBlackout

1

Aller projet-> Propriétés-> Java Coe Style-> Formatter-> Configurer l'espace de travail Paramètres-> Edition-> Bretelles

Modifier "Déclaration de classe anonyme" à "même ligne"

+0

Toutes les positions d'accolades sont définies comme "même ligne" – NBlackout

0

Je suis également un grand fan de garder mon code d'initialisation groupé dans un bloc dans la création de mes classes. Alors, voici un petit truc que je l'utilise qui tire profit des initialisations statiques:

p = new JPanel(new GridLayout(0, 1)) {{ 
    add(login); 
    add(password); 
}}; 
frame.add(p, BorderLayout.EAST); 

Comme vous pouvez le voir, vous pouvez faire des appels à « ajouter » sans avoir besoin de les préfixer avec « p. » comme dans: "p.add", et vous n'avez plus besoin de vous soucier de mettre les accolades au début de la ligne suivante, puisque le point-virgule est placé à la fin du bloc entier.

Questions connexes