Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何设置clang格式注释杂注,使多行doxygen注释不';你不会被触碰吗?_C++_C_Doxygen_Clang Format - Fatal编程技术网

C++ 如何设置clang格式注释杂注,使多行doxygen注释不';你不会被触碰吗?

C++ 如何设置clang格式注释杂注,使多行doxygen注释不';你不会被触碰吗?,c++,c,doxygen,clang-format,C++,C,Doxygen,Clang Format,我试图将clang格式引入到我们的几个工作项目中(C和C++),但我很难让它以我想要的方式格式化多行Doxygen注释 所有评论的格式相同: /*@简要介绍一些文字 * *更多的文字 * *@逐字逐句 * *一个非常长的文本行,超过了clang格式的列宽,但不应触摸 * *@endverbatim */ 我希望使用clang格式来保留逐字记录块,而不是重新流式处理它们。我使用的是clang-format-6.0 关闭ReflowComments不是一个选项,因为必须按clang格式处理非d

我试图将clang格式引入到我们的几个工作项目中(C和C++),但我很难让它以我想要的方式格式化多行Doxygen注释

所有评论的格式相同:

/*@简要介绍一些文字
*
*更多的文字
*  
*@逐字逐句
*
*一个非常长的文本行,超过了clang格式的列宽,但不应触摸
*
*@endverbatim
*/
我希望使用clang格式来保留逐字记录块,而不是重新流式处理它们。我使用的是clang-format-6.0

关闭
ReflowComments
不是一个选项,因为必须按clang格式处理非doxygen注释

我在
CommentPragmas
config项中尝试了各种正则表达式,但没有成功:

  • @verbatim(.*\n)*.@endverbatim
    将整个verbatim块视为注释pragma。这是理想的情况,正如Doxygen评论的任何其他部分一样,我不介意被分成多行
  • @brief(.*\n)+
    将整个注释块匹配为pragma。我还尝试在注释末尾使用任意标记作为块结束标记。这并不理想,因为它不会迫使评论中非逐字逐句的部分符合要求,但如果必须的话,这是一种妥协,我愿意接受
  • 我在其他讨论中看到的各种其他正则表达式,都适合我们的Doxygen标记
到目前为止,我所能做的就是,如果多行注释的第一行恰好超过了列的限制,那么就不要使用它。然而,任何后续的长线仍被打破

我唯一剩下的另一个工具是在这些注释周围使用
//clangformat off
//clangformat on
,但如果可以的话,我还是想避免使用它,因为:

a) 在整个代码库中添加它们将非常乏味

b) 我将不得不用这些来围绕整个评论,而不仅仅是逐字逐句(我还不知道你是否可以只为多行注释的一部分禁用它-我只成功地使它在整个注释中工作,即使这是可能的,clangformat指令最终也会出现在生成的Doxygen文档中,这是不可接受的)

c) 我真的不喜欢它在代码中的样子


感谢您的帮助。谢谢。

也遇到了这个问题,唯一的解决办法是使用
打开/关闭叮当格式

铿锵格式的重复评论倾向于:

  • 断开
    @页面
    @章节
    等标题以及由此生成的链接(在极少数情况下)
  • 中断具有特定语法的
    @startuml
  • 逐字中断
    @块
请参见MySQL中的用法示例:

更新:

在clang格式本身上提交了功能请求:

您在doxygen或clang编译器中有问题吗?如果doxygen出现问题,请说明您正在使用的doxygen版本,以及您的doxygen配置文件中与默认配置不同的设置(
doxygen-x
,适用于较新的doxygen版本)。不,这与doxygen或clang编译器无关。我只想留下我的部分doxygen评论,而不重新格式化它们。Doxygen生成工作正常,目标之一是在运行格式化程序后不影响生成的输出。我试着用这个问题来说明这一点,但如果你认为不是,我可以试着进一步澄清。@albert供你参考,如果你想遵循它,请参阅clang format feature request。谢谢你提供功能请求的链接。到处开/关都很麻烦。我不知道这个命令是什么样子的。不幸的是,它看起来只是“铿锵格式打开”和“铿锵格式关闭”,因此没有像
@
这样明确的“命令”设置器,但是当它像
@铿锵格式…
那样时,通过
@noop
命令很容易重新定义它是doxygen 1.8.17。