vscode 配置doxygen注释和snippet

news2025/5/10 16:20:24

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"
  }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2372434.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HarmonyOS NEXT 免费无广告看电影app:从想法到实现的经验总结

学习一项新技能&#xff0c;最好也是最快的方法就是动手实战。学习鸿蒙也一样&#xff0c;给自己定一个小目标&#xff0c;直接找项目练,这样进步是最快的。最近&#xff0c;我在网上看到360周董的一句话&#xff1a;“想干什么就去干&#xff0c;干得烂总比不干强&#xff01;…

代码随想论图论part06冗余连接

图论part06 冗余连接 代码随想录 冗余边就是已经边已经在并查集里了&#xff0c;从图的角度来说构成了环&#xff08;冗余连接2要用到这个概念&#xff09; 代码其他部分为&#xff1a;并查集初始化&#xff0c;查根&#xff0c;判断是否在集合里&#xff0c;加入集合 冗余…

企业高性能WEB服务器—Nginx

Nginx介绍 Nginx是一款轻量级的网页服务器、反向代理服务器以及电子邮件代理服务器。 具有高并发&#xff08;特别是静态资源&#xff09;、占用系统资源少的特性。它不仅是Web服务软件&#xff0c;还具有反向代理负载均衡功能和缓存服务功能 具备如下基本特性 可针对静态资…

Python MNE-Python 脑功能磁共振数据分析

一、什​​么​​是​​Python MNE-Python 脑​​功​​能​​磁​​共​​振​​数​​据​​分​​析 为大脑功能磁共振成像数据分析工具&#xff0c;致力于为神经科学研究提供便捷、高效的数据分析处理工具。MNE-Python提供了处理和分析脑电图&#xff08;EEG&#xff09;、…

DevExpressWinForms-AlertControl-使用教程

文章目录 AlertControl-使用教程一、将 AlertControl 添加到 Form二、编辑 AlertControl 的 HtmlTemplateHTML Template Editor介绍编辑HTML Template 三、使用AlertControl弹出AlertAlert中的按钮事件获取 Alert 标题等信息向Alert传递参数 总结源码 AlertControl-使用教程 一…

【PostgreSQL数据分析实战:从数据清洗到可视化全流程】电商数据分析案例-9.4 可视化报告输出

&#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 文章大纲 电商数据分析实战&#xff1a;基于PostgreSQL的可视化报告生成全流程9.4 可视化报告输出9.4.1 可视化报告设计框架9.4.1.1 报告目标与受众9.4.1.2 数据准备与指标体系 9.4.2…

屎上雕花系列-2nd

以下为“屎上雕花”的尝试2nd 使用Deepseek扩容而来&#xff0c;我竟然没有找到明显的错误&#xff0c;太强大了&#xff0c;工作改变生活了 LeCroy 以太网与 SAN 网络测试解决方案 硬件平台一&#xff1a;Xena 以太网流量生成器 Xena 以太网流量生成器是一款高性能的网络测…

MCP专题| 突破LLM三大瓶颈!模型上下文协议(MCP)如何重塑AI交互体验?

最近引爆了整个AI圈的Model Context Protocol&#xff08;MCP&#xff09;到底是什么&#xff1f;你是否也和小编一样一头雾水&#xff0c;不是说好的LLM风潮呢&#xff0c;怎么现在变成通信协议啦&#xff1f;最近小编也是找到一篇神仙综述&#xff0c;带你一遍搞清什么是MCP的…

我的AD快捷键方案【留存】

留存我的快捷键方案文件&#xff0c;以便换电脑的时候能够快速导入快捷键。 我的快捷键文件&#xff1a; 通过网盘分享的文件&#xff1a;JB20250509.DXPPrf 链接: https://pan.baidu.com/s/1t6V0GjdGFPNSFydP5Z_tfg?pwde4xs 提取码: e4xs 复制这段内容后打开百度网盘手机Ap…

Edwards爱德华STP泵软件用于操作和监控涡轮分子泵

Edwards爱德华STP泵软件用于操作和监控涡轮分子泵

QT6(35)4.8定时器QTimer 与QElapsedTimer:理论,例题的界面搭建,与功能的代码实现。

&#xff08;112&#xff09; &#xff08;113&#xff09;模仿随书老师给的源代码搭建的&#xff0c; LCD 显示的部分不一样 &#xff1a; &#xff08;114&#xff09;以下开始代码完善&#xff1a; 关联定时器的信号与槽函数 &#xff1a; &#xff08;115&#xff09;…

02 mysql 管理(Windows版)

一、启动及关闭 MySQL 服务器 1.1 通过 “服务” 管理工具 winr打开运行&#xff0c;输入services.msc 找到MySQL80&#xff0c;这个是我们在安装mysql的时候给的服务的名称&#xff0c;具体见文章mysql 安装 右键选择启动或者停止。 1.2 通过命令提示符 1.2.1 关闭命令…

不同渲染任务,用CPU还是GPU?

一、CPU与GPU渲染的核心差异与选型建议 CPU渲染的核心优势与适用场景 复杂场景处理能力&#xff1a;CPU凭借强大的多核性能&#xff08;如AMD Threadripper 3990x的64核&#xff09;和高内存容量&#xff08;最高支持512GB&#xff09;&#xff0c;擅长处理影视级光线追踪、全…

硅基计划 学习总结 拾贰

一、二级指针 难道指针也有分等级的吗&#xff0c;我们学过的指针要存放变量的地址的&#xff0c;那二级指针是干嘛的呢&#xff1f; 一级指针&#xff1a;int a 10; int *pa &a; 指针变量&#xff0c;它终究是个变量&#xff0c;也有自己的地址 那我们以后是不是可以通…

【C语言指针超详解(三)】--数组名的理解,一维数组传参的本质,冒泡排序,二级指针,指针数组

目录 一.数组名的理解 二.使用指针访问数组 三.一维数组传参的本质 四.冒泡排序 五.二级指针 六.指针数组 6.1--指针数组的定义 6.2--指针数组模拟二维数组 &#x1f525;个人主页&#xff1a;草莓熊Lotso的个人主页 &#x1f3ac;作者简介&#xff1a;C方向学习者 &…

QT聊天项目DAY10

1.封装redis操作类 头文件 #ifndef REDISMANAGE_H #define REDISMANAGE_H#include "Singletion.h" #include "GlobalHead.h"class RedisManage : public Singletion<RedisManage> {friend class Singletion<RedisManage>; public:~RedisMana…

养生:开启健康生活的钥匙

养生&#xff0c;是对生活的精心呵护&#xff0c;是通往健康之路的秘诀。以下从饮食、运动、睡眠和心态四个方面&#xff0c;为你呈现科学养生之道。 饮食养生&#xff1a;营养均衡的智慧 合理的饮食是养生的基础。遵循 “食物多样&#xff0c;谷类为主” 的原则&#xff0c;…

基于springboot的海洋环保知识分享系统的设计与实现

博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;熟悉各种主流语言&#xff0c;精通java、python、php、爬虫、web开发&#xff0c;已经做了六年的毕业设计程序开发&#xff0c;开发过上千套毕业设计程序&#xff0c;没有什么华丽的语言&#xff0…

操作系统 第2章节 进程,线程和作业

一:多道程序设计 1-多道程设计的目的 for:提高吞吐量(作业道数/处理时间),我们可以从提高资源的利用率出发 2-单道程序设计缺点: 设备的利用率低,内存的利用率低,处理机的利用率低 比如CPU去访问内存,CPU空转.内存等待CPU访问也是没有任何操作的.要是有多个东西要去访问不冲…

RT-Thread 深入系列 Part 2:RT-Thread 内核核心机制深度剖析

摘要&#xff1a; 本文从线程管理、调度器原理、中断处理与上下文切换、IPC 同步机制、内存管理五大核心模块出发&#xff0c;深入剖析 RT-Thread 内核实现细节&#xff0c;并辅以源码解读、流程图、时序图与性能数据。 目录 线程管理与调度器原理 1.1 线程控制块&#xff08;T…