Вы можете сделать это для фрагментов кода.В вашем 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
пункты.Выражение key =~ value
обрабатывает правую часть как регулярное выражение для сопоставления с левой стороной.Например, чтобы добавить элементы контекстного меню для всех файлов Docker, можно использовать:
"when": "resourceFilename =~ /docker/"
Я нашел это благодаря этой проблеме: resourceExtname с двумя не работающими точками