clang-format 删除 doxygen 注释中的 markdown 样式换行符

clang-format removes markdown-style linebreaks in doxygen comments

提问人:Noctis 提问时间:10/24/2023 最后编辑:Noctis 更新时间:10/26/2023 访问量:42

问:

Doxygen 允许使用 Markdown 样式的格式,与 HTML 样式相比,这使得代码文档的可读性要好得多。

Markdown 换行符由行尾的 2 个或更多空格组成:

/**
 * @brief short description
 * @details longer description with markdown line-break by 2 spaces  
 * next line with more longer description...
 */

不幸的是,clang-format 删除了行尾的所有空格。(实际上,在大多数情况下,它应该这样做。

我怎样才能防止它这样做?

我试着用

CommentPragmas: '  $'

MacroBlockBegin: "  $"
MacroBlockEnd: "^"

但这并没有奏效。

到目前为止,我发现的唯一解决方案是使用 和/或 HTML 样式 .
我不喜欢两者,因为两者在可读性方面都不是那么好,而且很容易忘记。
// clang-format off// clang-format on</br>

编辑:
我正在使用 Ubuntu 22.04.3 LTS
的 Ubuntu clang-format 版本 14.0.0-1ubuntu1.1 我使用以下命令行调用 clang-format: 为了缩小问题范围,我将文件剥离为:

clang-format -i --style=file headerFile.h~/.cland-format

BasedOnStyle: Google
Markdown doxygen 换行符 clang-format

评论

0赞 albert 10/25/2023
您使用的是哪个版本的 doxygen?你写了“不幸的是,clang-format 删除了一行末尾的所有空格”,这是否意味着写入磁盘并提供给 doxygen 进行处理的文件不再包含末尾的 2 个空格?在后一种情况下,在我看来,这不是 doxygen 或 markdown 问题,而是编辑器(在 clang 模式下)问题。您使用的是哪个编辑器(因此了解该编辑器的人可以提供一些见解)?
0赞 Noctis 10/25/2023
@albert我正在使用 doxygen 1.9.1 - 如果有另一种方法可以使换行符具有可读性和美观性,我会采用它。是的,通过 clang-format 写入磁盘的文件不再包含任何尾随空格。(通常这正是我想要的,但不适用于 dsugar 风格评论中的 markdown 换行符。顺便说一句,我正在使用 VSCode,但这应该不会对 clang 格式产生任何影响。
0赞 albert 10/25/2023
Doxygen 1.9.1 是从 2021 年 1 月 9 日开始的,当前的 doxygen 版本是 1.9.8(但这对当前的问题没有影响)。我唯一能想到的就是使用空行。
0赞 albert 10/26/2023
另请参阅此处 stackoverflow.com/a/59630492/1657886and 提到的功能请求。你看过吗ReflowComments=false
0赞 Noctis 10/27/2023
@albert 是的,我试过了 - 尾随空格仍然被删除。ReflowComments: false

答: 暂无答案