Изменение / добавление подсветки синтаксиса для языка в Sublime 2/3

Я хочу изменить / добавить подсветку синтаксиса для языка в Sublime 2/3.

например я хочу ключевое слово this цвета в JavaScript.

как я могу это сделать?

Я знаю, что есть файл JavaScript предпочтения в C:Program FilesSublime Text 3Packages, но я не знаю, что изменить или если мне нужно создать новый файл предпочтений JavaScript где-то в этой папке %APPDATA%Sublime Text 3.

4 ответов


подсветка синтаксиса управляется используемой темой, доступной через Preferences -> Color Scheme. Темы выделяют различные ключевые слова, функции, переменные и т. д. благодаря использованию областей, которые определяются серией регулярных выражений, содержащихся в .tmLanguage файл в каталоге/пакете языка. Например,JavaScript.tmLanguage файл назначает области source.js и variable.language.js до this ключевое слово. Поскольку Sublime Text 3 использует .sublime-package zip формат файла для хранить все настройки по умолчанию редактировать отдельные файлы не очень просто.

к сожалению, не все темы содержат все области, поэтому вам нужно будет поиграть с разными, чтобы найти тот, который выглядит хорошо, и дает вам подсветку, которую вы ищете. Существует ряд тем, которые включены в Sublime Text, и многие другие доступны через Контрольный Пакет, который я очень рекомендую установить если ты еще этого не сделал. Убедитесь, что вы следуете ST3 направления.

так получилось, что я разработал Neon Color Scheme, доступный через Управление пакетами, на который вы можете взглянуть. Моя главная цель, помимо того, что я пытался сделать так, чтобы широкий спектр языков выглядел как можно лучше, состояла в том, чтобы определить как можно больше различных областей - намного больше, чем включено в стандартные темы. Хотя определение языка JavaScript не так тщательно как Python, например,Neon по-прежнему имеет гораздо больше разнообразия, чем некоторые из значений по умолчанию, таких как Monokai или Solarized.

jQuery highlighted with Neon Theme

я должен отметить, что я использовал @int3h Better JavaScript определение языка для этого изображения вместо того, который поставляется с Sublime. Его можно установить через Управление пакета.

обновление

в последнее время я обнаружил другое определение языка замены JavaScript - JavaScriptNext - ES6 Syntax. Он имеет больше областей, чем базовый JavaScript или даже лучший JavaScript. Это выглядит так на том же коде:

JavaScriptNext

кроме того, поскольку я изначально написал этот ответ, @skuroda выпустила PackageResourceViewer через Управление пакетом. Это позволяет легко просматривать, редактировать и/или извлекать части или целые .sublime-package пакеты. Таким образом, если вы выберете, вы можете напрямую редактировать цветовые схемы, включенные в Возвышенный.

ЕЩЕ ОДНО ОБНОВЛЕНИЕ

С выпуском почти всех пакетов по умолчанию на Github, изменения происходят быстро и яростно. Старый синтаксис JS был полностью переписан, чтобы включить лучшие части синтаксиса JavaScript Next ES6,и теперь полностью совместим с ES6. А Т других изменений были сделаны для того чтобы покрыть случаи угла и края, улучшить последовательность, и как раз общий делает его лучше. Новый синтаксис был включен в (на данный момент) последний dev build 3111.

если вы хотите использовать любой из новых синтаксисов с текущей бета-версии 3103, просто клонируйте репозиторий Github где-нибудь и свяжите JavaScript (или любой язык (Ы), который вы хотите) в ваш Packages каталог-найдите его в своей системе, выбрав Preferences -> Browse Packages.... Тогда просто сделайте git pull в исходном каталоге РЕПО время от времени обновите любые изменения, и вы сможете наслаждаться последними и самыми лучшими! Я должен отметить, что РЕПО использует новый .sublime-syntax формат вместо старого .tmLanguage one, поэтому они не будут работать со сборками ST3 до 3084 или со ST2 (в обоих случаях вы должны были обновиться до последней бета-версии или сборки dev).

в настоящее время я настраиваю свою неоновую цветовую схему для обработки всех новых областей в новом синтаксисе JS, но большинство из них уже должно быть охвачено.


я, наконец, нашел способ настроить данные темы.

на C:\Program Files\Sublime Text 3\Packages и копирование + переименование Color Scheme - Default.sublime-package to Color Scheme - Default.zip. После этого распакуйте его и скопируйте тему, которую вы хотите изменить на %APPDATA%\Sublime Text 3\Packages\User. (В моем случае All Hallow's Eve.tmTheme).

затем вы можете открыть его с помощью любого текстового редактора и изменить / добавить что-то, например для изменения this в JavaScript:

<dict>
    <key>name</key>
    <string>Lang Variable</string>
    <key>scope</key>
    <string>variable.language</string>
    <key>settings</key>
    <dict>
        <key>foreground</key>
        <string>#FF0000</string>
    </dict>
</dict>

это будет знаком this в файлах JavaScript красный. Вы можете выбрать тему в разделе Preferences -> Color Scheme -> User -> <Your Name>.


использовать PackageResourceViewer плагин установлен через Управление пакетами (как упоминалось MattDMo). Это позволяет переопределить сжатые ресурсы, просто открыв его в Sublime Text и сохранив файл. Он автоматически сохраняет только отредактированные ресурсы в %APPDATA% / Roaming / Sublime Text 3/ Packages /or~/.config/sublime-text-3 / пакеты/.

специфично для op, как только плагин установлен, выполните . Выберите JavaScript затем JavaScript.tmLanguage. Откроется xml-файл в Редакторе. Вы можете изменить любое из определений языка и сохранить файл. Это напишет переопределяющую копию JavaScript.tmLanguage файл в каталоге пользователя.

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


"Это" уже окрашено в Javascript.

вид - > синтаксис - > и выберите язык, чтобы выделить.