当前位置: 首页 > news >正文

vscode 配置doxygen注释和snippet

vscode 配置doxygen注释和snippet

Doxygen的C/C++注释原则

基于Doxygen的C/C++注释原则
标注总述
1.文件头标注
2. 命名空间标注
3. 类、结构、枚举标注
4. 函数注释原则
5. 变量注释
6. 模块标注
7. 分组标注

指令表格

命令字段名语法
@file文件名file [< name >]
@brief简介brief { brief description }
@author作者author { list of authors }
@mainpage主页信息mainpage [(title)]
@date年-月-日date { date description }
@author版本号version { version number }
@copyright版权copyright { copyright description }
@param参数param [(dir)] < parameter-name> { parameter description }
@return返回return { description of the return value }
@retval返回值retval { description }
@bug漏洞bug { bug description }
@details细节details { detailed description }
@pre前提条件pre { description of the precondition }
@see参考see { references }
@link连接(与@see类库,{@link www.google.com})link < link-object>
@sa参考资料@sa < link-object>
@throw异常描述throw < exception-object> { exception description }
@todo待处理todo { paragraph describing what is to be done }
@warning警告信息warning { warning message }
@deprecated弃用说明。可用于描述替代方案,预期寿命等deprecated { description }
@example弃用说明。可用于描述替代方案,预期寿命等deprecated { description }
@var、@enum、@struct、@class 对变量、枚举、结构体、类等进行标注

以下是常用的

image-20250509155113680

文件注释

/*** @file 文件名* @brief 简介* @details 细节* @author 作者* @version 版本号* @date 年-月-日* @copyright 版权*/

example:

image-20250509151935308

还有一种是这样

/*****************************************************************************
*  heschat                                                        
*  Copyright (C) 2025 hesphoros <hesphoros@gmail.con>
*                                                                           
*  This file is part of heschat.                                  
*                                                                           
*  This program is free software; you can redistribute it and/or modify    
*  it under the terms of the GNU General Public License version 3 as       
*  published by the Free Software Foundation.                              
*                                                                           
*  You should have received a copy of the GNU General Public License       
*  along with this program. If not, see <http://www.gnu.org/licenses/>.    
*                                                                           
*  @file     Border.cpp                                                
*  @brief    Border class implementation file                                                  
*  @details  None                                                 
*                                                                           
*  @author   hesphoros                                                
*  @email    hesphoros@gmail.con                                   
*  @version  1.0.0.1                                                       
*  @date     2025/05/09             
*  @license  GNU General Public License (GPL)                              
*---------------------------------------------------------------------------*
*  Remark         : 说明备注                                          
*---------------------------------------------------------------------------*
*  Change History :                                                        
*  <Date>     | <Version> | <Author>       | <Description>                 
*  2025/05/09 | 1.0.0.1   | hesphoros      | Create file           
*****************************************************************************/

image-20250509153654211

结构体注释

/*** @brief 结构体简介* @details * @note */

image-20250509152418483

也可以这样

image-20250509153749465

函数注释

 /*** @brief  函数描述* @param  参数描述* @return 返回描述* @retval 返回值描述*/

example:

image-20250509153015784

常量/变量注释

一般常量/变量可以有两种形式:

  • 常量/变量上一行注释
  • 常量/变量后注释
/**
* @brief description
*/
int val;//desription
int val;int a; /*!< 定义一个整型变量a */
int a; /**< 定义一个整型变量a */
int a; //!< 定义一个整型变量a
int a; ///< 定义一个整型变量a

模块标注

/**
* @defgroup 模块名 
* @{ 
*//** @} */

分组标注

/**
* @name 分组说明文字
* @{
*/content
/** @} */

vscode 插件配置

在vscode中搜索 Doxygen Documentation Generator ,F1 settings(user) 进入配置

image-20250509153934514

image-20250509154529686

下面的自己注意修改一下字段

"doxdocgen.generic.authorEmail": "hesphoros@gmail.com",
"doxdocgen.generic.authorName": "hesphoros",
{// Doxygen documentation generator set"doxdocgen.c.triggerSequence": "/",   // 触发自动注释的生成"doxdocgen.c.commentPrefix": " * ",     // 注释行的前缀"doxdocgen.c.firstLine": "/**",         // 注释行的首行"doxdocgen.c.lastLine": "*/",          // 注释行的尾行// Smart text snippet for factory methods/functions."doxdocgen.c.factoryMethodText": "Create a {name} object",// Smart text snippet for getters."doxdocgen.c.getterText": "Get the {name} object",// Smart text snippet for setters."doxdocgen.c.setterText": "Set the {name} object",// Smart text snippet for constructors."doxdocgen.cpp.ctorText": "Construct a new {name} object",// Smart text snippet for destructors."doxdocgen.cpp.dtorText": "Destroy the {name} object",// The template of the template parameter Doxygen line(s) that are generated. If empty it won't get generated at all."doxdocgen.cpp.tparamTemplate": "@tparam {param} ",// 文件注释:版权信息模板"doxdocgen.file.copyrightTag": ["@copyright Copyright (c) {year}  hesphoros",],//  文件注释:自定义模块,这里我添加一个修改日志"doxdocgen.file.customTag": ["@par 修改日志:","<table>","<tr><th>Date       <th>Version <th>Author  <th>Description","<tr><td>{date} <td>1.0.1     <td>zhoulq     <td>内容","</table>",],// 文件注释的组成及其排序"doxdocgen.file.fileOrder": ["file",     // @file"brief",    // @brief 简介"author",   // 作者"version",  // 版本"date",     // 日期"copyright",// 版权"empty","custom"    // 自定义],// 下面时设置上面标签tag的具体信息"doxdocgen.file.fileTemplate": "@file {name}","doxdocgen.file.versionTag": "@version 1.0.1","doxdocgen.generic.authorEmail": "hesphoros@gmail.com","doxdocgen.generic.authorName": "hesphoros","doxdocgen.generic.authorTag": "@author {author} ({email})",// 日期格式与模板"doxdocgen.generic.dateFormat": "YYYY-MM-DD","doxdocgen.generic.dateTemplate": "@date {date}",// 根据自动生成的注释模板(目前主要体现在函数注释上)"doxdocgen.generic.order": ["brief","tparam","param","return","retval"],"doxdocgen.generic.paramTemplate": "@param{indent:8}{param}{indent:8}","doxdocgen.generic.returnTemplate": "@return {type} ","doxdocgen.generic.splitCasingSmartText": true,"doxdocgen.generic.includeTypeAtReturn": true,      // return 中包含类型信息"doxdocgen.generic.boolReturnsTrueFalse": false,    // bool 返回值拆分成 true 和 false 两种情况"doxdocgen.generic.linesToGet": 20,                  // 回车后最多向下多少行去找函数声明"doxdocgen.generic.useGitUserName": false,          // {author} 是都根据 git config --get user.name 替换"doxdocgen.generic.useGitUserEmail": false,//declarations or definitions anymore.}

vscode snippet

F1 snippet

image-20250509155249533

以下是我的配置

image-20250509155451935

{"File Header (Doxygen Style)": {"prefix": "fileheader","body": ["/*****************************************************************************","*  ${1:Project Name}                                                        ","*  Copyright (C) ${CURRENT_YEAR} ${2:Your Name} <${3:your.email@example.com}>","*                                                                           ","*  This file is part of ${1:Project Name}.                                  ","*                                                                           ","*  This program is free software; you can redistribute it and/or modify    ","*  it under the terms of the GNU General Public License version 3 as       ","*  published by the Free Software Foundation.                              ","*                                                                           ","*  You should have received a copy of the GNU General Public License       ","*  along with this program. If not, see <http://www.gnu.org/licenses/>.    ","*                                                                           ","*  @file     ${TM_FILENAME}                                                ","*  @brief    ${4:简要说明}                                                  ","*  @details  ${5:详细描述}                                                 ","*                                                                           ","*  @author   ${2:Your Name}                                                ","*  @email    ${3:your.email@example.com}                                   ","*  @version  1.0.0.1                                                       ","*  @date     ${CURRENT_YEAR}/${CURRENT_MONTH}/${CURRENT_DATE}             ","*  @license  GNU General Public License (GPL)                              ","*---------------------------------------------------------------------------*","*  Remark         : ${6:说明备注}                                          ","*---------------------------------------------------------------------------*","*  Change History :                                                        ","*  <Date>     | <Version> | <Author>       | <Description>                 ","*  ${CURRENT_YEAR}/${CURRENT_MONTH}/${CURRENT_DATE} | 1.0.0.1   | ${2:Your Name}      | Create file           ","*****************************************************************************/"],"description": "Insert file header comment in Doxygen format"},"Section Divider": {"prefix": "divider","body": ["//---------------------------------------------------------------------------","// ${1:Section Name}","//---------------------------------------------------------------------------"],"description": "Insert section divider comment"}
}

相关文章:

  • 大模型备案环节如何评估模型的安全性
  • 简易版无人机飞控
  • C++ Dll创建与调用 查看dll函数 MFC 单对话框应用程序(EXE 工程)改为 DLL 工程
  • Spring Boot快速开发:从零开始搭建一个企业级应用
  • 《工业计算机硬件技术支持手册》适用于哪些人群?
  • STM32GPIO输入实战-key按键easy_button库移植
  • ES6新增Set、Map两种数据结构、WeakMap、WeakSet举例说明详细。(含DeepSeek讲解)
  • Qt开发经验 --- 避坑指南(10)
  • 使用Java实现HTTP协议服务:从自定义服务器到内置工具
  • MySQL 8.0(主从复制)
  • 如何删除豆包本地大模型
  • 操纵杆支架加工工艺及钻3φ11孔夹具设计
  • L48.【LeetCode题解】904. 水果成篮
  • 《P1177 【模板】排序》
  • 高质量老年生活:从主动健康管理到预防医学的社会价值
  • 一种安全不泄漏、高效、免费的自动化脚本平台
  • C++学习-入门到精通-【5】类模板array和vector、异常捕获
  • CMA认证对象?CMA评审依据,CMA认证好处
  • PPI-ID: 德克萨斯大学研究团队最新款蛋白-蛋白互作(PPI)预测工具上线
  • Java中医门诊系统源码 中医诊所系统源码
  • 工程院院士葛世荣获聘任为江西理工大学校长
  • 江西暴雨强对流明显,专家:落雨区高度重叠,地质灾害风险高
  • 昆明阳宗海风景名胜区19口井违规抽取地热水,整改后用自来水代替温泉
  • 调节负面情绪可以缓解慢性疼痛
  • 又一日军“慰安妇”制度受害者去世,大陆在世幸存者仅7人
  • 李云泽:将尽快推出支持小微企业民营企业融资一揽子政策