Мета-информация о том, что такое комментарий, не приходит из синтаксиса, а из мета-информации в файле tmPreferences
, который вы также должны создать самостоятельно.
Следуя приведенному выше примеру синтаксиса, это выглядело бы следующим образом (при необходимости измените scope
на соответствующую область верхнего уровня):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>name</key>
<string>Comments</string>
<key>scope</key>
<string>source.example-c</string>
<key>settings</key>
<dict>
<key>shellVariables</key>
<array>
<dict>
<key>name</key>
<string>TM_COMMENT_START</string>
<key>value</key>
<string>// </string>
</dict>
<dict>
<key>name</key>
<string>TM_COMMENT_START_2</string>
<key>value</key>
<string>/*</string>
</dict>
<dict>
<key>name</key>
<string>TM_COMMENT_END_2</string>
<key>value</key>
<string>*/</string>
</dict>
</array>
</dict>
<key>uuid</key>
<string>1d23fd10-e62f-4de8-a8d1-42e64e3f5fb7</string>
</dict>
</plist>
Имя, которое вы даете файлу, нене имеет значения, только расширение (и то, что оно будет сохранено в пакете; поместите его в свой пакет User
, если у вас уже нет определенного пакета).Общее соглашение - что-то вроде Comments.tmPreferences
в корне пакета, который содержит синтаксис.
Это показывает две вещи;Во-первых, что может быть более одного элемента TM_COMMENT_START
-типа, и что он также может быть в паре с соответствующим элементом TM_COMMENT_END
.
При использовании отдельно, например, TM_COMMENT_START
, комментарийявляется строковым комментарием, в то время как при использовании в паре вы указываете, что комментарий является блочным комментарием, для которого требуется пара начала и конца.
Sublime использует один или другой в зависимости от аргументов команды, котораягенерирует комментарии, если это возможно.Таким образом, если есть два определенных (как здесь), то вы получите строчный комментарий, если нет выделенного текста, и в этом случае вы получите блочный комментарий.
Если определен только комментарий к строке или комментарий к блоку, вы получите только этот стиль комментария и ничего больше.Вот почему HTML только комментирует блоки и обрабатывает отдельные строки как блоки, например.
Обратите также внимание, что может быть произвольное количество TM_COMMENT
элементов / пар, но Sublime будет использовать только первую из каждойвведите автоматически.Плагины, которые вы пишете, могут получить доступ к остальным.