VS код — фрагмент текста преобразования с пробелами для методов тестирования

#visual-studio-code #code-snippets

#visual-studio-code #фрагменты кода

Вопрос:

У меня был этот полезный фрагмент в Sublime Text 3 некоторое время, и я пытаюсь воспроизвести его в VS Code, но безуспешно.

 <snippet>
    <content><![CDATA[
/** @test */
public function ${1/s/_/g}()
{
    ${0:// ${1:type name of method with spaces}}
}
]]></content>
    <!-- Optional: Set a tabTrigger to define how to trigger the snippet -->
    <tabTrigger>phpunit</tabTrigger>
    <!-- Optional: Set a scope to limit where the snippet will trigger -->
    <!-- <scope>source.php</scope> -->
</snippet>
  

Я в основном создал тот же фрагмент в VS Code, но он жалуется, что s это недопустимый escape-символ.

Изображение, показывающее ошибку фрагмента в VS Code

Где я ошибаюсь? Отсутствует ли поддержка поиска пробелов?

Хотелось бы, чтобы этот фрагмент снова заработал, поскольку это полезная экономия времени.

Комментарии:

1. Попробуйте дважды экранировать это или даже три экранирования. Я не могу проверить прямо сейчас.

Ответ №1:

Просто дважды экранируйте его:

 public function ${1/\s/_/g}()
  

и это будет работать нормально. Смотрите Примеры преобразования и экранирование:

Примеры приведены в двойных кавычках, как они появлялись бы внутри тела фрагмента, чтобы проиллюстрировать необходимость двойного экранирования определенных символов.

Комментарии:

1. Спасибо — но боюсь, что двойное экранирование не имеет никакого эффекта.

2. Я вижу, что ранее допустил опечатку — я просто исправил это выше, и я ранее протестировал это. Это работает.

3. Ах да — вы должны снова нажать «tab» после ввода, чтобы преобразование вступило в силу. В Sublime вы видите, как он преобразуется по мере ввода. Подтвердите, что двойное экранирование (ваш пример выше) работает 🙂