VS Code自定义代码模板
VS Code作为一款轻量级的编辑器,使用体验极佳,具有很多有用的小功能,也有着非常丰富的插件,日常写代码的时候自动补全和各种模板能够有效的提高编码的效率,这里介绍两种我常使用的自定义代码块或者模板的设置方法。
集成自定义代码段
VS Code自带了用户定义代码段功能,可以在菜单文件 > 首选项 > 用户片段
中选择相应的语言进行设置。
方法
设置的方法如下所示,这里以C/C++的代码段为例:
{
"cpp":{
"prefix": "cpp",
"body": [
"#include<bits/stdc++.h>",
"using namespace std;",
"int main(){",
" $1",
" return 0;",
"}",
],
"description": "for nomal cpp"
},
}
其中各个字段含义如下:
"cpp"
表示当前字段的标签名;
"prefix"
表示当前代码段的触发字符;
"body"
表示当前代码段的内容,可以直接用字符串或者带有转义字符的字符串表示,其中"$1"
表示光标停留的第一个位置,可以通过类似的编号增加位置以方便使用Tab键切换位置;
"description"
表示对当前代码段的描述,属于自定义内容,仅用于描述相关内容是什么。
使用多组标签就可以定义多组代码补全片段。
示例
以下是上述方法中cpp
代码段的演示效果:
个人配置文件分享
以下为我自己常用的代码块:
{
"cpp":{
"prefix": "cpp",
"body": [
"#include<bits/stdc++.h>",
"using namespace std;",
"int main(){",
" $1",
" return 0;",
"}",
],
"description": "for nomal cpp"
},
"leetcode":{
"prefix": "leetcode",
"body": "#include<bits/stdc++.h>\nusing namespace std;\n",
"description": "for leetcode"
},
"ListNode":{
"prefix": "List",
"body": [
"#include<bits/stdc++.h>",
"using namespace std;",
"//链表定义",
"struct ListNode {",
" int val;",
" ListNode *next;",
" ListNode() : val(0), next(nullptr) {}",
" ListNode(int x) : val(x), next(nullptr) {}",
" ListNode(int x, ListNode *next) : val(x), next(next) {}",
"};\n",
],
"description": "for List of leetcode"
},
"Tree":{
"prefix": "Tree",
"body": [
"#include<bits/stdc++.h>",
"using namespace std;",
"//二叉树定义",
"struct TreeNode {",
" int val;",
" TreeNode *left;",
" TreeNode *right;",
" TreeNode() : val(0), left(nullptr), right(nullptr) {}",
" TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}",
" TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}",
"};\n",
],
"description": "for Tree of leetcode"
},
"main":{
"prefix": "mymain",
"body": [
"int main(){",
" $1",
" return 0;",
"}"
],
"description": "mymain"
},
"note":{
"prefix": "#note",
"body": [
"/******************** --$1-- ********************/",
],
"description": "note"
},
"multinote":{
"prefix": "#multinote",
"body": [
"/********************************************************************************",
" * $1",
" ********************************************************************************/",
],
"description": "multinote"
},
}
doxygen注释模板
doxygen插件
在扩展商城中搜索并安装Doxygen Documentation Generator
插件。
插件相关配置
在VS Code的设置文件setting.json
文件中添加相关设置项。其中包含了触发字符///
、注释代码块的第一行和最后一行内容、C++类方法的描述说明、文件头生成模板,函数描述说明模板,内容如下所示:
{
//doxygen注释设置
"doxdocgen.c.triggerSequence": "///",
"doxdocgen.c.firstLine": "/********************************************************************************",
"doxdocgen.c.lastLine": " ********************************************************************************/",
"doxdocgen.cpp.ctorText": "Construct a new {name} object",
"doxdocgen.cpp.dtorText": "Destroy the {name} object",
"doxdocgen.cpp.tparamTemplate": "@tparam {param} ",
"doxdocgen.file.fileOrder": [
"file",
"author",
"brief",
"version",
"date",
// "empty",
// "copyright",
// "empty",
// "custom"
],
"doxdocgen.file.fileTemplate": "@file {name}",
"doxdocgen.generic.authorName": "Song Jiahao",
"doxdocgen.generic.authorEmail": "songjiahao.@whu.edu.cn",
"doxdocgen.generic.authorTag": "@author {author} ({email})",
"doxdocgen.generic.briefTemplate": "@brief {text}",
"doxdocgen.file.versionTag": "@version 1.0.0",
"doxdocgen.generic.dateFormat": "YYYY-MM-DD",
"doxdocgen.generic.dateTemplate": "@date {date}",
"doxdocgen.file.copyrightTag": [
"@copyright Copyright (c) {year}"
],
"doxdocgen.file.customTag": [],
"doxdocgen.generic.linesToGet": 20,
"doxdocgen.generic.order": [
"brief",
"empty",
"tparam",
"param",
"return",
// "custom"
],
"doxdocgen.generic.paramTemplate": "@param{indent:8}{param}{indent:25}",
"doxdocgen.generic.returnTemplate": "@return{indent:8}{type}{indent:25}",
}
使用示例
使用自定义的触发字符即可触发相应的代码模板,示例如下所示:
-
- 文件头模板
- 文件头模板
-
- 类模板
构造函数:
析构函数:
- 类模板
-
- 函数模板
- 函数模板
Comments | NOTHING