2014-09-17 9 views
10

Używamy lint w naszym kodzie w pracy dla C/C++, próbuję również rozpocząć integrację formatu clang w moim obiegu pracy.format klina łamie adnotacje w postaci linta

Niestety, szarpie czasami wymaga adnotacji ignorować konkretny czek, albo w formacie:

/*lint -[annotation] */ 

lub

//lint -[annotation] 

szczególności, jeśli istnieje przestrzeń między tokena otwarcia za komentarz i "lint", nie uznaje go za dyrektywę adnotacji. Niestety, ustawienia domyślne, które mam dla formatu klangowego, widzę jako błąd i użytecznie wstawiam spację.

Czy istnieje sposób na uzyskanie formatu klang, aby rozpoznać komentarze pasujące do tego wzoru i pozostawić je w spokoju? Obecnie używam wersji 3.4, ale w razie potrzeby mogę ją zaktualizować.

Odpowiedz

10

Clang format ma opcji `CommentPragmas', który jest

Wyrażenie regularne opisująca komentarze o specjalnym znaczeniu, które nie powinny zostać podzielone na linie lub w inny sposób zmienione.

Po umieszczeniu poniższej linii w pliku .clang, moje komentarze Lint pozostaną nietknięte.

CommentPragmas: '^lint' 

Inne komentarze, które wciąż zawierają "lint", ale nie są komentarzami Lint, zostają sformatowane.

12

Można wyłączyć clang-format dla tej części pliku za pomocą:

int formatted_code; 
// clang-format off 
    void unformatted_code ; 
// clang-format on 
void formatted_code_again; 

Zobacz sekcję Disabling formating on a piece of code.

+1

Czy masz pomysł, kiedy funkcja ta stanie się dostępna? Nie udało mi się pomyślnie zbudować na systemie Mac, więc przy użyciu wstępnie zbudowanej wersji _clang-format wersji 3.5 (tags/checker/checker-276) _ i te wydają się nie mieć żadnego wpływu. – user1338952

+0

Śr 6 sierpnia 08:40:26 2014: [r214966 - format klang: Dodaj specjalne komentarze, aby wyłączyć formatowanie.] (Http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20140804 /111937.html), 03 września 2014: [Release of Clang 3.5.0] (http://llvm.org/releases/) – rettichschnidi