我想在创建 javascript/typescript 单元测试时添加几个要使用的片段,但我找不到任何方法将片段的全局范围设置为*.spec.ts
或*.spec.js
问问题
282 次
1 回答
2
您可以对片段执行此操作。在您的 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
or结尾的文件名.spec.js
(请注意,您需要在句点之前进行双重转义)。所以使用resourceFileName
and 构造一个正则表达式来查看它的末尾。
现在您选择的键绑定将仅在 a *.spec.ts
or*.spec.js
文件中起作用。
请参阅keybindings 文档中充当正则表达式的 when 子句:
当子句运算符的键值
when
子句有一个键值对运算符。该表达式key =~ value
将右侧视为正则表达式以匹配左侧。例如,要为所有 Docker 文件提供上下文菜单项,可以使用:
"when": "resourceFilename =~ /docker/"
由于这个问题,我发现了这一点:resourceExtname with two dots not working
于 2019-03-22T04:19:42.800 回答