• Vs code自动生成Doxygen格式注释


    前言

    ​ 程序中注释的规范和统一性的重要性不言而喻,本文就推荐一种在用vscode编写代码时自动化生成标准化注释格式的方法,关于Doxygen规范及其使用可查看博文 代码注释规范之Doxygen

    ​ 本方法仅作为Doxygen注释的辅助作用。

    Vs code自动生成Doxygen格式注释

    环境

    • Vs code
    • Generate Doxygen Comments 插件

    Generate Doxygen Comments 插件使用及配置

    安装插件后,File--Preferences--Settings-- 中打开用户 setting.json文件

    初步设置后如下所示:

    {
        "window.zoomLevel": 0,
        "editor.minimap.enabled": false,
        "python.pythonPath": "C:\Users\jordan\AppData\Local\Programs\Python\Python37\python.exe",
        "workbench.iconTheme": "vscode-icons",
        "explorer.autoReveal": false,   //取消左侧自动聚焦
        "terminal.integrated.shell.windows": "D:\Program Files\Git\bin\bash.exe",
        "terminal.external.windowsExec": "D:\Program Files\Git\bin\bash.exe",
        "todo-tree.highlights.enabled": true,
    
        // Doxygen documentation generator set
        "doxdocgen.file.copyrightTag": [
            "@copyright Copyright (c) {year}  XX通信公司"
        ],
        "doxdocgen.file.customTag": [
            "@par 修改日志:",
            "<table>",
            "<tr><th>Date       <th>Version <th>Author  <th>Description",
            "<tr><td>{date} <td>1.0     <td>wangh     <td>内容",
            "</table>",
        ],
        "doxdocgen.file.fileOrder": [
            "file",
            "brief",
            "author",
            "version",
            "date",
            "empty",
            "copyright",
            "empty",
            "custom"
        ],
        "doxdocgen.file.fileTemplate": "@file {name}",
        "doxdocgen.file.versionTag": "@version 1.0",
        "doxdocgen.generic.authorEmail": "wanghuan3037@fiberhome.com",
        "doxdocgen.generic.authorName": "wangh",
        "doxdocgen.generic.authorTag": "@author {author} ({email})",
    
        "doxdocgen.generic.order": [
            "brief",
            "tparam",
            "param",
            "return"
        ],
        "doxdocgen.generic.paramTemplate": "@param{indent:8}{param}{indent:25}My Param doc",
        "doxdocgen.generic.returnTemplate": "@return {type} ",
        "doxdocgen.generic.splitCasingSmartText": true,
    }
    

    解释如下:

    {
        // Doxygen documentation generator set
        // 文件注释:版权信息模板
        "doxdocgen.file.copyrightTag": [
            "@copyright Copyright (c) {year}  XX通信公司"
        ],
        // 文件注释:自定义模块,这里我添加一个修改日志
        "doxdocgen.file.customTag": [
            "@par 修改日志:",
            "<table>",
            "<tr><th>Date       <th>Version <th>Author  <th>Description",
            "<tr><td>{date} <td>1.0     <td>wangh     <td>内容",
            "</table>",
        ],
        // 文件注释的组成及其排序
        "doxdocgen.file.fileOrder": [
            "file",		// @file
            "brief",	// @brief 简介
            "author",	// 作者
            "version",	// 版本
            "date",		// 日期
            "empty",	// 空行
            "copyright",// 版权
            "empty",
            "custom"	// 自定义
        ],
        // 下面时设置上面标签tag的具体信息
        "doxdocgen.file.fileTemplate": "@file {name}",
        "doxdocgen.file.versionTag": "@version 1.0",
        "doxdocgen.generic.authorEmail": "wanghuan3037@fiberhome.com",
        "doxdocgen.generic.authorName": "wangh",
        "doxdocgen.generic.authorTag": "@author {author} ({email})",
        // 日期格式与模板
        "doxdocgen.generic.dateFormat": "YYYY-MM-DD",
        "doxdocgen.generic.dateTemplate": "@date {date}",
    	
        // 根据自动生成的注释模板(目前主要体现在函数注释上)
        "doxdocgen.generic.order": [
            "brief",
            "tparam",
            "param",
            "return"
        ],
        "doxdocgen.generic.paramTemplate": "@param{indent:8}{param}{indent:25}My Param doc",
        "doxdocgen.generic.returnTemplate": "@return {type} ",
        "doxdocgen.generic.splitCasingSmartText": true,
    }
    

    效果如下:

    当在文件头部输入 “/**” 后回车,效果如下:

    /**
     * @file main.c
     * @brief 
     * @author wangh (xxxxxxx@fiberhome.com)
     * @version 1.0
     * @date 2019-11-17
     * 
     * @copyright Copyright (c) 2019  XX通信公司
     * 
     * @par 修改日志:
     * <table>
     * <tr><th>Date       <th>Version <th>Author  <th>Description
     * <tr><td>2019-11-17 <td>1.0     <td>wangh     <td>内容
     * </table>
     */
    

    在函数上面 “/**” 后回车,效果如下:

    /**
     * @brief 
     * @param  buffer           My Param doc
     * @param  len              My Param doc
     * @return int 
     */
    int platform_oled_write(uint8_t *buffer, uint16_t len);
    
  • 相关阅读:
    C++类成员变量多用指针不用对象
    C++列表初始化是初始化本类自身含有的成员变量,不能直接初始化继承过来的成员变量
    std::unorder_set你插入元素的顺序不一定就是元素在里面的元素
    yolo3使用darknet卷积神经网络训练pascal voc
    windows下执行tensorflow/models的代码显示No module named 'object_detection'
    extern const 不能一起用
    常见PID里面的像素大小
    ajax 异步请求webservice(XML格式)
    剖析下聊天室
    session更换存储,实现在多台服务器共享
  • 原文地址:https://www.cnblogs.com/silencehuan/p/11875958.html
Copyright © 2020-2023  润新知