clang-format打破lint注释

Joe*_*day 12 c++ lint clang-format

我们在C/C++的代码库中使用lint,我也试图在我的工作流程中开始集成clang-format.

不幸的是,lint偶尔需要注释来忽略特定的检查,格式如下:

/*lint -[annotation] */
Run Code Online (Sandbox Code Playgroud)

要么

//lint -[annotation]
Run Code Online (Sandbox Code Playgroud)

具体来说,如果注释的开始标记和'lint'之间有空格,则它不会将其识别为注释指令.不幸的是,我对clang-format的默认设置将其视为错误并有助于插入空格.

有没有办法让clang格式识别匹配该模式的评论并让它们孤立?现在我使用3.4,但如果需要可以升级.

Mik*_*Dev 14

您可以使用以下命令禁用文件该部分的clang格式:

int formatted_code;
// clang-format off
    void    unformatted_code  ;
// clang-format on
void formatted_code_again;
Run Code Online (Sandbox Code Playgroud)

请参阅" 在一段代码上禁用格式化"部分.


Joh*_*ohn 14

Clang-format有一个`CommentPragmas'选项

描述具有特殊含义的注释的正则表达式,不应拆分为行或以其他方式更改.

当我在.clang格式文件中放入以下行时,我的Lint注释保持不变.

CommentPragmas:  '^lint'
Run Code Online (Sandbox Code Playgroud)

其他评论仍然有"lint",但不是Lint评论仍然得到格式化.