RSS
 

Artistic style – formatowanie kodów źródłowych C/C++, Java i C#

17 wrz

Jeśli zdarza się wam programować na pewno macie jakiś ulubiony styl formatowania kodu programu. Współpracując z różnymi osobami nad jednym projektem zdarza się, że nie dogadacie się co do tego jak mają wyglądać źródła, jak duże mają być wcięcia, czy dawać spację przy nawiasach albo czy łamać linie z klamrą czy nie. Może wtedy powstać problem tego, że źródła staną się mniej czytelne, a każda ze stron będzie w myślach (lub nie) obarczać winą innych. Również kiedy dołączacie do dojrzałego projektu lub pracujecie w firmie, gdzie są już ustalone reguły formatowania źródeł (inne niż wasze) może się zdarzyć, że wasze przyzwyczajenia są tak silne, że ciągle musicie poprawiać po sobie formatowanie.

Szybkie i łatwe rozwiązanie może przynieść program astyle. Znajduje się on w repozytorium, więc z instalacją nie powinno być problemu.

sudo apt-get install astyle

Ma on zdefiniowane parę stylów, ale można je jeszcze dopasować czy to dodając odpowiednie opcje do wywołania programu, albo tworząc plik $HOME/.astylerc i tam zapisując standardowe dla nas opcje formatowania. Jeśli tak jak ja lubicie formatowanie w stylu java i przy okazji chcecie trochę mniejsze wcięcia (standardowo jest 4) bez tabulatorów to wywołacie program tak:

astyle --style=java --indent=spaces=3 nazwa1.cpp nazwa2.cpp ...

Może się to przydać przy formatowaniu źródeł języka C, C++, Java, C# i pewnie innych o podobnej składni. Żeby poznać jakie możliwości oferuję astyle możecie zajrzeć do dokumentacji gdzie znajdziecie nazwy stylów i pozostałe opcję

man astyle

Jeśli korzystacie z Emacsa to oczywiście fajnie by było móc wywołać formatowanie na otwartym buforze. Wystarczy wkleić do swojego .emacs (wziąłem to od Edrica ze stackoverflow)

(defun astyle-this-buffer (pmin pmax)
  (interactive "r")
  (shell-command-on-region pmin pmax
                           "astyle" ;; add options here...
                           (current-buffer) t
                           (get-buffer-create "*Astyle Errors*") t))

i ewentualnie zmienić jeszcze standardowe wcięcie emacsa, tak żeby zgadzało się z tym używanym później przez astyle

(setq-default c-basic-offset 3) ; u mnie to będzie 3

Teraz za każdym razem jak chcecie sformatować bufor to korzystacie z M-x astyle-this-buffer, ale tego pewnie taki elispowy laik jak ja wam mówić nie musi.

 
Brak komentarzy

Opublikował w ubuntu

 

Tagi: ,

Skomentuj

Connect with Facebook

 

 
 
Blog WebMastered by All in One Webmaster.

Switch to our mobile site