Sublime Text 3 - CSS属性的颜色方案

时间:2017-08-24 18:46:14

标签: css xml sublimetext3 markup color-scheme

如何在Sublime Text 3中更改CSS属性的配色方案?

我已修改Monokai.tmTheme并更改了默认Library variableVariable的颜色。

<dict>
    <key>name</key>
    <string>Library variable</string>
    <key>scope</key>
    <string>support.other.variable</string>
    <key>settings</key>
    <dict>
        <key>fontStyle</key>
        <string>italic</string>
        <key>foreground</key>
        <string>#FFB6C1</string>
    </dict>
</dict>
<dict>
    <key>name</key>
    <string>Variable</string>
    <key>scope</key>
    <string>variable</string>
    <key>settings</key>
    <dict>
        <key>fontStyle</key>
        <string>italic</string>
        <key>foreground</key>
        <string>#FFB6C1</string>
    </dict>
</dict>

通过更改<string>内的最后一个<dict>,您可以看到here变量的默认白色颜色变为粉红色。

我想更改CSS属性的默认蓝色,但我找不到相关的标记字符串名称。

1 个答案:

答案 0 :(得分:2)

如您所见,这些.tmTheme文件采用PList XML格式。对于配色方案,<string>之后的<key>name</key>实际上只是一个注释,在大多数情况下,name键可能完全丢失,因此最好直接查看{{1}在<string>之后。

此字符串为scope selector, and I have explained how they work in a separate answer。这个答案的重要内容是:

  

在Sublime Text中,您可以通过转到“工具”菜单找到光标右侧角色的范围 - &gt;开发者 - &gt;显示范围名称。

这将显示完整范围堆栈,但通常我们只对color scheme目的的最后范围感兴趣。例如,建议不要直接为<key>scope</key>范围着色,但可以将其与非元范围结合使用以获得更精确的着色。有关详细信息,请参阅官方Scope Naming documentation

(语法定义将范围分配给文档中的文本,颜色方案使用上述范围选择器为这些范围指定颜色。)

因此,对于CSS属性,完整范围可能看起来像meta。如果只想更新CSS属性的颜色,而不想更新具有相同source.css meta.property-list.css meta.property-name.css support.type.property-name.css范围的其他语法的其他元素,则可以使用support.typesupport.type.property-name作为范围选择器。否则,您应该发现颜色方案已经在某处匹配support.type.property-name.csssupport,并且可以更改与之关联的颜色。

就像在CSS scope selectors also have specificity rules中一样,但这与简单的单一范围选择器基本无关。这意味着,最好检查颜色方案是否已经与要更改颜色的范围匹配 - 如果是,请更新,否则通常可以相应地添加新的support.type在其他规则之后的文件末尾。

这些<dict>的最小内容是范围,dict子字典通常设置为settings。本答案前面链接的官方配色方案文档将详细介绍。

foreground