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


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

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

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

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

4 85

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 не так тщательно как питона, например,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.

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

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

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

на C:\Program Files\Sublime Text 3\Packages и копирование + переименование Color Scheme - Default.sublime-package до 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 /или~/.config/sublime-text-3/Packages/.

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

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

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

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