Преобразование переменных выбора не поддерживается. Существует общее обсуждение, упоминающее это в https://github.com/Microsoft/vscode/pull/51621.
Есть несколько обходных путей, потому что преобразователи заполнителей работают, пока где-то используется одно преобразованное использование заполнителя во фрагменте. Тогда преобразованная версия в другом месте будет работать. Этот метод работает для преобразований заполнителей, но НЕ преобразований выбора, как вы пытаетесь это сделать. Почему эта разница, я не знаю ??
Упрощенный обходной путь 1 с использованием одного заполнителя:
"snippet": "Before semicolon: ${1/([^;]*).*/$1/} && Full value: ${1:1; testValue1}"
Здесь вам придется принять значение заполнителя по умолчанию (1; testValue1
) или перезаписать его с другим значением. Затем на tab преобразование будет применено к любым другим ссылкам на эту же табуляцию.
Сложный обходной путь 2, использующий несколько заполнителей (в данном случае для 3 «вариантов выбора»:
"snippet": "Before semicolon: ${1/([^;]*).*/$1/}${2/([^;]*).*/$1/}${3/([^;]*).*/$1/} && Full value: ${1:1; testValue}${2:2; testValue}${3:3; testValue}"
Здесь вы должны указать три (или сколько у вас есть) варианта как отдельные вкладки-заполнители. Затем вы либо вкладка примете тот заполнитель, который вам нужен, либо удалите tab те, которые вы не делаете. Немного сложно получить последовательность удаления / вкладки вниз, но как только она у вас есть, она повторяется. Вы видите, что курсор находится в начале следующего «выбора» но это действительно конец предыдущего «выбора».
Вот демонстрационная версия версии 2, где я выбираю каждый «выбор» / заполнитель по очереди. [Я просто использую alt i здесь, чтобы упростить связывание клавиш.]
Очевидно, если потенциально есть много "вариантов выбора" вы, вероятно, захотите использовать версию 1. Если у вас есть небольшое число из «вариантов», которые вы хотите представить и не нужно вводить, версия 2 работает довольно хорошо.