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

时间:2017-12-29 02:19:02

标签: clang-format

我在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格式参数在同一行上寻址块注释。如何阻止clang-format插入此空间?

我不想通过disabling clang-format为每个Doxygen评论块解决这个问题。这看起来很荒谬。

有什么好的建议吗? : - )

1 个答案:

答案 0 :(得分:1)

在您的.clang-format文件中:

CommentPragmas:  '^\\.+'

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