如何在Doxygen中新增@param_global命令标记全局变量?
嘿,要给Doxygen新增一个@param_global命令来标记全局变量,其实用Doxygen自带的自定义命令功能就能搞定,不用修改源码,下面一步步来实现:
Doxygen的核心配置文件(通常是Doxyfile)里有ALIASES选项,专门用来扩展自定义命令。根据你想要的格式,有两种常见写法:
写法1:简单段落式(适合单描述)
如果只需要给全局变量加一段说明,直接映射到Doxygen的段落命令:
ALIASES += "param_global=\par Global Parameter:\n"
使用示例:
/**
- @brief 全局配置变量
- @param_global 最大允许的并发连接数,默认值为100
*/
int MAX_CONNECTIONS = 100;
生成的文档会显示一个标题为"Global Parameter"的段落,后面跟着你的说明文本。
写法2:带参数名的格式(和@param风格一致)
如果想和原生@param一样,区分变量名和描述,可以定义接受两个参数的别名:
ALIASES += "param_global{2}=\par Global Parameter \1:\n\2"
这里{2}表示命令接受2个参数,\1引用第一个参数(变量名),\2引用第二个参数(描述)。
使用示例:
/**
- @brief 全局配置集合
- @param_global{MAX_CONNECTIONS} 最大并发连接数,范围1-1000
- @param_global{DEFAULT_TIMEOUT} 默认超时时间,单位为秒,默认30
*/
int MAX_CONNECTIONS = 100;
int DEFAULT_TIMEOUT = 30;
生成的文档会清晰显示Global Parameter MAX_CONNECTIONS:和对应的描述,和原生@param的展示逻辑一致。
如果想让@param_global的显示样式和原生@param完全对齐,可以通过自定义CSS调整。
- 先修改
ALIAS,给生成的元素添加专属HTML类:
ALIASES += "param_global{2}=\htmlonly<div class='param_global'></htmlonly>Global Parameter \1:\n\2<htmlonly></div></htmlonly>"
- 在
Doxyfile中指定额外样式表:
HTML_EXTRA_STYLESHEET = custom_doxygen.css
- 在
custom_doxygen.css中添加样式(参考原生@param的样式):
div.param_global { margin-left: 2em; margin-bottom: 0.5em; font-family: inherit; }
修改完配置后,运行doxygen Doxyfile生成文档,检查全局变量的注释是否正确渲染出@param_global的内容。如果格式不对,可以调整ALIASES里的换行(\n)或段落标记(\par)。
如果需要让@param_global像原生@param一样自动关联全局变量(比如自动提取变量名、类型),那需要编写Doxygen的Lua脚本扩展或者自定义插件,但这种场景对大部分用户来说没必要,用ALIASES的方式已经足够满足日常标记需求。
内容的提问来源于stack exchange,提问作者mathco

