Возвышенный текст: как настроить подсветку синтаксиса?

Я использую Smarty для создания html-шаблонов. В настоящее время я использую подсветку html, которая в основном прекрасна, за исключением того, что она не выделяет ярлыки smarty, ex {foreach} Я попытался установить пакет Smarty, но это выглядит не очень хорошо. Поэтому в основном мне нужно добавить подсветку всего, что связано с фигурными скобками, до стандартной раскраски html. Является ли это возможным? Как это можно сделать?

Ответ 1

Фон

@MattDMo правильно, что файл .tmTheme является основным файлом, который контролирует выделение. Это XML файл с серией регулярных выражений и тегов, которые обозначают, какой RegEx соответствует типу синтаксического элемента.

Вы можете искать в GitHub и находить много людей, которые уже создали пакеты Sublime Text, содержащие .tmTheme файлы. Обратите внимание, что вы можете напрямую использовать пакет, созданный для TextMate, поскольку Sublime Text использует те же соглашения. (Это правда, по крайней мере, поскольку файлы .tmTheme и .tmPreferences идут.)

Например, я смог напрямую взять пакет подсветки синтаксиса для языка ChucK, первоначально сделанный для TextMate, и использовать его SublimeText2. .tmTheme работал немедленно, копируя файл, используемый с TextMate. Я просто удалил дополнительные файлы нежелательной почты, а затем внес несколько изменений в .tmTheme, а также добавил поддержку диспетчера пакетов.

Смотрите этот проект здесь: https://github.com/nathanleiby/ChucK.tmbundle.

Как установить новые синтаксисы

Управление пакетами

В идеале синтаксис, который вы уже хотите, включен для загрузки в Sublime Text Package Control. Поиск в пакете Управление и установка напрямую. (Если у вас еще нет управления пакетами, вы должны получить его: https://github.com/wbond/package_control_channel/)

В ручном режиме

Если вы загружаете файл .tmTheme или .tmBundle напрямую, вы хотите скопировать его в соответствующую папку пакетов в ST. Обратите внимание, что существует папка /Packages и папка /Packages/User. Документация ST2 предлагает копирование на последнюю, поскольку она гарантируется, что она будет сохранена, даже если другие пакеты в основной папке будут стерты/изменены во время обновления.

В OSX этот каталог: ~/Library/Application Support/Sublime Text 2/Packages/User/

(Примечание. Вы можете предпочесть git clone пакет в эту папку, чтобы вы могли легко обновить его.)

Как создать свой собственный

Если вы хотите выкопать и настроить подсветку синтаксиса, вот несколько мест для начала.

  • Нарисуйте свои регулярные выражения.
  • Документация Sublime Text для определения синтаксиса
  • <ctrl> + <shift> + p. Всякий раз, когда вы смотрите на файл, выберите любое слово и нажмите эту комбинацию клавиш, затем загляните в нижний колонтитул. Вы должны увидеть серию описаний синтаксиса. Например: я просто выделил слово в файле SQL, на который я смотрю, и ответ был: source.sql string.other.quoted.backtick.sql.
  • Вы, вероятно, предпочтете синтаксический анализ вашего синтаксиса с использованием JavaScript/JSON, а не XML. Используйте PackageDev. Вы можете получить это через Управление пакетами. Он имеет команды, которые позволяют вам перемещаться между файлами .json(JSON) и .tmTheme(XML).
  • A fooobar.com/questions/124676/....

Caveat

Это может быть очевидным, но полезность подсветки синтаксиса связана с тем, какую цветовую схему вы выбрали в Sublime Text. (Sublime Text 2 → Настройки → Цветовая схема → ...)

У меня еще не было возможности изучить/проверить это подробно, но кажется, что некоторые цветовые схемы могут различать больше/меньше типов синтаксических элементов.

Я очень рекомендую цветовую схему "Monokai" (в частности, вариант "Monokai Soda" ) по этой причине - кажется, "вывести цвета".

Ответ 2

Вероятно, вам нужно изменить свой .tmTheme, чтобы добавить настраиваемую подсветку для областей, определяемых установкой синтаксиса Smarty. В каталоге Packages/Smarty/Syntaxes должен быть файл Smarty.tmlanguage. Это XML, так что это может быть немного сложно для случайного чтения, но если вы понимаете регулярные выражения и области называются интеллектуально, вы должны выяснить, как изменить тему.

Ответ 3

Это довольно просто

  • С установкой Sublime Text 2 по умолчанию
  • Откройте файл "Пакеты\HTML\HTML.tmLanguage", если вы ищете строку <!--, вы заметите, что (в настоящее время) есть две ссылки на "Smarty". Не комментируйте эти.
  • В вашем Smarty.tmLanguage файле найдите строку scopeName. То, что ключ фактически и связанная строка должны быть чем-то вроде text.html.smarty.
  • Скопируйте эту строку в HTML.tmLanguage вместо source.smarty (строка для ключа include в конце последнего блока, который вы просто не комментируете)

Что это. Наслаждайтесь