Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

is there any sublime text package rainbow brackets?

I'm looking for a package similar to atom swackets, allowing rainbow coloring of brackets (and eventually parentheses) regardless of language I'm using.

(note : there is a package already doing it only for parenthesis on lips but I it doesn't correspond to what I'm looking for)

edit : juste use VSCode.

like image 502
LucasP Avatar asked Jun 02 '26 04:06

LucasP


1 Answers

I don't know whether there is a package for this, but just doing it on your own should not be that hard (if you have a good syntax file).

Syntax files usually scope a brace as meta.brace.curly and each brace adds a meta scope meta.group.braces.curly. Knowing this we can change the colorscheme. (To find your colorscheme you can use PackageResourceViewer)

Just add a different color for a different number of surrounding meta.group.braces.curly context. For example you can add this at a reasonable position:

    <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>

This results in the following highlighting:

brace highlighting

like image 160
r-stein Avatar answered Jun 04 '26 13:06

r-stein



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!