【问题标题】:is there any sublime text package rainbow brackets?有没有崇高的文字包彩虹括号?
【发布时间】:2016-07-15 08:04:48
【问题描述】:

我正在寻找一个类似于 atom swackets 的包,无论我使用什么语言,都可以对括号(以及最终的括号)进行彩虹色。

(注意:有一个包已经在为parenthesis on lips 做,但我不符合我要找的)

【问题讨论】:

    标签: sublimetext3 sublimetext sublime-text-plugin


    【解决方案1】:

    我不知道是否有这方面的包,但你自己做应该不会那么难(如果你有一个好的语法文件的话)。

    语法文件通常将大括号限定为meta.brace.curly,每个大括号添加一个元范围meta.group.braces.curly。 知道了这一点,我们可以改变配色方案。 (要找到您的配色方案,您可以使用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>
    

    这会导致以下突出显示:

    【讨论】:

    • 谢谢,我会调查的。
    • 不幸的是,并非所有语言定义都有嵌套括号范围,因此这不适用于所有语言。
    • @MattDMo 是的,我的意思是“如果你有一个好的语法文件”,但我应该说得更清楚。由于他们目前进行了大量的语法重写,我希望越来越多的语言能够支持它。
    【解决方案2】:

    您可以将此包用于 sublime text 3 https://packagecontrol.io/packages/Rainbowth

    【讨论】:

    • 问题表明它应该“不管使用什么语言”。 Rainbowth 需要配置一个需要匹配才能工作的语言列表。所以它可能足够好,但仍然不能完全解决所述问题。
    • @dubrox Rainbowth 配置添加新语言很简单(实际上只是将语言名称添加到设置文件中的配置数组中),但我无法让它工作,尽管没有错误。
    • @EvilJordan 您可能会遇到此处描述的相同问题:spin.atomicobject.com/2016/04/08/sublime-text-clojure“由于 Sublime 中插件 API 的限制,Rainbowth 通过实际修改您的配色方案文件来实现其括号魔法。两难选择不过,这里的颜色方案不容易被插件编辑,因为它们存储在 Sublime Text 安装文件夹中的 ZIP 档案中。”
    猜你喜欢
    • 2013-09-13
    • 1970-01-01
    • 2011-01-25
    • 2016-01-03
    • 2016-08-30
    • 2015-04-23
    • 2018-09-02
    • 2013-06-28
    • 1970-01-01
    相关资源
    最近更新 更多