Как вы заметили, в Sublime Text есть два различных типа цветовых схем:
Формат tmTheme
, который представляет собой файл XML plist. Этот формат все еще поддерживается, но на данный момент считается устаревшим форматом файла.
Формат sublime-color-scheme
, который представляет собой файл JSON. Этот формат может делать все, что может делать формат tmTheme
, и имеет дополнительные возможности, которых нет у файлов tmTheme
.
ПРИМЕЧАНИЕ. Несмотря на название, tmTheme
файлы являются цветовыми схемами, а не Темами. Формат, к сожалению, назван, но в Sublime Text Theme
- это совсем другая вещь, которая стилизирует приложение в целом.
Это различие не особенно важно здесь, но оно может застать вас врасплох, если вы go ищете информацию, потому что иногда вы в конечном итоге находите информацию, которая, кажется, ни к чему не относится.
Трудно сказать точно, что вы могли сделать неправильно, так как вы не включили контент, который вы пытались добавить в файлы. Как правило, я ожидаю, что все, что вы добавили туда, будет либо работать, либо вызывать какую-либо ошибку (либо всплывающее окно, либо в консоли Sublime), исключая любые проблемы конфигурации с самим пакетом.
Как добавленное примечание Я не использую этот пакет (или линтеры в целом), поэтому для целей тестирования настройки Anaconda, с которыми я тестировал, являются стандартными, за исключением следующих двух настроек:
// The default is "basic", but that seemed too generic for testing
"anaconda_gutter_theme": "bright",
// I don't use linters, but I happened to have pylint already installed
// so this was the path of least resistance.
"use_pylint": true,
Как вы go о добавление дополнительных правил в вашу цветовую схему зависит в первую очередь от того, где ваша цветовая схема живет. В частности, если вы создали свою собственную цветовую схему, которая хранится в вашем пакете User
, шаги отличаются от тех, которые вы используете, используя цветовую схему, предоставленную кем-то другим (Sublime Text или какой-то пакет, который вы установили) .
Поскольку большинство людей, как правило, используют уже существующие цветовые схемы, которые они получили откуда-то еще, мы сначала рассмотрим их.
Правила цвета, которые приведены на странице, на которую вы ссылаетесь, в формате tmTheme
XML и выглядят так:
<!-- Anaconda -->
<dict>
<key>name</key>
<string>anaconda Error Outline</string>
<key>scope</key>
<string>anaconda.outline.illegal</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#FF4A52</string>
<key>foreground</key>
<string>#FFFFFF</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>anaconda Error Underline</string>
<key>scope</key>
<string>anaconda.underline.illegal</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#FF0000</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>anaconda Warning Outline</string>
<key>scope</key>
<string>anaconda.outline.warning</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#DF9400</string>
<key>foreground</key>
<string>#FFFFFF</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>anaconda Warning Underline</string>
<key>scope</key>
<string>anaconda.underline.warning</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#FF0000</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>anaconda Violation Outline</string>
<key>scope</key>
<string>anaconda.outline.violation</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#ffffff33</string>
<key>foreground</key>
<string>#FFFFFF</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>anaconda Violation Underline</string>
<key>scope</key>
<string>anaconda.underline.violation</string>
<key>settings</key>
<dict>
<key>background</key>
<string>#FF0000</string>
</dict>
</dict>
Чтобы добавить эти правила, нам нужно сначала преобразовать их в формат sublime-color-scheme
JSON, даже если ваша цветовая схема tmTheme
. Метод, используемый для настройки цветовой схемы, заключается в создании файла в пакете User
с дополнительным содержимым, и этот файл всегда имеет формат sublime-color-scheme
.
Преобразование этих правил в новый JSON формат sublime-color-scheme
выглядит следующим образом:
{
"name": "anaconda Error Outline",
"scope": "anaconda.outline.illegal",
"foreground": "#FFFFFF",
"background": "#FF4A52"
},
{
"name": "anaconda Error Underline",
"scope": "anaconda.underline.illegal",
"background": "#FF0000"
},
{
"name": "anaconda Warning Outline",
"scope": "anaconda.outline.warning",
"foreground": "#FFFFFF",
"background": "#DF9400"
},
{
"name": "anaconda Warning Underline",
"scope": "anaconda.underline.warning",
"background": "#FF0000"
},
{
"name": "anaconda Violation Outline",
"scope": "anaconda.outline.violation",
"foreground": "#FFFFFF",
"background": "#ffffff33"
},
{
"name": "anaconda Violation Underline",
"scope": "anaconda.underline.violation",
"background": "#FF0000"
},
В зависимости от вашей фактической цветовой схемы, цвета здесь могут быть или не быть подходящими, поэтому вам придется поиграть с чтобы они выглядели так, как вы хотите. Это также потребует знания того, что классифицируется как illegal
против warning
против violation
, а также того, как вы настроили стиль подкладки Anaconda. Ваши правила могут потребовать foreground
, background
или both
в зависимости от того, как вы их настроили.
С этим контентом в руках, мы готовы начать. Чтобы выполнить настройку, вам нужно знать, как называется ваша цветовая схема. Вы можете получить это, используя Preferences > Settings
и взглянув на настройку color_scheme
(если вы используете настройки синтаксиса c, откройте файл этого типа и используйте Preferences > Settings - syntax specific
и получите оттуда цветовую схему) ,
Интересующая нас часть - это имя файла; нас не волнует, в каком пакете он может сказать, в котором он живет, только имя самого файла. Нам также не важно, какое расширение имеет файл, потому что мы все равно будем предполагать, что это расширение sublime-color-scheme
.
Например, с настройкой, заданной следующим образом, имя цветовой схемы это Cobalt
, и это все, что нас волнует.
"color_scheme": "Packages/Color Scheme - Legacy/Cobalt.tmTheme",
При такой цветовой схеме, приведенной выше конфигурации и некотором примере кода результаты, которые я вижу в буфере, таковы:
Чтобы установить новые правила, нам нужно создать файл sublime-color-scheme
в пакете User
, названный в соответствии с нашей цветовой схемой. Так что в этом случае это будет Cobalt.sublime-color-scheme
. Если вы не уверены, где находится ваш пакет User
, вы можете использовать Preferences > Browse Packages
, чтобы найти его.
Содержимое файла, который вы создаете, должно выглядеть следующим образом (вставьте содержимое сверху соответствующим образом ; для краткости я не включаю его снова здесь):
{
"rules": [
// Paste the JSON rules above here
]
}
Как только вы сохраните файл, он вступит в силу. В результате получается следующее:
Предполагается, что вы используете цветовую схему, созданную вами самостоятельно, которая входит в пакет User
, это не будет работать, и вместо этого вам нужно будет добавить правила непосредственно в файл цветовой схемы в пакете User
. Это также будет иметь место, если у вас есть файл «заплатки», подобный этому, уже в вашем пакете User
(например, если вы добавляете дополнительные цветовые правила для чего-то другого).
Если ваша пользовательская цветовая схема в формате sublime-color-scheme
, тогда вы можете просто добавить эти правила в раздел rules
вашей цветовой схемы, как указано выше, чтобы они вступили в силу.
Если ваша цветовая схема имеет формат tmTheme
, тогда вместо этого вам нужно будет скопировать XML версию настроек в вашу цветовую схему. Вот как это сделать не так просто, как в случае файла в формате sublime-color-scheme
из-за природы файла XML.
В этом случае вместо этого вам нужно будет заметить, что каждое правило представляет собой тег <dict></dict>
с указанными c ключами, а затем проверить цветовую схему, чтобы увидеть, где оно имеет аналогичные цветовые правила, и ввести ваши в правильное местоположение.
Вообще говоря, если вы ошибетесь, цветовая схема будет проигнорирована (все станет черно-белым), и вы получите диалоговое окно с сообщением об ошибке, что-то пошло не так.
Дополнительную информацию о том, как работают цветовые схемы, как применять цвета и т. Д. c, можно найти в этом видеоролике о цветовых схемах в Sublime Text (с заявлением об отказе от ответственности, автором которого я являюсь видео, о которых идет речь).