Eclipse: Czy możesz sformatować kod przy zapisywaniu?

124

W Eclipse, w Windows-> Preference-> Java-> Code Style, możesz zdefiniować szablony kodu dla komentarzy i kodu, a także możesz skonfigurować program do formatowania kodu.

Zastanawiam się, czy w Eclipse jest możliwe, aby te ustawienia miały wpływ za każdym razem, gdy zapisuję plik źródłowy. Zasadniczo zamiast podświetlania wszystkiego i naciskania Ctrl+ Shift+ F, chcę, aby Eclipse był odpowiedzialny za upewnienie się, że mój kod jest poprawnie sformatowany.

Czy to możliwe i jak to konfigurujesz?

Uwaga dotycząca korzystania z automatycznego formatowania: Prawdopodobnie najlepiej jest wybrać opcję „Formatuj edytowane wiersze”, ponieważ scalanie zmian staje się bardzo trudne podczas ponownego formatowania całego pliku znajdującego się w kontroli źródła, który już nie został poprawnie sformatowany. Zrobiłem to już współpracownikowi.

Fostah
źródło
4
Świetne pytanie, ale nie zgadzam się z włączeniem opcji „Formatuj edytowane wiersze”. Jeśli cały zespół ma dostęp do deskryptora XML tego samego formatu za pośrednictwem SCM, zespół powinien oczekiwać ponownego sformatowania plików. Innymi słowy, krótkotrwały ból związany z łączeniem jest wart korzyści wynikających ze spójnego formatowania.
HDave
2
@HDave zgadzam się. Kod powinien być zawsze odporny na „Źródło formatu” we wszystkich projektach.
Thorbjørn Ravn Andersen
@ ThorbjørnRavnAndersen Jeśli wszyscy używają tych ustawień, możesz wybrać opcję „Formatuj edytowane linie”. Zaoszczędzi to trochę czasu, jeśli twoje pliki są duże. Zgadzam się z Tobą co do konieczności, aby kod był odporny na „Format Source”, ale myślę, że zadaniem Eclipse nie jest upewnienie się, że tak jest.
brimborium
@brimborium to decyzja polityczna. Osobiście uważam, że im bliżej ustawień domyślnych, tym płynniej będzie działać.
Thorbjørn Ravn Andersen
1
@ ThorbjørnRavnAndersen To oznaczałoby, że opcja automatycznego formatowania jest wyłączona ...;) To znaczy, zawsze zapisuję przez Ctrl+Shift+Fnastępujący po Ctrl+S, więc byłoby dobrze, ale są inni faceci, którym nie zależy na formatowaniu. Ta funkcja sprawia, że ​​nasze życie jest o wiele łatwiejsze ...
brimborium

Odpowiedzi:

204

Pod Preferenceswybierz Java-> Editor-> Save Actions. Zaznacz Perform the selected actions on savei zaznacz Format source codepole.

To może, ale nie musi być dostępne w poprzednich wersjach Eclipse. Wiem, że to działa w:

Version: 3.3.3.r33x_r20080129-_19UEl7Ezk_gXF1kouft<br>
Build id: M20080221-1800
Neal Swearer
źródło
3
Wydaje się to bardzo przydatne - czy istnieje sposób na osiągnięcie tego samego w kodzie PHP?
Vacilando
3
Dobrze, ale jak zrobić to samo dla plików innych niż Java?
ᆼ ᆺ ᆼ
@ PéterVarga, jeśli używasz PyDev, sprawdź to
grisaitis
1
Wydaje się to bardzo przydatne - czy istnieje sposób na osiągnięcie tego samego w kodzie C ++?
HAL9000
15

Zdecydowanie zalecam sprawdzenie deskryptora xml formatu eclipse w kontroli źródła. W ten sposób wszyscy członkowie zespołu mogą z niego korzystać i nie można zmieniać formatowania bitew w tę iz powrotem.

serg10
źródło
Czy można to zrobić, aby plik XML był instalowany domyślnie?
HDave
12

Mam migawkę ustawienia. Proszę podążać ścieżką:

W Preferencesoknie wybierz Java-> Editor-> Save Actions.

Sprawdź Perform the selected actions on savei sprawdź Format source code box.

wprowadź opis obrazu tutaj

VdeX
źródło
2

Jeśli okaże się, że nie masz Save Actionspreferencji pod Java-> Editor, może to być spowodowane korzystaniem ze starszej wersji Eclipse. W takim przypadku możesz zainstalować wtyczkę Format przy zapisywaniu stąd .

Następnie pod Preferenceswybierz Java-> Format on save. Wybierz Run Formatopcję podSelect a code formatting action

Mgr Kishawy
źródło