Eclipse: Können Sie Code beim Speichern formatieren?


123

In Eclipse können Sie unter Windows-> Preference-> Java-> Code StyleCodevorlagen für Kommentare und Code definieren und einen Codeformatierer einrichten.

Ich frage mich, ob es in Eclipse möglich ist, dass diese Einstellungen jedes Mal wirksam werden, wenn ich eine Quelldatei speichere. Anstatt dass ich alles hervorhole und Ctrl+ + Shiftdrücke F, möchte ich, dass Eclipse dafür verantwortlich ist, dass mein Code richtig formatiert ist.

Ist das möglich und wie richten Sie es ein?

Hinweis zur Verwendung des automatischen Formats: Es ist wahrscheinlich am besten, "Bearbeitete Zeilen formatieren" zu wählen, da das Zusammenführen von Änderungen sehr schwierig wird, wenn Sie eine ganze Datei neu formatieren, die sich bereits in der Quellcodeverwaltung befindet und nicht richtig formatiert wurde. Habe das schon einem Mitarbeiter angetan.


4
Gute Frage, aber ich bin nicht einverstanden mit der Aktivierung von "Bearbeitete Zeilen formatieren". Wenn das gesamte Team über SCM auf denselben XML-Deskriptor im Format zugreifen kann, sollte das Team damit rechnen, dass die Dateien neu formatiert werden. Mit anderen Worten, der kurzfristige Schmerz des Zusammenführens ist den Vorteil einer konsistenten Formatierung wert.
HDave

2
@ HDave zustimmen. Der Code sollte jederzeit in allen Projekten gegenüber einer "Formatquelle" robust sein.
Thorbjørn Ravn Andersen

@ ThorbjørnRavnAndersen Wenn alle diese Einstellungen verwenden, können Sie "Bearbeitete Zeilen formatieren" auswählen. Es wird einige Zeit sparen, wenn Ihre Dateien groß sind. Ich stimme Ihnen zu, dass der Code gegenüber einer "Formatquelle" robust sein muss, aber es ist nicht die Aufgabe von Eclipse, sicherzustellen, dass dies der Fall ist, denke ich.
Brimborium

@brimborium eine politische Entscheidung. Persönlich glaube ich, dass je näher Sie an den Standardeinstellungen bleiben, desto reibungsloser laufen die Dinge.
Thorbjørn Ravn Andersen

1
@ ThorbjørnRavnAndersen Das würde bedeuten, dass die automatische Formatierungsoption deaktiviert wird ...;) Ich meine, ich speichere immer Ctrl+Shift+Fgefolgt von Ctrl+S, also wäre es in Ordnung für mich, aber es gibt andere Leute, denen das Formatieren egal ist. Diese Funktion macht unser Leben so viel einfacher ...
Brimborium

Antworten:


203

Unter PreferencesWählen Sie Java-> Editor-> Save Actions. Aktivieren Sie das Perform the selected actions on saveKontrollkästchen und aktivieren Sie das Kontrollkästchen Format source code.

Dies ist möglicherweise in früheren Versionen von Eclipse verfügbar oder nicht. Ich weiß, dass es funktioniert in:

Version: 3.3.3.r33x_r20080129-_19UEl7Ezk_gXF1kouft<br>
Build id: M20080221-1800

3
Das sieht sehr nützlich aus - gibt es eine Möglichkeit, dasselbe für PHP-Code zu erreichen?
Vacilando

3
Gut, aber wie machen Sie dasselbe für Nicht-Java-Dateien?
26 ᆺ ᆼ

@ PéterVarga, wenn Sie PyDev verwenden, überprüfen Sie dies
Grisaitis

1
Dies sieht sehr nützlich aus - gibt es eine Möglichkeit, dasselbe für C ++ - Code zu erreichen?
HAL9000

15

Ich empfehle dringend, Ihren XML-Deskriptor im Eclipse-Format in der Quellcodeverwaltung zu überprüfen. Auf diese Weise können alle Mitglieder des Teams es verwenden und Sie können Schlachten nicht neu formatieren.


Kann dies so gemacht werden, dass die XML-Datei standardmäßig installiert ist?
HDave

12

Ich habe eine Momentaufnahme der Einstellung. Bitte folgen Sie dem Pfad:

PreferencesWählen Sie im Fenster Java-> Editor-> Save Actions.

Überprüfen Sie die Perform the selected actions on saveund überprüfen Sie die Format source code box.

Geben Sie hier die Bildbeschreibung ein


2

Wenn Sie feststellen, dass Sie Save Actionsunter Java-> keine Präferenz haben Editor, liegt dies möglicherweise daran, dass Sie eine ältere Version von Eclipse verwenden. In diesem Fall können Sie das Format beim Speichern des Plugins von hier aus installieren .

PreferencesWählen Sie dann unter Java-> Format on save. Wählen Sie die Run FormatOption unterSelect a code formatting action

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.