2010-09-20 13 views
34

Der Standard-Eclipse-Formatierer formatiert meinen Java-Code in einer wirklich lustigen Art und Weise.Beste Eclipse-Code-Formatierer?

Zum Beispiel: hello.show().x().y() würde seltsamerweise als x() und .y() formatiert werden, und in einer separaten Zeile platziert werden.

Gibt es noch andere grundlegende Formatierer, die einen besseren Job machen können?

Beispiele und Links sind sehr willkommen.

+5

Definieren Sie "wirklich lustig"? Wie in: Was magst du daran nicht? – Blam

+1

Ich möchte diese Methodenaufrufe nicht in separaten Zeilen haben, oder? – duffymo

+2

Das passiert, wenn die Linie zu lang ist. Wenn x(). Y() über dem rechten Rand liegt, würde ich darüber nachdenken, Zeilen ein wenig aufzuteilen. –

Antwort

27

Ich ändere immer den Formatierer in Eclipse zu Java Convention UND ändern Sie die Registerkarte Politik immer Leerzeichen statt Tab oder Mischen von Tab und Leerzeichen zu verwenden. Irgendwann ändere ich auch die Zeilenbreite auf 100 oder 120 (80 Zeichen sind auf meinem Monitor einfach zu eng).

In Bezug auf Ihre spezifische Anfrage: Ja, Sie können dieses Verhalten ändern. Gehen Sie zur Formatierereinstellung und erstellen Sie Ihr eigenes Profil. Ändern Sie es auf der Registerkarte Zeilenumbruch und deaktivieren Sie Prefer wrapping outer expressions (keep nested expression on one line).

Weitere Informationen über: https://bugs.eclipse.org/bugs/show_bug.cgi?id=313524

+0

genau das, was ich suchte –

+0

Nur Problem mit breiten Linien ist, wenn Sie Eclipse fragen, sie zu drucken ... –

+0

Alter Thread aber wird immer noch antworten. Drucken ist ein Problem. Ich stimme zu. Ich beende gerade einen Formatierer für das Team. Ich bin für Java Convention mit nur Leerzeichen, blockierten und Zeilenkommentar Formatierung und 120 Zeilen. Wir als Programmierer müssen uns von der 80-Linien-Konvention entfernen. In diesen Tagen, wo große LCDs in Softwareentwicklungsfirmen sehr üblich sind, müssen wir anfangen, zu 120 Linienkonventionen zu wechseln und den Schmerz auf unseren Augen zu verringern. – RuntimeException

5

Haben Sie darüber nachgedacht, die Einstellungen für den Formatierer zu überprüfen? Sie können es grundsätzlich so konfigurieren, dass Sie alles tun, was Sie wollen.

Ich würde jedoch stark die Standard-Eclipse-Formatierung berücksichtigen. Es hilft viel, nur den Standard zu verwenden, und dann passen Sie Ihren Codierungsstil an, um gut damit zu arbeiten.

+0

[Fast] (http://stackoverflow.com/q/8686252/403455) alles, was Sie wollen. :( –

8

Neben der Fähigkeit, die Formatierer anpassen, wie von Thorbjørn angegeben ist, ist es auch möglich Codierungskonventionen von spezifischen Projekten zu importieren, vor allem die, die von Frameworks und Bibliotheken, die Sie arbeiten an.

Zum Beispiel wurden die Spring framework coding conventions zur Verfügung gestellt, wie es bei Android der Fall ist. Schließlich sollten Sie besser mit den Kodierungskonventionen von Sun beginnen (als mit einem vollständig von Hand erstellten) und einige Anpassungen vornehmen, die sich an den Kodierungsstil und die Lesbarkeitsanforderungen Ihres Unternehmens anpassen.

65

Ich empfehle die google's style guide, es ist eine Sammlung von Coding Style Guide für häufig verwendete Programmiersprachen.

Die Eclipse konfigurierbare Java-Anleitung finden Sie here. Installieren der Führung ganz einfach, Speichern Sie die Stil xml in eine Datei und importieren Sie das folgende Dialogfeld mit:

Fenster -> Einstellungen -> Java -> Code-Style -> Formatter

Schließlich Wählen Sie das aktive Profil als GoogleStyle.

+6

Dies wirft einen Fehler beim Import jetzt mit Eclipse Mars auf. Spezifische Details: 'Probleme beim Lesen von Profilen aus XML Der Attributname" data-pjax-transient ", der einem Elementtyp" meta "zugeordnet ist, muss durch das Zeichen '=' ersetzt werden. – anon58192932

+2

https://github.com/google/google -java-format probiere stattdessen diese Lösung – vikramvi

+1

@ anon58192932 Der "data-pjax-transient" -Fehler tritt auf, wenn du die Datei von der github-Webseite herunterlädst (zB speichern unter). Der Inhalt ist dann HTML und ** NICHT ** die XML-Datei! Wenn Sie einen echten Download der Raw-Datei machen, funktioniert es ... – Lonzak