Мы используем lint в нашей кодовой базе на работе для C / C ++, я пытаюсь также интегрировать формат clang в свой рабочий процесс.
К сожалению, lint иногда требует, чтобы аннотации игнорировали определенную проверку любого из форматов:
/*lint -[annotation] */
или же
//lint -[annotation]
В частности, если между открывающим токеном для комментария и ‘lint’ есть пробел, он не распознает его как директиву аннотации. К сожалению, настройки по умолчанию, которые у меня есть для clang-формата, видят это как ошибку и услужливо вставляют пробел.
Есть ли способ заставить clang-формат распознавать комментарии, соответствующие этому шаблону, и оставлять их в покое? Сейчас я использую 3.4, но могу обновить при необходимости.
В Clang-формате есть опция CommentPragmas, которая
Регулярное выражение, которое описывает комментарии со специальным значением, которое не следует разбивать на строки или иным образом изменять.
Когда я помещаю следующую строку в мой файл .clang-format, мои комментарии Lint остаются нетронутыми.
CommentPragmas: '^lint'
Другие комментарии, в которых по-прежнему есть «lint», но не являются комментариями Lint, по-прежнему форматируются.
Вы можете отключить формат clang для этого раздела вашего файла, используя:
int formatted_code;
// clang-format off
void unformatted_code ;
// clang-format on
void formatted_code_again;
Увидеть Отключение форматирования на куске кода раздел.