Vs code添加代码片段的方法
前言
我之前使用IDEA习惯选中代码块,接着通过快捷键Ctrl+Alt+T使用一个叫[Surround With…]的功能快捷添加捕获异常的语句try catch、try except,换成VS Code使用方法稍微不一样,经过摸索后找到以下两种方法。
正文
VS Code内置的代码片段自定义
选中File > Preferences (Code > Preferences on macOS) > User Snippets,接着会弹出代码片段设置面板。其中有一个选项New Global Snippets file,这是定义全局代码片段,也就是这个代码片段所有语言可用。
如果要定义适用于特定语言的代码片段,要选择特定语言,比如说python,首次定义会自动新建一个python.json的配置文件,所有配置和VS Code Setting一样,遵循JSON语法。
如刚新建的配置文件的注释包含示例所示,一个代码片段由三个配置项组成,这里以一个python代码片段示例进行说明。
"try except":{
//数组配置项,可选。这既是通过命令面板插入代码片段的名字标识,也是触发代码片段自动补全的关键词。
//这里输入try的时候就会出现这个代码片段的提示,或者通过te也能够匹配到try-except,触发这个代码片段。
"prefix":["try","try-except"]
//数组配置项,必填。这是代码片段定义,语法参考https://code.visualstudio.com/docs/editor/userdefinedsnippets#_create-your-own-snippets
//每一个数组元素占用一行,所以这个代码片段由4行代码组成。
//python是通过缩进区分一个代码块,这里在第2行第4行分别插入了一个制表符。
//其中第二行插入了一个内置变量$TM_SELECTED_TEXT,表示当前选中的代码块,变量在这里的作用就是通过try...except...包裹选中的代码块。
//第三行${1:Error}插入了一个Error变量,这里表示通过变量定义一个异常类,插入代码片段的时候可改变这个值。
"body": ["try:",
"\t$TM_SELECTED_TEXT",
"except ${1:Error} as e:",
"\t$BLOCK_COMMENT_START 处理异常 $BLOCK_COMMENT_END"],
//字符串配置项,可选。代码片段说明。
"description": "try...except..."
}
使用这个代码片段只需要在代码里输入上述定义的触发关键词,就能通过代码自动补全提示插入,还可以通过Ctrl+Shift+P打开命令面板,输入Insert Snippet并选中,就会弹出适用于当前语言的代码片段,点击可插入。
接下来再说说使用Surround定义代码片段的方法。
使用Surround扩展定义代码片段
Surround的使用方法比较简单,因为它本身就内置了常用的代码片段,ifElse、tryCatch、tryFinally、forEach等等,这里主要讲的是如何自定义代码片段,语法其实跟第一个方法差不多。
首先Ctrl+,打开Setting菜单,搜索框输入Surround:Custom,查找Surround的自定义代码片段配置。选中Edit in settings.json,自动打开settings.json。如果之前没有自定义代码片段,会自动创建一个surround.custom的json key,以后的所有代码片段都是在这个json key下面定义。
一个代码片段配置项有如下定义:
interface ISurroundItem {
//这是代码片段的名字,作为添加代码片段的菜单项名字,自定义的每个代码片段名字必须唯一,必要配置项
label: string;
//代码片段的介绍,可选配置项
description?: string;
//作用???,可选配置项
detail?: string;
//代码片段定义,语法看https://code.visualstudio.com/docs/editor/userdefinedsnippets#_snippet-syntax
//必要配置项
snippet: string;
//禁用状态,默认启用
disabled?: boolean;
//代码片段语言作用域,可填写html, typescript,python等等,更多的languageId详看https://code.visualstudio.com/docs/languages/identifiers#_known-language-identifiers,让片段适用于一种语言以上,还有通配符“*”表示所有语言可匹配此代码片段。
//可选配置项
languageIds?: string[];
}
这里是一个在python语言下使用的一个异常语句块片段示例:
"tryExcept": {
"label": "tryExcept",
"snippet": "try:\n\t$TM_SELECTED_TEXT\nexcept $0 as e:\n\traise Exception(e)",
"languageIds": ["python"]
}
定义完成后,使用这个代码片段只需要,选中要捕获异常的代码块,按下Ctrl+Shift+T,输入try就可以快速筛选到自定义的异常捕获代码片段。
至此介绍完两种自定义代码片段的方法,实际应用按自己喜好习惯选择即可。