2014-09-30 10 views
30

Czy istnieje opcja formatu klangowego do dodawania nawiasów klamrowych do wszystkich instrukcji if()/do/while etc?Czy format klangów może dodawać nawiasy klamrowe do pojedynczego wiersza, jeśli instrukcje itp.

np

if(i == 42) 
    std::cout << "You found the meaning of life\n"; 
else 
    std::cout << "Wrong!\n"; 

do

if(i == 42) 
{ 
    std::cout << "You found the meaning of life\n"; 
} 
else 
{ 
    std::cout << "Wrong!\n"; 
} 

Korzystanie

$ clang-format --version 
clang-format version 3.6.0 
+0

nie znaleźliśmy żadnych opcji dla tego w szybki skan (http: //clang.llvm .org/docs/ClangFormatStyleOptions.html) –

+0

@BaummitAugen Nie mogłem - ale opis tego, co tak ja z opcji jest bardzo niewyraźny IMHO – Adrian

Odpowiedz

18

dzyń-schludny może składniowe zmian w kodzie za pomocą FIXITS

clang-tidy YOUR_FILE.cpp -fix -checks="readability-braces-around-statements" -- COMPILE_OPTIONS 

Zaktualizowana:

clang-tidy jest trochę ciężkim narzędziem do tego, ponieważ potrzebuje opcji kompilacji, aby sparsować plik, niestety nie dodając nawiasów klamrowych (od wersji 3.9).

COMPILE_OPTIONS będzie zawierać ścieżki itp używanie skompilować plik, tj -std=c++14 -stdlib=libc++ -O2 -I.

Jeśli masz plik z CMake compile_options.json potem można przekazać ścieżkę do katalogu, to jest zawarte w celu clang- schludny i będzie patrzeć odpowiednie opcje kompilacji dla pliku: [. opcje Clang-Format stylów]

clang-tidy YOUR_FILE.cpp -fix -checks="readability-braces-around-statements" -p COMPILE_OPTIONS_DIR 
+1

Czy można uruchomić to bez tworzenia bazy danych kompilacji? Załóżmy, że chcę tylko uruchomić sprawdzanie czytelności bez szukania błędów kompilacji. Pytam, ponieważ chcę edytować poszczególne pliki niezależnie od całego projektu. Kiedy próbuję to zrobić, pojawia się komunikat "Błąd podczas próby załadowania bazy danych kompilacji" i "Uruchamianie bez flag". Uważam, że to oznacza, że ​​ignoruje sprawdzanie czytelności, ponieważ nie dodaje klamr, tak jak chciałem . –

+0

Aby dać konkretny przykład, powiedzmy, że mój plik ma "#include" ../premium.h "' ale edytuję plik w katalogu bez 'header.h' w katalogu nadrzędnym. Czy w tym scenariuszu nadal można używać clang-tidy? –

+0

Zaktualizowałem swoją odpowiedź dodatkowymi informacjami, ponieważ nie pasują do komentarza. – jbcoe

Powiązane problemy