Как изменить цветовую схему в Sublime Text 2 для тегов php

В некоторых темах в возвышенном тексте цвет фона области в определенных тегах, таких как script или php, отличается от остального кода. Например, так в теме iPlastic или в сумерках.

Например: http://imageshack.us/photo/my-images/541/screenshot20130207at342.png/

Я надеюсь добиться того же эффекта в цветовой схеме Tomorrow, которая не имеет этого по умолчанию. Я понимаю, что мне нужно отредактировать файл.tmTheme, но я не уверен в том коде, который должен ввести.

Любая помощь приветствуется.

Спасибо!

2 ответа

Решение

Вы должны добавить что-то подобное в свой .tmTheme файл:

<dict>
    <key>name</key>
    <string>Embedded source</string>
    <key>scope</key>
    <string>text source</string>
    <key>settings</key>
    <dict>
        <key>background</key>
        <string>#FCFCFC</string>
    </dict>
</dict>

Конечно, вы можете установить цвета, которые вы предпочитаете.

Открыть с возвышенным .tmTheme файл, который вы хотите отредактировать, и прежде всего сохраните его под другим именем (но с тем же расширением). Тогда посмотрите на это:

<string>text source</string>

Это присутствует только в некоторых .tmTheme файлы! В файле iPlastic.tmTheme файл, который вы упомянули, вы найдете его в этой записи:

    <dict>
        <key>name</key>
        <string>Embedded source</string>
        <key>scope</key>
        <string>text source</string>
        <key>settings</key>
        <dict>
            <key>background</key>
            <string>#FAFAFAFC</string>
            <key>foreground</key>
            <string>#000000</string>
        </dict>
    </dict>

Если .tmTheme файлы были записаны в формате JSON вместо этого неуклюжего XML, запись будет выглядеть так:

{
    "name": "Embedded source",
    "scope": "text source",
    "settings": {
        "background": "#FAFAFAFC",
        "foreground": "#000000"
    }
},

В этом случае фоновое значение почти белое (0xFA во всех трех каналах), но немного прозрачное (непрозрачность 0xFC). Результат зависит от background значение, которое вы найдете в начале файла, которое в данном случае #EEEEEEEB (обратите внимание на отсутствие name а также scope):

    <dict>
        <key>settings</key>
        <dict>
            <key>background</key>
            <string>#EEEEEEEB</string>

Непрозрачность 0xEB, насколько я могу судить, здесь игнорируется, поскольку фон по умолчанию #EE, #FA с непрозрачностью 0xFC становится более #EE как #F9 (что имеет смысл).

Теперь, если вы хотите, чтобы заставить фон text source сфера до некоторого значения, вы должны изменить его <dict> введите, если он присутствует, и добавьте его, если его нет.

Если, с другой стороны, вы хотите сделать фон из text source объем равен всем остальным, что вам нужно сделать, это просто удалить его <dict> запись.

Помните, что 3-байтовое значение типа #AABBCC является непрозрачным на 100%, т. е. имеет непрозрачность 0xFF, т. е. эквивалентно 4-байтовому значению #AABBCCFF,

Имейте также в виду, что вы можете поставить модифицированный .tmTheme файл под, например, PHP подкаталог Packagesвместо Color Scheme - Default подкаталог. Это особенно полезно для PHP, где фон по умолчанию находится вне <?php...?>в то время как один внутри является одним из text source область действия (это артефакт трюка, используемого для наследования настроек для типа файла HTML). Если ваши PHP-файлы не содержат много HTML (или что-то, что у вас есть за пределами <?php...?>), вы можете поставить под PHP тема с фоновым значением для text source равно значению фона по умолчанию для других типов файлов и другое значение фона по умолчанию только для файлов PHP.

Другие вопросы по тегам