强制clang格式以尊重doxygen块注释

我在C/C++代码中使用长块C风格的Doxygen注释.这是
http://www.doxygen.nl/manual/docblocks.html上列出的样式#4,看起来像这样(用完80个字符)…

/**************************************************************************//**
* \file
* \date   2017-01-02
* \author Alex Hogen
******************************************************************************/

如果我在这上面运行clang-format,它会在两个正斜杠之间插入一个空格,所以看起来像这样的高飞……

/**************************************************************************/ /**
* \file
* \date   2017-01-02
* \author Alex Hogen
******************************************************************************/

>我将SpacesBeforeTrailingComments设置为2,这样就不会出现问题.
>尝试CommentPragmas正则表达式\/\*+\/\/\*+.
>尝试CommentPragmas正则表达式/\*(.+\n.+)+\*/
>我尝试将ReflowComments设置为false

……但这些都没有奏效.

我知道这个块中有两条注释,但我找不到任何clang-format参数在同一行上寻址块注释.如何阻止clang-format插入此空间?

我不想在disabling clang-format之前为每个Doxygen评论块解决这个问题.这看起来很荒谬.

有什么好建议吗? 🙂

最佳答案 在.clang格式文件中:

CommentPragmas:  '^\\.+'

这将使它不格式化以反斜杠后跟单词开头的注释行.即使在doxygen注释之前有一个星号,这仍然有效,因为clang-format会在每个注释行的开头自动忽略星号和空格.

点赞