【问题标题】:How do I change the color of the JSON `Key` in Sublime Text2如何在 Sublime Text2 中更改 JSON `Key` 的颜色
【发布时间】:2014-06-18 10:15:08
【问题描述】:

所以我添加了:

    <dict>
        <key>name</key>
        <string>JSON Key</string>
        <key>scope</key>
        <string>meta.structure.dictionary.json string2.quoted.double.json</string>
        <key>settings</key>
        <dict>
            <key>foreground</key>
            <string>#00FF00</string>
        </dict>
    </dict>

添加到我的配色方案 custom.tmTheme 并添加:

    <key>string2</key>
    <dict>
        <key>begin</key>
        <string>"</string>
        <key>beginCaptures</key>
        <dict>
            <key>0</key>
            <dict>
                <key>name</key>
                <string>punctuation.definition.string2.begin.json</string>
            </dict>
        </dict>
        <key>end</key>
        <string>"\s.:</string>
        <key>endCaptures</key>
        <dict>
            <key>0</key>
            <dict>
                <key>name</key>
                <string>punctuation.definition.string2.end.json</string>
            </dict>
        </dict>
        <key>name</key>
        <string>string2.quoted.double.json</string>
        <key>patterns</key>
        <array>
            <dict>
                <key>match</key>
                <string>(?x:                # turn on extended mode
                 \\                # a literal backslash
                 (?:               # ...followed by...
                   ["\\/bfnrt]     # one of these characters
                   |               # ...or...
                   u               # a u
                   [0-9a-fA-F]{4}  # and four hex digits
                 )
               )</string>
                <key>name</key>
                <string>constant.character.escape.json</string>
            </dict>
            <dict>
                <key>match</key>
                <string>\\.</string>
                <key>name</key>
                <string>invalid.illegal.unrecognized-string-escape.json</string>
            </dict>
        </array>
    </dict>

到我的包文件夹中的JSON-test.tmLanguage 文件,但我仍然没有看到绿键。

有人知道我哪里出错了吗?

【问题讨论】:

  • 对于正在寻找一种为 JSON 主题添加颜色的好方法或只是想要 Monokai+JSON 支持的任何人,请查看 MonokaiJSON+ 项目:goo.gl/39ZBnA

标签: xml json sublimetext2 syntax-highlighting


【解决方案1】:

您不需要创建或修改.tmLanguage 文件,只需使用JavaScript -&gt; JSON 语法即可。像这样修改你的.tmTheme

<dict>
    <key>name</key>
    <string>JSON Key</string>
    <key>scope</key>
    <string>meta.structure.dictionary.json string.quoted.double.json -meta.structure.dictionary.value.json</string>
    <key>settings</key>
    <dict>
        <key>foreground</key>
        <string>#00FF00</string>
    </dict>
</dict>

你应该准备好了。它将突出显示 JSON 字典中包含的所有字符串,但如果范围包含 meta.structure.dictionary.value.json 则不会突出显示,因此它只会突出显示键。

【讨论】:

  • 首先,为一个漂亮的解决方案点赞。谢谢!其次,这不会更改子条目的键,即{'key1' : {'key2' : 'value2'}} key2 不会更改,因为它是 key1 值的一部分。出于个人兴趣,我真的很想弄清楚语法创建和语法。
  • @JasonNichols 查看我的答案here 以获得可能的解决方案。每个级别(最多 18 个深度)都以不同的颜色突出显示,并且键和值是不同的颜色,因此可以轻松区分。 .tmTheme 文件的相关行在 Github here 如果你不想使用整个主题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-16
  • 2015-02-01
相关资源
最近更新 更多