Фрагменты кода Visual Studio: как преобразовать пользовательский ввод во фрагмент? - PullRequest
0 голосов
/ 28 февраля 2020

Я пытаюсь написать фрагмент кода в Visual Studio, который выводит что-то вроде этого:

console.log('variable: ', variable);

Это довольно просто, просто что-то вроде:

 "Debug Labeled String": {
    "scope": "javascript",
    "prefix": "c,",
    "description": "Debug Labeled String",
    "body": [
      "console.log('$1', ${1})",
    ]
  }

Проблема с этим, если строка, которую я отлаживаю, содержит одинарные кавычки, это больше не допустимый код. Поэтому я пытаюсь заменить одинарные кавычки в содержании первого $1 ничем. Согласно документам вы можете применять преобразования к переменным. Однако я не могу понять, как применить преобразования к пользовательским переменным.

Я пробовал

"console.log('${1:/'//g}', $1);"

Но это просто выводит буквально /'/ вместо $ 1. Я также попытался сделать что-то вроде захвата всех входных данных и ссылки на эту группу захвата по номеру:

"console.log('${1:/'//g}', ${1:/(.*)});"

Но это тоже не работает. Возможно ли в Visual Studio Code преобразовать результат пользовательского ввода?

1 Ответ

0 голосов
/ 28 февраля 2020

Это работает для меня:

"console.log('${1/'//g}', $1);",  

Я только что удалил :, который превращает его в заполнитель без значения по умолчанию, и преобразования на заполнителях являются сложными. Например, это также работает:

 "console.log('${1/'//g}', ${1:default});"  // or
 "console.log('${1/'//g}', ${1:});"

Я думаю, ключ в том, что вам нужен где-то не преобразованный заполнитель, и тогда преобразование будет работать. Нетрансформированный заполнитель может быть до или после преобразованной версии. Следовательно, это не работает:

"console.log('${1/'//g}', ${1:default/'//g});"  // the second transform does nothin

Я также думаю, что есть некоторые ошибки в преобразованиях placehlder.

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