Изменение / добавление подсветки синтаксиса для языка в 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
.
я должен отметить, что я использовал @int3h Better JavaScript
определение языка для этого изображения вместо того, который поставляется с Sublime. Его можно установить через Управление пакета.
обновление
в последнее время я обнаружил другое определение языка замены JavaScript - JavaScriptNext - ES6 Syntax
. Он имеет больше областей, чем базовый JavaScript или даже лучший JavaScript. Это выглядит так на том же коде:
кроме того, поскольку я изначально написал этот ответ, @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 файл в каталоге пользователя.
тот же метод можно использовать для редактирования определения языка любого языка в системе.