Создание сниппета

Чтобы создать новый сниппет в Sublime Text 3 нам нужно сделать следующее…

Создаем сниппет

Перейдем к:

Tools -> Developer -> New Snippet…

Создание сниппета

Откроется новое окно, содержащее новый шаблон сниппета, который мы разберем ниже.

Шаблон в инструменте Сниппеты Sublime Text
Шаблон в инструменте Сниппеты Sublime Text

В Сниппеты Sublime Text 3 входят четыре части. Хотя требуется только одна часть, рекомендуется определить все четыре.

1. Содержание или Content (строка 3): Обязательно

<content><![CDATA[  Hello, ${1:this} is a ${2:snippet}.]]></content>

Определите блок текста, который будет расширен сниппетом, отредактировав строку(и) между тегами <![CDATA[ и ]]>. Теперь блок текста, который будет расширен после вызова сниппета, будет называться содержимым сниппета.

Вы заметите присутствие слов, окруженных знаком доллара, фигурными скобками, цифрами и префиксом числа. Эта необязательная разметка указывает маркер поля, который управляет положением курсора после вызова фрагмента.

После расширения содержимого курсор автоматически перемещается к первому маркеру поля (${1:this} выше). При повторном нажатии на вкладку курсор перемещается к следующему пронумерованному маркеру поля или к концу содержимого сниппета, если полей не осталось (см. PRO подсказку ниже).

Текст после двоеточия в поле маркера необязателен. Если он указан, то он автоматически выбирается как часть перемещения курсора, т.е. может быть удален одним быстрым движением. Это делает текст после двоеточия отличным вариантом для значений типа placeholder, которые указывают на то, что должно быть заполнено, или для необязательных значений по умолчанию, таких как isRequired поле в примере ниже.

PRO подсказка. Используйте маркер поля $0 (маркер выхода), чтобы явно определить, куда будет выходить курсор после того, как все маркеры поля будут прокручены циклически. Это полезно, если вы хотите перепривязать клавишу табуляции к автозавершению после вызова фрагмента. Для этого поместите маркер выхода сразу после маркера первого поля, например, вот так: ${1:пример}$0.

2. Триггерное слово (строка 6): Необязательно

<tabTrigger>hello</tabTrigger>

Эта строка по умолчанию закомментирована.

Короткие и мнемонические триггерные слова работают лучше всего. Например, пакет Babel React Snippet отображает componentWillMount на cwm и componentWillReceiveProps на cwr.

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

3. Охват (строка 8): Необязательно

<scope> source: python </scope>

Эта строка также по умолчанию закомментирована.

Охват или scope — ограничение области применения, где могут быть вызваны сниппеты Sublime Text, что повышает точность и предотвращает конфликты. Например, в области применения одно и то же триггерное слово может иметь разные значения для разных языков программирования.

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

4. Описание, Description (строка 10): Необязательно

<description> demo description </description>

По какой-то причине тег описания не отображается в шаблоне создания сниппета. Однако, возможность его использования может пригодиться.

Сниппеты Sublime Text отображаются в меню автозаполнения вместе с описательной фразой. Без описания эта фраза по умолчанию соответствует имени файла сниппета, что не гарантирует наличие достаточного контекста, когда несколько сниппетов имеют один и тот же префикс.

Сниппеты отображаются в меню автозаполнения
Сниппеты отображаются в меню автозаполнения
PRO подсказка. Мы можем сделать сочетание клавиш для быстрого создания нового сниппета.

Перейдите в:

Preferences -> Keybindings (Параметры -> Привязки к клавиатуре)

Добавьте следующую строку в конфигурационный файл «Пользователя» (конечно, замените cmd+alt+n на любую комбинацию, которая подходит вам больше всего):

{ "keys": ["cmd+alt+n"], "command": "new_snippet" }

Была ли эта страница полезной?