Biorąc pod uwagę katalog zawierający drzewo źródłowe, czy istnieje prosty sposób z wiersza poleceń zastąpienie każdego pliku źródłowego jego pięknie przeformatowanym odpowiednikiem?
Należy pamiętać, że zwykle drzewo źródłowe projektu zawiera również pliki, które nie są źródłowe, a same źródła mogą być w różnych językach.
Szukam narzędzia, które obsługuje jak najwięcej języków, ponieważ projekt zwykle zawiera źródła w wielu różnych językach. W szczególności szukałbym czegoś obsługującego xml / html, javascript, ruby i java.
Odpowiedzi:
Możesz użyć vima w trybie ex i poleceń, z terminala.
Aby wciąć pojedynczy plik:
Aby rekurencyjnie wciąć pliki, utwórz następujący skrypt:
indent-with-vim.sh
Teraz wpisz:
Vim dołoży wszelkich starań, aby ponownie zindeksować pliki. Możesz poprawić niektóre określone typy plików.
W przypadku XML:
Zainstaluj
xmllint
Dodaj do swojego.vimrc
Aby poprawić formatowanie PHP:
Pobierz http://www.vim.org/scripts/download_script.php?src_id=15001 (pobierze plik o nazwie php.vim)
Utwórz następujące katalogi w domu:
~/.vim/indent
I skopiuj
php.vim
do~/.vim/indent
Jeśli wynik nie jest zadowalający dla dowolnego typu pliku, możesz poszukać alternatyw w Internecie (np. HTML dla HTML, https://github.com/vim-ruby/vim-ruby w celu ulepszenia Rubiego itd. ).
Tak czy inaczej, możesz użyć techniki .vimrc lub pliku wcięcia foo.vim, aby poprawić wcięcie.
Możesz także zmienić parametry wyszukiwania, aby zastosować je tylko do niektórych określonych typów, takich jak:
źródło
Zainstaluj
indent
pakiet, a następnie uruchom program na plikach.źródło
Nie za darmo, nie z wiersza poleceń, prawdopodobnie zbyt skomplikowane, ale IntelliJ Idea to IDE, które jest w stanie to zrobić. Nie testowałem tego z Javą ani Ruby, ale działa całkiem nieźle z projektem django (python + javascript + HTML).
Ma również dość szeroki wachlarz opcji do konfiguracji, co należy sformatować.
Jeśli jest to problem jednorazowy, możesz bezpłatnie pobrać wersję próbną.
To zrzut ekranu z opcjami formatu HTML. Został zaczerpnięty z PyCharm (ograniczona wersja Pythona, tutaj nie ma wsparcia dla Ruby ani Java), ponieważ używam go, ale IntelliJ powinien być taki sam, ale obsługuje znacznie więcej języków.
źródło
Format Google Java
Ponownie formatuje kod źródłowy Java, aby był zgodny ze stylem Google Java:
https://github.com/google/google-java-format
Wskazówki:
--replace
opcji wraz zxargs
sponge
aby bezpośrednio zastąpić plik wejściowyźródło