如何设置叮当格式的注释编译指示,以免触及多行doxygen注释?
How to set up clang-format comment pragmas so multiline doxygen comments don't get touched?
我正在尝试将 clang 格式引入我们工作中的几个项目(C 和 C++(,但我无法让它以我想要的方式格式化多行 Doxygen 注释。
所有注释的格式相同:
/*! @brief Some text
*
* Some more text
*
* @verbatim
*
* A very long line of text that exceeds the clang-format column width but should not be touched
*
* @endverbatim
*/
我希望 clang 格式保留逐字块而不重排它们。我正在使用 clang-format-6.0
关闭ReflowComments
不是一种选择,因为非doxygen注释必须通过clang格式处理
我已经在CommentPragmas
配置项目中尝试了各种正则表达式,但无济于事:
@verbatim(.*n)*.*@endverbatim
将整个逐字记录块视为注释杂注。这是理想的情况,因为 Doxygen 评论的任何其他部分我不介意被分成多行。@brief(.*n)+
将整个注释块匹配为杂注。我还尝试在评论末尾使用任意令牌来充当明确的块结束标记。这并不理想,因为它不会强制评论的非逐字部分保持一致,但如果有必要,这是我愿意接受的妥协。- 我在其他讨论中看到的各种其他正则表达式,适应了我们的 Doxygen 标记。
到目前为止,我设法让它做的只是保留多行评论的第一行,如果它碰巧超过列限制。但是,任何后续的长线仍然被打破。
我留在盒子里的唯一其他工具是使用这些评论// clang-format off
和// clang-format on
,但如果可以的话,我想再次避免它,因为:
a( 在整个代码库中添加它们会非常乏味
b( 我将不得不用这些包围整个评论,而不仅仅是逐字块(我还没有弄清楚您是否可以仅针对多行评论的一部分禁用它 - 我只设法让它适用于整个评论,即使有可能,clang格式指令最终也会出现在生成的 Doxygen 文档中,这是不可接受的(
c( 我不太喜欢它在代码中的外观。
任何帮助,不胜感激。谢谢。
也遇到了这个问题,找到的唯一解决方法是使用clang-format on/off
。
CLANG 格式的重新流动注释倾向于:
- 断开
@page
、@section
等标题,以及从中生成的链接(在极少数情况下(。 - 断开具有特定语法的
@startuml
块。 - 打破
@verbatim
块。
请参阅MySQL中的用法示例: https://github.com/mysql/mysql-server/blob/8.0/storage/perfschema/pfs.cc
更新:
在 clang 格式本身上提交了功能请求: https://bugs.llvm.org/show_bug.cgi?id=44486
- Visual Studio 2019:插入多个C++风格的单行注释
- 使 \page 和 \subpage 参考 doxygen 中的方法文档
- Doxygen - 如何在不生成图形的情况下生成文本调用关系结果
- VSCode 中带有 C/C++ 扩展名的多行注释缩进错误
- 如果我注释掉换行符,为什么'string'会成为一个不合格的变量
- 使用 Doxygen 在不同文件中注释函数
- 如何设置叮当格式的注释编译指示,以免触及多行doxygen注释?
- 如何确保 C/C++ 代码中不会缺少 doxygen 风格的文档注释?
- 使用 Doxygen 和非 Doxygen 注释源代码创建文档
- Doxygen:识别所有 c++ 注释
- doxygen将doxygen注释中的特定数据复制到markdown页面中
- Doxygen:如何链接到带注释的源代码
- C++标头中带有未声明函数的Doxygen注释
- 变量后的Doxygen多行注释
- Eclipse 自动生成 Doxygen 注释配置
- 如何在 doxygen 的注释中插入项目名称
- 如何让 DOxygen 使用和识别注释掉的参数名称
- 使Doxygen读取双斜杠C++注释作为标记
- Eclipse悬停提示可以显示头文件中的Doxygen注释吗
- 宏中的Doxygen注释