2010-09-20 3 views
34

Le formateur Eclipse par défaut formate mon code Java d'une manière vraiment amusante.Best Eclipse Code Formatters?

Par exemple: hello.show().x().y() serait étrangement formaté comme x() et .y(), et placé sur une ligne distincte. Y at-il d'autres formateurs de base qui peuvent faire un meilleur travail?

Les exemples et les liens sont les bienvenus.

+5

Définir "vraiment drôle"? Comme dans: Qu'est-ce que tu n'aimes pas? – Blam

+1

Je ne voudrais pas que ces appels de méthode sur des lignes séparées, vous? – duffymo

+2

Cela arrive lorsque la ligne est trop longue. Si x(). Y() est au-dessus de la marge de droite, je considérerais diviser un peu les lignes. –

Répondre

27

Je modifie toujours le formateur dans Eclipse à Convention Java ET modifiez la stratégie de l'onglet pour toujours utiliser l'espace au lieu de l'onglet ou le mélange d'onglet et d'espace. Parfois, je change aussi la largeur de la ligne pour qu'elle soit de 100 ou 120 (80 caractères est juste trop étroit sur mon moniteur).

En ce qui concerne votre demande spécifique: oui vous pouvez changer ce comportement. Accédez à la préférence Formateur et créez votre propre profil. Modifiez-le dans l'onglet Line Wrapping et décochez Prefer wrapping outer expressions (keep nested expression on one line).

Plus d'informations sur: https://bugs.eclipse.org/bugs/show_bug.cgi?id=313524

+0

exactement ce que je cherchais –

+0

Seul le problème avec les lignes larges est quand vous demandez à Eclipse de les imprimer ... –

+0

Ancien fil mais répondra toujours. L'impression est un problème. Je suis d'accord. Je finalise un formateur ici pour l'équipe. Je suis en faveur de Java Convention avec des espaces seulement, le formatage des commentaires de blocs et de lignes est désactivé, et 120 lignes. En tant que programmeurs, nous devons nous éloigner de la convention des 80 lignes. En ces jours où les écrans LCD larges sont très communs dans les entreprises de développement de logiciels, nous devons commencer à passer à 120 convention de ligne et réduire la douleur à nos yeux. – RuntimeException

5

Avez-vous envisagé de consulter les préférences pour le formateur? Vous pouvez essentiellement le configurer pour faire ce que vous voulez. Je considérerais cependant fortement le formatage standard Eclipse. Cela aide beaucoup d'utiliser simplement la norme, puis d'ajuster votre style de codage pour bien fonctionner avec cela.

+0

[Presque] (http://stackoverflow.com/q/8686252/403455) tout ce que vous voulez. :( –

8

En plus de la possibilité de personnaliser le formatter, comme indiqué par Thorbjørn, il est également possible d'importer des conventions de codage de projets spécifiques, en particulier ceux de cadres et les bibliothèques que vous êtes travaille sur.

Par exemple, les Spring framework coding conventions ont été mis à disposition, comme c'est le cas avec Android. En fin de compte, il vaut mieux commencer par les conventions de codage Sun (plutôt que par des conventions entièrement faites à la main), avec quelques ajustements pour s'adapter au style de codage et aux exigences de lisibilité de votre organisation.

65

Je recommande fortement le google's style guide, c'est un ensemble de guides de codage pour les langages de programmation couramment utilisés.

Le guide Java configurable par éclipse peut être trouvé here. Installation du guide est assez simple, Save the xml de style dans un fichier et l'importer dans la boîte de dialogue suivante:

Fenêtre -> Préférences -> Java -> Style Code -> Formatter

Enfin sélectionnez le profil actif comme GoogleStyle.

+6

Cela génère une erreur lors de l'importation maintenant avec Eclipse Mars. Détails spécifiques: 'Problèmes de lecture de profils à partir de XML Le nom d'attribut" data-pjax-transitoire "associé à un type d'élément" meta "doit être suivi du caractère '='. – anon58192932

+2

https://github.com/google/google -java-format essayer cette solution à la place – vikramvi

+1

@ anon58192932 L'erreur "data-pjax-transitoire" se produit si vous téléchargez le fichier à partir de la page Web github (par exemple enregistrer sous). Le contenu est alors HTML et ** PAS ** le fichier XML! Si vous effectuez un téléchargement réel du fichier brut, cela fonctionne ... – Lonzak