前提:
为了避免简单的重复劳动,借助VSCODE 快速生成文件头部,在项目搭建中体验非常舒适。
官方指导
{
// Place your global snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and
// description. Add comma separated ids of the languages where the snippet is applicable in the scope field. If scope
// is left empty or omitted, the snippet gets applied to all languages. The prefix is what is
// used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders.
// Placeholders with the same ids are connected.
// Example:
// "Print to console": {
// "scope": "javascript,typescript",
// "prefix": "log",
// "body": [
// "console.log('$1');",
// "$2"
// ],
// "description": "Log output to console"
// }
}
生成 .c 用户片段
-
打开 VSCODE,文件 -> 首选项 -> 配置用户片段

-
点击完成后弹出会话窗口,篮框为已配置的用户片段,点击:New Snippets新建全局片段

-
输入片段文件名,命名 “c.code”

-
拷贝如下内容,可以生成.c 文件用户片段:
{
"CcHEADER":{
"scope": "c, cpp",
"prefix": "cpp",
"description": "header C/C++",
"body": [
"/*------------------------------------------------------------------------------",
" * @file ${TM_FILENAME/(.*)/${1:/upcase}/}",
" * @author FIRMWARE TEAM ",
" * @date $CURRENT_YEAR/$CURRENT_MONTH/$CURRENT_DATE $CURRENT_HOUR:$CURRENT_MINUTE:$CURRENT_SECOND",
" * @brief THIS FILE PROVIDES ALL THE FIRMWARE FUNCTIONS.",
" * -----------------------------------------------------------------------------",
" * @attention ",
" ",
" * THE EXISTING FIRMWARE IS ONLY FOR REFERENCE, WHICH IS DESIGNED TO PROVIDE ",
" * CUSTOMERS WITH CODING INFORMATION ABOUT THEIR PRODUCTS SO THEY CAN SAVE ",
" * TIME. THEREFORE, MINDMOTION SHALL NOT BE LIABLE FOR ANY DIRECT, INDIRECT OR ",
" * CONSEQUENTIAL DAMAGES ABOUT ANY CLAIMS ARISING OUT OF THE CONTENT OF SUCH ",
" * HARDWARE AND/OR THE USE OF THE CODING INFORMATION CONTAINED HEREIN IN ",
" * CONNECTION WITH PRODUCTS MADE BY CUSTOMERS. ",
" * ",
" * <H2><CENTER>© COPYRIGHT MINDMOTION </CENTER></H2> ",
"------------------------------------------------------------------------------*/",
"",
"/* Define to prevent recursive inclusion ------------------------------------*/",
"#define _${TM_FILENAME_BASE/(.*)/${1:/upcase}/}_C_",
"",
"/* Files includes -----------------------------------------------------------*/",
"#include \"$TM_FILENAME_BASE.h\"",
"","",
"/*----------------------------------------------------------------------------*/",
"$0",
""
],
}
}
- 如何调用:
新建文件,并指定后缀名为.c或者.cpp,文本输入 “cpp”,自动弹出CcHENDER片段提示,回车就可以生成下图效果。

实际效果:

生成 .h 用户片段
同步骤1-5.
{
"C HEADER":{
"scope": "c, cpp",
"prefix": "ch",
"description": "header C/C++",
"body": [
"/*------------------------------------------------------------------------------",
" * @file ${TM_FILENAME/(.*)/${1:/upcase}/}",
" * @author FIRMWARE TEAM ",
" * @date $CURRENT_YEAR/$CURRENT_MONTH/$CURRENT_DATE $CURRENT_HOUR:$CURRENT_MINUTE:$CURRENT_SECOND",
" * @brief THIS FILE PROVIDES ALL THE FIRMWARE FUNCTIONS.",
" * -----------------------------------------------------------------------------",
" * @attention ",
" ",
" * THE EXISTING FIRMWARE IS ONLY FOR REFERENCE, WHICH IS DESIGNED TO PROVIDE ",
" * CUSTOMERS WITH CODING INFORMATION ABOUT THEIR PRODUCTS SO THEY CAN SAVE ",
" * TIME. THEREFORE, MINDMOTION SHALL NOT BE LIABLE FOR ANY DIRECT, INDIRECT OR ",
" * CONSEQUENTIAL DAMAGES ABOUT ANY CLAIMS ARISING OUT OF THE CONTENT OF SUCH ",
" * HARDWARE AND/OR THE USE OF THE CODING INFORMATION CONTAINED HEREIN IN ",
" * CONNECTION WITH PRODUCTS MADE BY CUSTOMERS. ",
" * ",
" * <H2><CENTER>© COPYRIGHT MINDMOTION </CENTER></H2> ",
"------------------------------------------------------------------------------*/",
"",
"/* Define to prevent recursive inclusion ------------------------------------*/",
"#ifndef __${TM_FILENAME_BASE/(.*)/${1:/upcase}/}_H",
"#define __${TM_FILENAME_BASE/(.*)/${1:/upcase}/}_H",
"",
"/* Files includes -----------------------------------------------------------*/",
"","",
"/* Defines -------------------------------------------------------------------*/",
"","",
"/* Variables -----------------------------------------------------------------*/",
"#ifdef _${TM_FILENAME_BASE/(.*)/${1:/upcase}/}_C_",
"#define GLOBAL",
"","","",
"#else",
"#define GLOBAL extern",
"#endif",
"","","",
"#undef GLOBAL",
"",
"/* Functions ----------------------------------------------------------------*/",
"$0",
"","",
"#endif",
""
],
}
}
-
如何使用
新建后缀名为 .h的文件,文本输入 “ch”, 即可自动生成。 -
实际效果


文章介绍了如何在VSCODE中创建自定义的用户片段,特别是针对C/C++文件的头部注释。通过配置全局片段,用户可以快捷地输入‘cpp’或‘ch’来自动填充标准的文件头信息,提高开发效率。
330

被折叠的 条评论
为什么被折叠?



