2009-11-13 24 views
10

Czy istnieje narzędzie Unix do wiersza poleceń, które będzie formatować/wcięło/upiększa kod źródłowy w różnych językach? Szczególnie interesują mnie Java, JavaScript, PHP i XML, ale najlepiej poradziłbym sobie z innymi.Wielojęzyczny edytor kodu źródłowego w linii poleceń:

(nie szukam czegoś do generowania wyróżniania składni znaczników; już wiem z kilku narzędzi, które to zrobić.)

+1

Zamieściłem podobne pytanie na pytanie: [Jak sformatować/przywrócić wszystkie pliki źródłowe w danym katalogu?] (Http://askubuntu.com/questions/98164/how-to-reformat-reindent-all- the-source-files-in-a-given-directory) – fdierre

+0

Nie próbowałem tego sam, ale myślę, że to obiecuje: https://github.com/google/google-java-format –

+0

różne inne opcje do zrobienia to [można znaleźć tutaj] (https://alternativeto.net/software/artistic-style/) –

Odpowiedz

1

Zawsze uważałem program do formatowania Vima za świetną opcję. Jest świadomy wielu języków i może być rozsądnie dostosowany.

Można rura odpowiednie polecenia w vim tak:

vim MyClass.java <<< gg=G:wq 

Objaśnienie:

  • gg=G formatuje plik
  • :wq zapisuje plik i powraca do wiersza poleceń
+0

Jep wystarczy zrobić gg = G. – Christian

+0

Niestety, nie działa to dobrze, gdy masz kilka adnotacji java przed metodą (np. '@ Zastąpienie',' @ Przestarzałe') –

4

Artystyczny styl. http://astyle.sourceforge.net/

+0

, które można zainstalować przy użyciu homebrew na macu, uruchamiając 'brew install astyle' –

+0

i różne inne opcje, aby to zrobić [można znaleźć tutaj] (https://alternativeto.net/software/artistic-style/) –

0

Vim ma na ogół automatyczne podświetlanie składni i jest dostępny w większości systemów opartych na Uniksie podczas instalacji. Do formatowania i wcięcia w Vimie używam automatów :set autoindent i :set tabstop=4 automatycznie po uruchomieniu. autoindent zachowuje bieżące wcięcie w momencie rozpoczęcia nowej linii, a tabstop ustawia wcięcie kodu po naciśnięciu klawisza tab (tylko w przypadku wcięcia, w przypadku karty o ogólnym użyciu shiftwidth). Aby skonfigurować te opcje przy każdym uruchomieniu, Vim umieści je w pliku ~/.vimrc.

0

Dla XML i HTML użyłem htb.

Jeśli jesteś użytkownikiem Eclipse, to inna opcja to JTidy.

Dla języka Java istnieje Jalopy.

3

Jeśli zostało ustawione opcje auto-formatowanie jako ustawieniach projektu specyficzne w Eclipse, można zrobić coś takiego:

/opt/local/eclipse/eclipse -nosplash 
-application org.eclipse.jdt.core.JavaCodeFormatter 
-verbose 
-config .settings/org.eclipse.jdt.core.prefs 
src/ tests/ doc/examples/ 

Oznacza to, że praktycznie zainstalować i skonfigurować Eclipse do tego celu, jeśli tylko za korzystanie to funkcje autoformatowania, niezależnie od tego, z jakiego edytora korzystasz normalnie. :)

Źródło: http://blogs.operationaldynamics.com/andrew/software/java-gnome/eclipse-code-format-from-command-line

Uwagi dodatkowe

W systemie Mac OS X:

/Applications/eclipse/java-oxygen/Eclipse.app/Contents/MacOS/eclipse -nosplash -application org.eclipse.jdt.core.JavaCodeFormatter -verbose -config ~/my-eclipse-workspace/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.core.prefs MyClass.java 
+1

Świetna wskazówka. Mam nadzieję, że nie masz nic przeciwko, jeśli dodaję odpowiednik mac. –

0

Więc zwrócić uwagę Style revisor, kod źródłowy formatyzatora z GUI i linii poleceń berło. Będzie obsługiwać różne języki, w tym JavaScript i PHP. Jeśli interesuje Cię użycie linii poleceń - możesz zdefiniować własny styl formatowania jako dodatek. Oczywiście możesz również użyć wielu predefiniowanych stylów.Przykład:

./Style\ Revisor --lang=PHP --style=GNU --path=~/to-your-project-root-dir 

Obecnie program Styl Revisor obsługuje dwa języki: C i Objective-C. Powitanie: http://style-revisor.com/

Z poważaniem.

+0

Brzmi obiecująco! –

+0

Rzeczywiście, od dawna tego szukam. Kiedy będzie gotowy do użycia, dodam vim-support przez moją autoformatową wtyczkę https://github.com/Chiel92/vim-autoformat. Szkoda, że ​​to nie jest open source. –

+0

Autoformatowa wtyczka dla Vima? To jest fajne. –