2016-07-15 41 views

回答

1

我不知道是否有这样的包,但只要自己做就不应该那么辛苦(如果你有一个好的语法文件)。

语法文件通常将大括号的范围限定为meta.brace.curly,每个大括号将添加元范围meta.group.braces.curly。 知道这一点,我们可以改变colorscheme。 (要找到您的颜色方案,您可以使用PackageResourceViewer

只需为不同数量的周围环境meta.group.braces.curly添加不同的颜色即可。例如,你可以在一个合理的位置补充一点:

<dict> 
     <key>name</key> 
     <string>Brace Level 0</string> 
     <key>scope</key> 
     <string>meta.brace.curly</string> 
     <key>settings</key> 
     <dict> 
      <key>foreground</key> 
      <string>#990099</string> 
     </dict> 
    </dict> 
    <dict> 
     <key>name</key> 
     <string>Brace Level 1</string> 
     <key>scope</key> 
     <string>meta.group.braces.curly meta.brace.curly</string> 
     <key>settings</key> 
     <dict> 
      <key>foreground</key> 
      <string>#00ccff</string> 
     </dict> 
    </dict> 
    <dict> 
     <key>name</key> 
     <string>Brace Level 2</string> 
     <key>scope</key> 
     <string>meta.group.braces.curly meta.group.braces.curly meta.brace.curly</string> 
     <key>settings</key> 
     <dict> 
      <key>foreground</key> 
      <string>#33cc33</string> 
     </dict> 
    </dict> 
    <dict> 
     <key>name</key> 
     <string>Brace Level 3</string> 
     <key>scope</key> 
     <string>meta.group.braces.curly meta.group.braces.curly meta.group.braces.curly meta.brace.curly</string> 
     <key>settings</key> 
     <dict> 
      <key>foreground</key> 
      <string>#ffff00</string> 
     </dict> 
    </dict> 
    <dict> 
     <key>name</key> 
     <string>Brace Level 4</string> 
     <key>scope</key> 
     <string>meta.group.braces.curly meta.group.braces.curly meta.group.braces.curly meta.group.braces.curly meta.brace.curly</string> 
     <key>settings</key> 
     <dict> 
      <key>foreground</key> 
      <string>#ff00ff</string> 
     </dict> 
    </dict> 
    <dict> 
     <key>name</key> 
     <string>Brace Level 5</string> 
     <key>scope</key> 
     <string>meta.group.braces.curly meta.group.braces.curly meta.group.braces.curly meta.group.braces.curly meta.group.braces.curly meta.brace.curly</string> 
     <key>settings</key> 
     <dict> 
      <key>foreground</key> 
      <string>#cc3300</string> 
     </dict> 
    </dict> 
    <dict> 
     <key>name</key> 
     <string>Brace Level 6</string> 
     <key>scope</key> 
     <string>meta.group.braces.curly meta.group.braces.curly meta.group.braces.curly meta.group.braces.curly meta.group.braces.curly meta.group.braces.curly meta.brace.curly</string> 
     <key>settings</key> 
     <dict> 
      <key>foreground</key> 
      <string>#91e374</string> 
     </dict> 
    </dict> 
    <dict> 
     <key>name</key> 
     <string>Brace Level 7</string> 
     <key>scope</key> 
     <string>meta.group.braces.curly meta.group.braces.curly meta.group.braces.curly meta.group.braces.curly meta.group.braces.curly meta.group.braces.curly meta.group.braces.curly meta.brace.curly</string> 
     <key>settings</key> 
     <dict> 
      <key>foreground</key> 
      <string>#6699cc</string> 
     </dict> 
    </dict> 
    <dict> 
     <key>name</key> 
     <string>Brace Level 8</string> 
     <key>scope</key> 
     <string>meta.group.braces.curly meta.group.braces.curly meta.group.braces.curly meta.group.braces.curly meta.group.braces.curly meta.group.braces.curly meta.group.braces.curly meta.group.braces.curly meta.brace.curly</string> 
     <key>settings</key> 
     <dict> 
      <key>foreground</key> 
      <string>#0000cc</string> 
     </dict> 
    </dict> 
    <dict> 
     <key>name</key> 
     <string>Brace Level 9</string> 
     <key>scope</key> 
     <string>meta.group.braces.curly meta.group.braces.curly meta.group.braces.curly meta.group.braces.curly meta.group.braces.curly meta.group.braces.curly meta.group.braces.curly meta.group.braces.curly meta.group.braces.curly meta.brace.curly</string> 
     <key>settings</key> 
     <dict> 
      <key>foreground</key> 
      <string>#9900ff</string> 
     </dict> 
    </dict> 
    <dict> 
     <key>name</key> 
     <string>Brace Level 10</string> 
     <key>scope</key> 
     <string>meta.group.braces.curly meta.group.braces.curly meta.group.braces.curly meta.group.braces.curly meta.group.braces.curly meta.group.braces.curly meta.group.braces.curly meta.group.braces.curly meta.group.braces.curly meta.group.braces.curly meta.brace.curly</string> 
     <key>settings</key> 
     <dict> 
      <key>foreground</key> 
      <string>#6600cc</string> 
     </dict> 
    </dict> 

这将导致以下高亮:

brace highlighting

+0

感谢我将研究它。 – LucasP

+1

不幸的是,并非所有的语言定义都有嵌套的括号范围,所以这不适用于所有语言。 – MattDMo

+0

@MattDMo是的,我的意思是“如果你有一个好的语法文件”,但我应该说清楚。由于他们目前正在进行大量的语法重写,我希望越来越多的语言能够支持它。 –

0

您可以使用此包崇高的文本3个 https://packagecontrol.io/packages/Rainbowth

+1

这个问题表明它应该是“无论使用哪种语言”。 Rainbowth需要配置一系列需要匹配才能工作的语言。 所以它可能够好,但仍不能完全解决所述的问题。 – dubrox

+0

@dubrox Rainbowth配置为添加一种新语言(实际上只是在设置文件中将语言名称添加到其配置数组中),但尽管没有错误,我仍然无法使其工作。 – EvilJordan