Clang-format breaks lint аннотации

Мы используем lint в нашей кодовой базе для работы в C/С++, я также пытаюсь начать интегрировать clang-format в свой рабочий процесс.

К сожалению, lint иногда требует аннотации, чтобы игнорировать определенную проверку, либо в формате:

/*lint -[annotation] */

или

//lint -[annotation]

В частности, если между открывающим токеном для комментария и "lint" есть пробел, он не распознает его как директиву аннотации. К сожалению, настройки по умолчанию, которые я использую для clang-format, видят это как ошибку и помогают вставить пробел.

Есть ли способ получить clang-format для распознавания комментариев, соответствующих этому шаблону, и оставить их в покое? Сейчас я использую 3,4, но при необходимости могу обновить.

Ответ 1

Clang-format имеет параметр "CommentPragmas", который

Регулярное выражение, которое описывает комментарии со специальным значением, которые не должны быть разделены на строки или иным образом изменены.

Когда я помещаю следующую строку в файл .clang-формата, мои комментарии Lint остаются нетронутыми.

CommentPragmas:  '^lint'

Другие комментарии, которые по-прежнему имеют "lint" в них, но не комментарии Lint, все равно отформатированы.