强制clang格式尊重doxygen块注释

aho*_*gen 5 clang-format

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

/**************************************************************************//**
* \file
* \date   2017-01-02
* \author Alex Hogen
******************************************************************************/
Run Code Online (Sandbox Code Playgroud)

如果我对此运行clang-format,它将在两个正斜杠之间插入一个空格,因此看起来像是愚蠢的……。

/**************************************************************************/ /**
* \file
* \date   2017-01-02
* \author Alex Hogen
******************************************************************************/
Run Code Online (Sandbox Code Playgroud)
  • SpacesBeforeTrailingComments设置为2,所以那不是问题。
  • 尝试过CommentPragmas正则表达式\/\*+\/\/\*+
  • 尝试CommentPragmas正则表达式/\*(.+\n.+)+\*/
  • 我尝试设置ReflowCommentsfalse

...但是这些都不起作用。

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

我不想通过为每个Doxygen注释块禁用clang格式来解决此问题。这似乎很荒谬。

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

Coo*_*ppo 5

在您的.clang-format文件中:

CommentPragmas:  '^\\.+'
Run Code Online (Sandbox Code Playgroud)

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