LucasP
LucasP

Reputation: 81

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.

Upvotes: 3

Views: 7396

Answers (2)

pangpond
pangpond

Reputation: 19

You can use this package for sublime text 3 https://packagecontrol.io/packages/Rainbowth

Upvotes: 1

r-stein
r-stein

Reputation: 4847

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

Upvotes: 5

Related Questions