Я использую 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
в конце последнего блока, который вы просто не комментируете)
Что это. Наслаждайтесь