【Doxygen】Vscode 插件 DoxyGen Documentation Generator C语言详细设置

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)
{

}

其他

  1. 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){}
  1. 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)
{

}

  1. 关键字过滤
"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)
{

}
  1. 命令建议
//输入\会补全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,





<think>好的,用户的问题是关于如何在VSCode中安装和使用Doxygen插件。首先,我需要回忆一下自己对这个插件的了解。Doxygen Documentation Generator插件可以帮助生成代码文档,特别适合需要规范注释的项目。用户提到他们可能想了解安装、配置或使用方法,所以需要涵盖这些方面。 首先,安装步骤应该比较简单,直接通过VSCode的扩展市场搜索安装。但可能需要详细说明步骤,比如打开扩展面板,输入插件名称,然后安装。接着是配置,用户提供的引用中有提到修改设置的方法,比如通过设置界面或者直接编辑settings.json。这里需要解释两种方法,让用户可以根据自己的习惯选择。 然后是使用方法,比如在文件开头输入/**然后回车生成文件注释,或者在函数上方输入/**生成函数注释。需要具体说明操作步骤,可能还要提到自定义注释模板的方法,如修改fileOrder和customTag等配置项。用户提供的引用中有提到这些,所以需要正确引用相关信息,确保准确性。 还要注意用户可能遇到的常见问题,例如配置不生效或者注释格式不符合预期,这时候可能需要检查设置是否正确,或者是否需要重启VSCode。此外,用户可能希望知道如何自定义标签,比如添加作者、版本等信息,这也是配置的一部分。 需要确保回答结构清晰,分步骤说明安装、配置和使用,并给出示例,比如展示生成的注释样式。同时,根据用户提供的引用,正确标注引用来源,比如引用[1]、[2]、[3]中的信息。例如,安装插件部分引用[2],配置部分引用[1]和[3],使用部分引用[3]。 另外,用户可能需要进一步的问题,比如如何优化注释模板或解决常见问题,所以相关问题部分可以包括这些内容。确保回答覆盖用户的主要需求,同时提供扩展信息帮助他们深入使用插件。</think>### 如何在VSCode中安装和使用Doxygen插件 #### 1. 安装插件 **步骤:** 1. 打开VSCode,进入左侧扩展面板(快捷键 `Ctrl+Shift+X`)。 2. 搜索关键词 `Doxygen Documentation Generator`。 3. 找到插件后点击“安装”按钮,安装完成后重启VSCode[^2]。 #### 2. 配置插件(可选) 默认配置已满足基本需求,但如需自定义注释模板,可通过以下方式调整: - **方法1:图形界面设置** 1. 打开VSCode设置(`Ctrl+,`)。 2. 搜索 `Doxygen`,修改相关选项(如注释模板的字段顺序、自定义标签等)[^1]。 - **方法2:编辑 `settings.json`** 1. 打开命令面板(`Ctrl+Shift+P`),输入 `Open Settings (JSON)`。 2. 添加以下配置示例: ```json "doxdocgen.file.fileOrder": ["file", "brief", "author", "date", "version"], "doxdocgen.generic.paramTag": "@param", "doxdocgen.generic.returnTag": "@return" ```[^3] #### 3. 使用插件生成注释 - **为文件添加注释:** 1. 在文件首行输入 `/**` 后按 `Enter`,自动生成文件头注释,包含配置中定义的字段(如作者、日期等)[^3]。 ```cpp /** * @file main.cpp * @brief 简要描述文件功能 * @author 作者名 * @date 2023-10-01 */ ``` - **为函数添加注释:** 1. 在函数上方输入 `/**` 后按 `Enter`,自动生成函数注释模板。 2. 根据参数和返回值补充描述: ```cpp /** * @brief 计算两个数的和 * @param a 第一个加数 * @param b 第二个加数 * @return 两数之和 */ int add(int a, int b) { return a + b; } ``` #### 4. 高级功能 - **自定义标签**:通过设置 `doxdocgen.generic.customTag` 添加项目专属标签(如 `@copyright`)。 - **快捷键支持**:绑定快捷键到命令 `doxdocgen.genericDocument`,快速触发注释生成。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苏打豆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值