Изменение цвета конкретных слов в sublime text 3

Я ищу на этом сайте, как изменить цвет некоторых конкретных слов в Sublime Text 3, но не могу найти его без замены файла tmlanguage.

что я хотел бы изменить цвет для true (сделать его зеленым) и false (красный) или такие вещи, как $this.

меня особенно интересует PHP и JS scope, так как я не использую никакой другой язык. Я пытался!--8-->PersistentRegexHighlight плагин, но я не совсем удовлетворен результатом. Слова не окрашиваются при открытии файла, и он использует выделение, поэтому я не могу просто изменить цвет текста.

Я прочитал некоторые ответы об изменении PHP.tmlanguage файл, но делая это, я потеряю любые изменения в будущих версиях, не так ли? Я думал сделать еще один PHP.tmlanguage в пользовательском каталоге "добавит его" в основной, например, файл привязки клавиш, но нет.

у вас есть идеи, как это сделать?

спасибо.

1 ответов


свой PHP.tmlanguage в каталоге пользователя не работает, потому что редактирование .tmlanguage файл-это способ описания языка и настройки областей, а не способ выделения терминов. Поэтому вам нужны дополнительные действия, чтобы выделить эти вещи в окне редактора.

подсветка выполняется в . В файле можно использовать области из .tmLanguage для того, чтобы применить цвет для текста подходящий для рамки.

1. РНР.tmLanguage

как я знаю, может Я ошибаюсь, невозможно создать файл "патча" для определения синтаксиса. Вы не можете создать небольшой файл патча, который расширит синтаксис PHP. Синтаксис описан в одном файле, поэтому все области для PHP должны быть описаны в одном файле. Если вы хотите добавить, удалить или изменить что-то для языка PHP, вам нужно отредактировать соответствующий файл, который должен содержать определение синтаксиса для всего PHP. Хорошо, что можно копировать до User каталог и сохранить собственный файл в безопасности.

копируем PHP.tmLanguage в своем User папка и немного отредактируйте ее. Вы можете найти эти строки внутри:

<dict>
    <key>match</key>
    <string>(?i)\b(TRUE|FALSE|NULL|__(FILE|DIR|FUNCTION|CLASS|METHOD|LINE|NAMESPACE)__|ON|OFF|YES|NO|NL|BR|TAB)\b</string>
    <key>name</key>
    <string>constant.language.php</string>
</dict>

как вы можете видеть, щас как true и false находятся в той же области,constant.language.php. Вы можете изменить его, удалив их из области и добавив для них две отдельные области.

<dict>
    <key>match</key>
    <string>(?i)\b(NULL|__(FILE|DIR|FUNCTION|CLASS|METHOD|LINE|NAMESPACE)__|ON|OFF|YES|NO|NL|BR|TAB)\b</string>
    <key>name</key>
    <string>constant.language.php</string>
</dict>
<dict>
    <key>match</key>
    <string>(?i)\b(TRUE)\b</string>
    <key>name</key>
    <string>true.constant.language.php</string>
</dict>
<dict>
    <key>match</key>
    <string>(?i)\b(FALSE)\b</string>
    <key>name</key>
    <string>false.constant.language.php</string>
</dict>

2. Изменение темы

невозможно настроить цвета в tmLanguage файл, потому что его цель-определить области - языковые элементы. Вся подсветка синтаксиса выполнена в .tmTheme файлы. Так что лучшее, что я могу себе представить, это копирование текущего файла темы в User каталог и отредактировать его.

например, если ваша текущая тема Slush & Poppies, вы должны скопировать его из ST3/Packages/Color Scheme - Default.sublime-package\Slush & Poppies.tmTheme до ST3/User/Data/Packages/User реж и редактировать.

поиск по строке constant.language. Это часть этого блока:

<dict>
    <key>name</key>
    <string>Built-in constant</string>
    <key>scope</key>
    <string>constant.language</string>
    <key>settings</key>
    <dict/>
</dict>

выглядит так:Slush & Poppies не имеет настроек для окрашивания констант. Но это не проблема. В код ниже я написал пример, который помогает понять, как применять настройки цвета. Итак, давайте изменим выше блок на этот:

<dict>
    <key>name</key>
    <string>Built-in constant</string>
    <key>scope</key>
    <string>constant.language</string>
    <key>settings</key>
    <dict/>
</dict>
<dict>
    <key>name</key>
    <string>TRUE</string>
    <key>scope</key>
    <string>true.constant.language</string>
    <key>settings</key>
    <dict>
        <key>foreground</key>
        <string>#008900</string>
    </dict>
</dict>
<dict>
    <key>name</key>
    <string>FALSE</string>
    <key>scope</key>
    <string>false.constant.language</string>
    <key>settings</key>
    <dict>
        <key>foreground</key>
        <string>#890000</string>
    </dict>
</dict>

перезапустить ST3 (похоже, ST3 не полностью обновляет список областей от изменения .tmLanguage файл во время выполнения, поэтому лучше перезапустить его) и выберите меню "Настройки" → "цветовая схема" → "пользователь" → "слякоть и Маки". В этой теме вы будете иметь true выделено зеленым цветом и false выделены красным. Конечно, вы можете редактировать любой цвет схема вам нужна, не только эта.

еще одно, в .tmTheme файл можно использовать не все имя области, а ее часть. Например, можно использовать false.constant.language вместо false.constant.language.php. Когда вы используете false.constant.language, настройки будут применяться ко всем областям, имя которых начинается с false.constant.language. Например, если вы определили false.constant.language.php в PHP.tmLanguage и false.constant.language.js в JavaScript.tmLanguage, вы можете использовать false.constant.language на .tmTheme файл и его настройка будут применяться как к JS, так и к В PHP false.