Doxygen引用枚举时如何直接显示关联文档注释而非仅显示悬停提示?
实现方案
方案1:直接插入完整SOME_ENUM枚举定义表
这是成本最低的实现方式,直接用Doxygen内置的@copydoc指令即可,它会完整复制目标符号的所有文档内容(包括枚举值列表、每个值的注释)到当前位置。
修改你的other_header.h中函数文档如下:
/** * @file other_header.h */ /** * Funktion Description * * Values for SOME_ENUM can be: * @copydoc SOME_ENUM */ int some_function( SOME_ENUM parameter );
注意:如果你的Doxygen配置没有开
EXTRACT_ALL,需要确保SOME_ENUM本身有独立的文档注释,才能被@copydoc正确识别读取。
方案2:仅在枚举值链接后显示对应注释文本
方法A:自定义Doxygen别名(无需改模板,仅需修改Doxyfile配置)
如果你的Doxygen版本≥1.9.2,可以通过自定义别名实现自动提取枚举值注释:
- 打开你的Doxyfile配置文件,找到
ALIASES配置项,添加如下内容:
ALIASES += enumval{1}="@ref \1 <i>\showrefbykey(\1,'brief')</i>"
- 在文档中需要引用枚举值的位置,用
@enumval{MY_ENUM}替换原来的#MY_ENUM即可,生成HTML时会自动输出带跳转链接的MY_ENUM,后面跟着对应的注释文本「Some text」。
方法B:修改HTML输出模板(一劳永逸,所有枚举链接自动显示注释)
如果你希望所有枚举值链接默认都显示注释,不需要修改任何代码里的文档内容,可以修改Doxygen的HTML模板:
- 从Doxygen安装目录中找到默认模板文件夹,复制
refmacro.html到你的自定义模板目录,在Doxyfile中配置HTML_EXTRA_STYLESHEET指向你的自定义模板目录。 - 编辑
refmacro.html,找到生成链接的代码段,将链接的title属性(也就是悬停显示的注释内容)同时输出到链接后的<span>标签中,示例修改如下:
<a href="$ref" title="$tooltip">$text</a><span class="enum-note"> $tooltip</span>
- 在自定义CSS中给
.enum-note添加你想要的展示样式,比如灰色、斜体即可。
内容的提问来源于stack exchange,提问作者Ramin Moussavi
相关产品推荐
相关产品推荐

