我想添加几个代码段,以在创建javascript / typescript单元测试时使用,但是我找不到任何方法将代码段的全局范围设置为*.spec.ts
或*.spec.js
这可能吗? In the documentation他们说范围是基于language identifier的,但是我只是看到了一种为那里的每种语言添加另一种扩展的方法。
答案 0 :(得分:1)
您可以针对摘要执行此操作。在您的keybindings.json中:
{
"key": "shift+alt+2",
"command": "editor.action.insertSnippet",
"when": "resourceFilename =~ /\\.spec\\.[tj]s$/",
// with the snippet text directly in the keybinding
"args": {
"snippet": "console.log($1)$0"
}
},
或此键绑定:
{
"key": "shift+alt+2",
"command": "editor.action.insertSnippet",
"when": "resourceFilename =~ /\\.spec\\.[tj]s$/",
"args": {
"name": "unit tests"
}
}
此代码段位于代码段文件中:
"unit tests": {
// "prefix": "", // not used here
"body": [
"console.log($1)$0",
],
限制代码段范围的关键是这个when
子句:
"when": "resourceFilename =~ /\\.spec\\.[tj]s$/",
作为正则表达式将查找以.spec.ts
或.spec.js
结尾的文件名(请注意,句点之前需要两次转义)。因此,请使用resourceFileName
并构造一个正则表达式,使其在末尾查找。
现在,您选择的键绑定仅在*.spec.ts
或*.spec.js
文件中有效。
请参见a when clause acting as a regular expression, in keybindings documentation:
键值when子句运算符
有
when
子句的键值对运算符。表达方式key =~ value
将右手侧视为 匹配左手边。例如,贡献背景 所有Docker文件的菜单项,可以使用:
"when": "resourceFilename =~ /docker/"
由于以下问题,我发现了这一点:resourceExtname with two dots not working