clang-format打破lint注释

时间:2014-09-17 01:43:06

标签: c++ lint clang-format

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

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

/*lint -[annotation] */

//lint -[annotation]

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

有没有办法让clang-format能够识别匹配该模式的评论而不管它们?现在我使用3.4,但如果需要可以升级。

2 个答案:

答案 0 :(得分:14)

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

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

请参阅Disabling formating on a piece of code部分。

答案 1 :(得分:14)

Clang-format有一个“CommentPragmas”选项

  

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

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

CommentPragmas:  '^lint'

其他评论中仍有“lint”,但Lint评论仍然没有格式化。