vscode配置

发布于:2024-11-29 ⋅ 阅读:(22) ⋅ 点赞:(0)

1. 编辑界面右侧显示80字符分割线

界面左上角选择"文件->首选项->设置",进入设置界面,选择"文本编辑器->Rulers->在setting.json中编辑",或者直接所搜rulers
在这里插入图片描述
在这里插入图片描述

2. 添加注释头

在这里插入图片描述

{
    "add brief":
    {
        "prefix": ".brief",
        "body": [
        "",
        "/**",
        " * @brief : $1",
        " */",
        "$2",
        ],
    },

    "add enum template":
    {
        "prefix": ".enumTemplate",
        "body": [
        "",
        "/**",
        " * @brief : 错误代码定义",
        " */",
        "typedef enum",
        "{",
        "	ERR_SUCCESS       = 0,           //< 成功",
        "	ERR_FAILED        = -1,          //< 失败",
        "	ERR_INVALID_PARAMETER = -1000,   //< 无效参数",
        "	ERR_NOT_INITED,                  //< 未初始化",
        "	ERR_INITED,                      //< 已初始化$1",
        "} ErrCode;",
        ""
        ],
    },

    "Add File Header": {
        "prefix": ".fileHader",
        "body": [
            "/**"
            "  * @file    : ${TM_FILENAME}",
            "  * @brief   : $1",
            "  * @version : V1.0.0",
            "  * @date    : ${CURRENT_YEAR}-${CURRENT_MONTH}-${CURRENT_DATE}",
            "  */",
            "#ifndef __${TM_FILENAME_BASE/(.*)/${1:/upcase}/}_H__",
            "#define __${TM_FILENAME_BASE/(.*)/${1:/upcase}/}_H__",
            "",
            "/*================================= Includes =================================*/",
            "$2",
            "",
            "/*================================= Defines ==================================*/",
            "$3",
            "",
            "/*============================= Static Functions =============================*/",
            "$4",
            "",
            "/*============================= Public Functions =============================*/",
            "$5",
            "",
            "#endif /* __${TM_FILENAME_BASE/(.*)/${1:/upcase}/}_H__ */",
        ],
        "description": "Add file describe"
    },

    "add func header":{
        "prefix": ".funcHeader",
        "body": [
            "",
            "/**",
            " * @brief : $1",
            " * @param [$2]	$3  : $4",
            " * @param [$5]	$6  : $7",
            " * @return 返回错误码ErrCode",
            " */",
        ]
    },

    "check conditon": {
        "prefix": ".checkConditon",
        "body": [
            "#define CHECK_CONDITION(condition, error_code, error_message)     \\",
            "        do {                                                      \\",
            "            if (!(condition)) {                                   \\",
            "                $1fprintf(stderr, \"Error: %s\\n\", error_message);    \\",
            "                return error_code;                                \\",
            "            }                                                     \\",
            "        } while (0) $2",
            "$3",
        ]
    },

    "check param": {
        "prefix": ".checkParam",
        "body": [
            "#define CHECK_PARAM(param, error_code)                            \\",
            "        do {                                                      \\",
            "            if (!(param)) {                                       \\",
            "                $1fprintf(stderr, \"Error: invalid param\\n\");        \\",
            "                return error_code;                                \\",
            "            }                                                     \\",
            "        } while (0) $2",
            "$3",
        ]
    },

    "select timeout": {
        "prefix": ".select",
        "body": [
            "#include <sys/select.h>",
            "#include <sys/time.h>",
            "#include <unistd.h>",
            "$1",
            "/**",
            "  * @brief : select_with_timeout",
            "  * @param [in]	fd          : 文件描述符",
            "  * @param [in]	timeout_ms  : 超时时间(ms)",
            "  * @return true  : 文件描述符准备好",
            "  * @return false : 超时或出错",
            "  */",
            "bool select_with_timeout(int fd, int timeout_ms) {",
            "    fd_set read_set;",
            "    FD_ZERO(&read_set);",
            "    FD_SET(fd, &read_set);",
            "",
            "    // 设置超时时间",
            "    struct timeval tv;",
            "    tv.tv_sec = timeout_ms / 1000;",
            "    tv.tv_usec = (timeout_ms % 1000) * 1000;",
            "",
            "    // 调用 select 函数",
            "    int ready = ::select(fd + 1, &read_set, nullptr, nullptr, &tv);",
            "",
            "    if (ready == -1) { ",
            "        $1fprintf(stderr, \"Error: %s\\n\", strerror(errno));",
            "        return false;",
            "    }",
            "",
            "    // 检查文件描述符是否准备好",
            "    return ready > 0 && FD_ISSET(fd, &read_set);",
            "}",
            "",
        ]
    },

    "delete class functions": {
        "prefix": ".deleteClassFunctions",
        "body": [
            "$1(const $1 &) = delete;",
            "$1($1 &&)      = delete;",
            "$1 &operator=(const $1 &) = delete;",
            "$1 &operator=($1 &&)      = delete;",
            "",
        ]
    },

    "class define": {
        "prefix": ".class",
        "body": [
            "class $1" 
            "{",
            "public:",
            "    $1()  = default;",
            "    ${2:virtual }~$1() = default;",
            "",
            "    $1(const $1 &) = delete;",
            "    $1($1 &&)      = delete;",
            "    $1 &operator=(const $1 &) = delete;",
            "    $1 &operator=($1 &&)      = delete;",
            "",
            "protected:",
            "",
            "private:",
            "    $3",
            "};",
            "$4"
        ]
    },
}