强制 clang-format 遵循 doxygen 块注释

10

我在我的C/C++代码中使用长块状的类C的Doxygen注释。这是风格#4列于http://www.doxygen.nl/manual/docblocks.html,它看起来像这样(延伸到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插入此空格?

我不想通过禁用clang-format来解决每个Doxygen注释块的格式问题。那似乎有些荒谬。

有好的建议吗? :-)


我越看这个,就越觉得解决方案是从上面的格式切换到格式#2(将第一行末尾的两个斜杠替换为第一行第一个星号后面的一个感叹号)。 这看起来像单个块注释到clang-format,但仍应兼容Doxygen。 - ahogen
先前评论的新链接:Qt样式/格式#2 - ahogen
1个回答

9
在你的.clang-format文件中:
CommentPragmas:  '^\\.+'

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


请问您能否对以下问题进行评论: https://dev59.com/dLnoa4cB1Zd3GeqPSo2B - Umair

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接