Фильтровать фрагмент по имени файла или расширению, например * .spec.ts и * .spec.js? - PullRequest
0 голосов
/ 12 октября 2018

Я хочу добавить пару фрагментов для использования при создании модульных тестов javascript / typcript, но я не нахожу никакого способа установить глобальную область действия фрагмента на *.spec.ts или *.spec.js

Isэто возможно? В документации говорится, что область действия основана на идентификаторе языка , но я просто вижу способ добавить еще одно расширение для каждого языка.

1 Ответ

0 голосов
/ 22 марта 2019

Вы можете сделать это для фрагментов кода.В вашем 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 с двумя не работающими точками

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...