Включить автоматическое комментирование в Sublime Text для пользовательского синтаксиса

Я создал файл .tmLanuage для пользовательского языка в Sublime Text. Все работает хорошо, за исключением того, что я не могу заставить автоматическое комментирование работать. Я не могу найти ничего в документах Sublime Text или в Google о том, как это сделать, но, возможно, это связано с тем, что я не использую правильные ключевые слова.

Позвольте мне объяснить, что я имею в виду. Скажем, у меня есть следующий код C:

int i = 1;
i += 2;

Если я выделил это в Sublime Text и нажмите ctrl+/, он будет изменен на

// int i = 1;
// i += 2;

Аналогично, для кода Python:

i = 1
i += 2

станет

# i = 1
# i += 2

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

Что мне нужно добавить в файл .tmLanguage, чтобы включить эту функцию в Sublime Text? Или, есть ли другой файл, который я должен добавить/изменить, чтобы включить эту функцию?

Ответ 1

Взгляните на "Комментарии (С++). tmPreferences", и вы должны выяснить, как его редактировать для вашего синтаксиса.

  • Добавьте свой синтаксис "scopeName" в область
  • TM_COMMENT_START = строка комментариев
  • TM_COMMENT_START_2/TM_COMMENT_END_2 = заблокировать комментарии

Комментарии (С++). tmPreferences:

<?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.your_syntax</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>
            <dict>
                <key>name</key>
                <string>TM_COMMENT_DISABLE_INDENT_2</string>
                <key>value</key>
                <string>yes</string>
            </dict>
        </array>
    </dict>