Подстановка (преобразование) фрагмента кода VS работает с переменными, а не с заполнителями - PullRequest
0 голосов
/ 24 октября 2018

против кода, предположительно, поддерживает подстанцию, то есть преобразовывает в определенные пользователем фрагменты.Но он работает для меня только с (встроенными) переменными, а не с заполнителями.

См. Следующий фрагмент:

"substitution test" : {
    "prefix" : "abc",
    "body": [
        "${TM_FILENAME}",
        "${TM_FILENAME/^([^.]+)\\..+$/$1/}",
        "${TM_FILENAME/^([^.]+)\\..+$/${1:/capitalize}/}",
        "${TM_FILENAME/^([^.]+)\\..+$/${1:/upcase}/}",
        "${2:showMeInAllCapsWhenReferenced}",
        "${2/upcase}"
    ]
}

Вывод строк 1-4 соответствует ожидаемому:

users.actions.ts
users
Users
USERS

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

fooFoo
FOOFOO

Но фактический результат равен

showMeInAllCapsWhenReferenced
${2/upcase}

Возможна ли замена / преобразование ссылочных заполнителей (по типу I)?

1 Ответ

0 голосов
/ 24 октября 2018

Ваши последние две строки должны быть:

"${2:showMeInAllCapsWhenReferenced}",
"${2/(.*)/${1:/upcase}/}"

После последней вкладки преобразование фактически применяется (так что не технически "при вводе" замены заполнителя).

From преобразования-заполнители :

Вставленный текст сопоставляется с регулярным выражением, и совпадение или совпадения - в зависимости от параметров - заменяются указанным текстом формата замены.

Таким образом, вы не можете просто использовать: / upcase, например, без захвата регулярного выражения, как вы пытались сделать в строке 5 - он может преобразовать только регулярное выражение match .

Просмотр грамматика раздел:

transform   ::= '/' regex '/' (format | text)+ '/' options 

format   ::= '$' int | '${' int '}'

            | '${' int ':' '/upcase' | '/downcase' | '/capitalize' '}'

            | '${' int ':+' if '}'

            | '${' int ':?' if ':' else '}'

            | '${' int ':-' else '}' | '${' int ':' else '}'

мы видим, что: / upcase должен следовать регулярному выражению.(«Формат», одним из которых является upcase, должен следовать за «regex» в «transform».)

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