DoxyGen Documentation Generatorc
这个VsCode插件可以设置C/C++的doxygen格式自动填充,本文只介绍C语言的json文件配置。
触发方式
"doxdocgen.c.triggerSequence": "/**",//输入/**然后回车会触发文件头和函数注释自动补全
"doxdocgen.generic.linesToGet": 50,//最多检测行数,如果函数体比这个行数多,那么将无法识别函数
首行、尾行和非首行尾行前缀
"doxdocgen.c.firstLine": "/**",
"doxdocgen.c.lastLine": " */",
"doxdocgen.c.commentPrefix": " * ",
/**
* @brief
*
*/
"doxdocgen.c.firstLine": "/*@",
"doxdocgen.c.lastLine": "@*/",
"doxdocgen.c.commentPrefix": " @ ",
/*@
@ @brief
@
@*/
文件头注释及排序
// 文件注释的组成及其排序
"doxdocgen.file.fileOrder": [
"file", // @file
"brief", // @brief 简介
"author", // 作者
"version", // 版本
"date", // 日期
"empty", // 空行
"copyright",// 版权
"empty",
"custom" // 自定义
],
// 下面时设置上面标签tag的具体信息
"doxdocgen.file.fileTemplate": "@file {name}",
"doxdocgen.file.copyrightTag": [
"@copyright Copyright (c) {year} TEST"
],
"doxdocgen.file.versionTag": "@version 2.0",
"doxdocgen.generic.authorEmail": "test@test.com",
"doxdocgen.generic.authorName": "test",
"doxdocgen.generic.authorTag": "@author {author} ({email})",
"doxdocgen.file.customTag": [
"@par 修改日志:",
"<table>",
"<tr><th>Date <th>Version <th>Author <th>Description",
"<tr><td>{date} <td>2.0 <td>test <td>内容",
"</table>",
]
"doxdocgen.generic.dateFormat": "YYYY-MM-DD",
"doxdocgen.generic.dateTemplate": "@date{date}",
/**
* @file m4.h
* @brief
* @author test (test@test.com)
* @version 2.0
* @date 2023-02-23
*
* @copyright Copyright (c) 2023 TEST
*
* @par 修改日志:
* <table>
* <tr><th>Date <th>Version <th>Author <th>Description
* <tr><td>2023-02-23 <td>2.0 <td>test <td>内容
* </table>
*/
函数注释
"doxdocgen.generic.briefTemplate": "@brief{indent:10}{text}【描述】",//brief
"doxdocgen.generic.paramTemplate": "@param[in/out]{indent:15}{param}{indent:20}【参数注释】",
"doxdocgen.generic.returnTemplate": "@return {type}{indent:20}【返回值注释】",
"doxdocgen.generic.customTags": ["@warning{indent:10}【不可重入,阻塞等警告】", "@note{indent:10}【重大修改】"],//用户自定义
"doxdocgen.generic.includeTypeAtReturn": true,//返回值是否写类型
"doxdocgen.generic.order":["brief", "param", "return", "empty", "custom"],
/******************************************************************************
*@brief 【描述】
*@param[in/out] a 【参数注释】
*@param[in/out] b 【参数注释】
*@return float 【返回值注释】
*
*@warning 【不可重入,阻塞等警告】
*@note 【重大修改】
******************************************************************************/
float Test(int a, int b)
{
}
其他
- bool返回值处理
"doxdocgen.generic.boolReturnsTrueFalse": false,
/**
* @brief
*
* @param me
* @return bool
*/
bool Init_ModuleA(Module* me){}
"doxdocgen.generic.boolReturnsTrueFalse": true,
/**
1. @brief
2.
3. @param me
4. @return true
5. @return false
*/
bool Init_ModuleA(Module* me){}
- Get,Set,Creat函数
"doxdocgen.generic.splitCasingSmartText": true,//智能拆函数名,比如把GetObjectData拆成Object Data
"doxdocgen.c.setterText": "Set {name}",//以Get开头的函数
"doxdocgen.c.getterText": "Get {name}",//以Set开头的函数
"doxdocgen.c.factoryMethodText": "Create {name}",//以Create开头的函数
/******************************************************************************
*@brief Get Object Data【描述】
*@param[in/out] a 【参数注释】
*@param[in/out] b 【参数注释】
*@return float 【返回值注释】
*
*@warning 【不可重入,阻塞等警告】
*@note 【重大修改】
******************************************************************************/
float GetObjectData(int a, int b)
{
}
- 关键字过滤
"doxdocgen.generic.filteredKeywords": [
"me",
],//忽略关键字me
/******************************************************************************
*@brief 【描述】
*@param[in/out] a 【参数注释】
*@param[in/out] b 【参数注释】
*@return int 【返回值注释】
*
*@warning 【不可重入,阻塞等警告】
*@note 【重大修改】
******************************************************************************/
int Test(int me, int a, int b)
{
}
- 命令建议
//输入\会补全doxygen关键字,没太搞清楚
"doxdocgen.generic.commandSuggestion": true,
"doxdocgen.generic.commandSuggestionAddPrefix": true,
样例
附一份我在用的C语言注释,粘到json即可
//基础设置
"doxdocgen.c.triggerSequence": "/**",
"doxdocgen.c.firstLine": "/******************************************************************************",
"doxdocgen.c.commentPrefix": "*",
"doxdocgen.c.lastLine": "******************************************************************************/",
"doxdocgen.generic.linesToGet": 50, //如果有很多超级大函数要把这个值设置很大
// 文件头
"doxdocgen.file.fileOrder": [
"file", // 文件名
"brief", // 文件概述
"author", // 作者
"version", // 版本
"date", // 日期
"empty", // 空行
"copyright",// 版权
"empty",
"custom" // 自定义
],
//file
"doxdocgen.file.fileTemplate": "@file{indent:10}{name}",
//brief 居然和函数注释用的同一个
//"doxdocgen.generic.briefTemplate": "@brief{indent:10}{text}【描述】",
//author
"doxdocgen.generic.authorEmail": "test@test.com",
"doxdocgen.generic.authorName": "苏打豆",
"doxdocgen.generic.authorTag": /*"@author {author} ({email})"*/"@author{indent:10}{author}",
//version
"doxdocgen.file.versionTag": "@version{indent:10}1.0",
//date
"doxdocgen.generic.dateFormat": "YYYY.MM.DD",
"doxdocgen.generic.dateTemplate": "@date{indent:10}{date}",
//copyright
"doxdocgen.file.copyrightTag": [
"@copyright{indent:12}Copyright (c) 2011 ABC.Co.Ltd. All rights reserved."
],
//custom
"doxdocgen.file.customTag": [
"@par 修改日志:",
"<table>",
"<tr><th>Date <th>Version <th>Author <th>Description",
"<tr><td>{date}<td>【版本号】 <td>【作者】 <td>【日志】",
"</table>",
],
//函数注释
"doxdocgen.generic.order":[
"brief",
"param",
"return",
"empty",
"custom"],
//brief
"doxdocgen.generic.briefTemplate": "@brief{indent:10}{text}【描述】",
"doxdocgen.generic.splitCasingSmartText": true,//(没用)
"doxdocgen.c.setterText": "Set {name}",//Get方法(没用)
"doxdocgen.c.getterText": "Get {name}",//Set方法(没用)
"doxdocgen.c.factoryMethodText": "Create {name}",//Create方法(没用)
//param
"doxdocgen.generic.paramTemplate": "@param[in/out]{indent:15}{param}{indent:20}【参数注释】",
"doxdocgen.generic.filteredKeywords": [
"me"],
//return
"doxdocgen.generic.returnTemplate": "@return {type}{indent:20}【返回值注释】",
"doxdocgen.generic.includeTypeAtReturn": true,
"doxdocgen.generic.boolReturnsTrueFalse": false,
//custom
"doxdocgen.generic.customTags": ["@warning{indent:10}【不可重入,阻塞等警告】", "@note{indent:10}【重大修改】"],//用户自定义
//命令建议(没用)
"doxdocgen.generic.commandSuggestion": true,
"doxdocgen.generic.commandSuggestionAddPrefix": true,