Сниппеты

Управление сниппетами — функциональность некоторых редакторов кода и сред разработки. Она позволяет пользователю сохранять сниппеты для дальнейшего использования в процессе разработки кода

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

Доступны два варианта подключения сниппета:

snippet("your_snippet_name")

или

[[:your_snippet_name:]]

Оба варианта работают как макрос, т.е. указанный вариант объявления сниппета в JavaScript коде будет заменен на код, который указан в скрипте плагина, к которому мы обращаемся.

В содержимом скрипта плагина можно указывать любой JavaScript код, главное чтобы ваш код, в котором выполняется макроподстановка сниппета был валиден после замены.

Рассмотрим сначала простой пример указания значения переменной, вместо JavaScript.

Вместо JavaScript кода сниппета можно указать любую комбинацию, например,

let text = snippet("mysnippet");

А в самом сниппете указать любое значение (число, текст, булево и т.п.), например, если в сниппете мы указали код

"Hello World!"

то, запускаемый JS интерпретатором, код примет следующий вид:

let text = "Hello World!"

Обратите внимание, что символ точка с запятой является частью определения макроса, и может указываться после snippet, а может не указываться. Если вам необходимо чтобы «конечный исходный код», после замены содержал точку с запятой, то укажите ее в самом JavaScript коде сниппета (скрипта плагина), т.е.

"Hello World!";

тогда, запускаемый JS интерпретатором код примет следующий вид:

let text = "Hello World!";

Сниппет идентичен макроподстановке. Макроподстановка выполняется до запуска скрипта и не является командой интерпретатора JavaScript, поэтому если вы закомментируете объявление сниппета, то он все равно будет подставлен в исходный код !

Чтобы закомментировать сниппет нужно закомментировать его и нарушить синтаксис его объявления, чтобы система не нашла макрос со сниппетом и не выполнила макроподстановку, например написать:

//s!nippet("your_snippet_name")

Last updated