Home Download Buy Blog Forum Support

BracketHighlighter2 BETA Branch

BracketHighlighter2 BETA Branch

Postby facelessuser on Mon Oct 22, 2012 3:29 pm

I have a branch up for the BracketHighlighter2 Alpha. I still need to add some missing features (mainly swapping brackets), but most everything else is in.

There is no real good documentation yet, and only an example keymap file. BH2 will not use your old BH settings file. Remember to restart ST2 if you update to this branch.

I have support for a number of different language bracket stuff, but I haven't documented yet how to set them up, but you can use the current ones as an example and play around.

Scope based brackets (which should only be done if there is no good way to reliably capture the brackets with regex; quotes is a good example of this), has a small caveat where if you have the same type right next to each other, they will bleed together. This isn't usually a problem for most brackets though. You never really but two strings together like this "first string ""second string", you would just do this "first string second string". This goes for most others as well. I did originally try and allow limiters on the scope so you could limit the left side with a certain scope and the right side with a certain scope, but ST2's extract_scope API command proved disappointing and was only marginally useful. If there ends up being a real need for scope limiters, I will add them back, but for now, the scope brackets are basic in their implementation.

Branch is here:
https://github.com/facelessuser/Bracket ... r/tree/BH2

Feel free to post bugs, suggestions, feedback (good or bad). This is meant to replace the current BracketHighlighter, so go ahead and make your opinion known now during development before I push this out as official.
Last edited by facelessuser on Mon Nov 12, 2012 3:20 am, edited 1 time in total.
facelessuser
 
Posts: 1541
Joined: Tue Apr 05, 2011 7:38 pm

Re: BracketHighlighter2 Alpha Branch

Postby iamntz on Tue Oct 23, 2012 4:04 am

Looks good, thanks for the update! It's good to see that brackets are not highlighted unless the cursor is inside. :mrgreen:

It's possible to have the highlight as i had it before? That is a nice green box that surrounded the brackets? (current outline is a little different).

Also, it's possible to turn on/off highlight style for all types at all? From what i figured out, i have to go and change every single style.

Thanks!
iamntz
 
Posts: 896
Joined: Fri Apr 29, 2011 8:52 am
Location: Romania

Re: BracketHighlighter2 Alpha Branch

Postby facelessuser on Tue Oct 23, 2012 5:06 am

It's possible to have the highlight as i had it before? That is a nice green box that surrounded the brackets? (current outline is a little different).

Yes it is. The styles are the same as before (underline|solid|outline). Colors are done the same as before as well. You just need to define the scope. By default I am using scopes that probably don't exist in your theme. You can either define those scopes in your theme with the green color you want, or use a scope that is in your theme file that uses the green color. Before I had it defaulted to something like "entity.class" or something close to that. You can check the current BH1 branch to see what those defaults were.

But in short, just set "style" and "color" to your liking for each bracket entry.

Also, it's possible to turn on/off highlight style for all types at all? From what i figured out, i have to go and change every single style.

Can you elaborate? Do you mean you want to disable all bracket highlighting in one shot? I can add that if that is what you want.
facelessuser
 
Posts: 1541
Joined: Tue Apr 05, 2011 7:38 pm

Re: BracketHighlighter2 Alpha Branch

Postby facelessuser on Tue Oct 23, 2012 5:12 am

It's good to see that brackets are not highlighted unless the cursor is inside

Before it was doing by default what Pyparadigm had it originally set up (which mimicked ST2)...but when I was re-writing, I thought it made more sense to do inside brackets only. Someone had suggested it to me a while back, can't remember who, but I liked it so much it has become the way moving forward.
facelessuser
 
Posts: 1541
Joined: Tue Apr 05, 2011 7:38 pm

Re: BracketHighlighter2 Alpha Branch

Postby iamntz on Tue Oct 23, 2012 5:22 am

Do you mean you want to disable all bracket highlighting in one shot?

Why the hell would i want to disable this awesome plugin??? :shock:
Ok, so, right now, if I want to change style from underline (which is default) to solid (like i want), i have to edit bb_core.sublime-settings and do a replace all. This leads to a lot of code duplication (i'll have 99% identical code in the BH folder and user settings folder). The idea is to avoid this kind of duplication:
Code: Select all
"brackets": [
    // Basic brackets
    {
        "name": "curly",
        "open": "(\\{)",
        "close": "(\\})",
    >>> "style": "solid", <<<<
    },
    {
        "name": "round",
        "open": "(\\()",
        "close": "(\\))",
    >>> "style": "solid", <<<<
    },
    {
        "name": "square",
        "open": "(\\[)",
        "close": "(\\])",
    >>> "style": "solid", <<<<
    }
]


And switch all styles at once. Some kind of master of all :)

But in short, just set "style" and "color" to your liking for each bracket entry.

Namely to get rid of this „issue” :) Make sense?
iamntz
 
Posts: 896
Joined: Fri Apr 29, 2011 8:52 am
Location: Romania

Re: BracketHighlighter2 Alpha Branch

Postby facelessuser on Tue Oct 23, 2012 6:14 am

Ahh. I got it now.

What I will do is add a global style object that will have a default icon, style, and color in it. If you want an entry to pick up something from the global object, you will just not define it in the bracket definition.

So in your case, you would remove the color and style parameter from all of the bracket definitions to pick up the global style and color. That way, people who like different styles for different brackets can still define separate colors and styles, and people who like one consistent color and style can just remove the overrides.

I will try and add that tomorrow. Thanks for the input.
facelessuser
 
Posts: 1541
Joined: Tue Apr 05, 2011 7:38 pm

Re: BracketHighlighter2 Alpha Branch

Postby facelessuser on Tue Oct 23, 2012 1:18 pm

Alright @iamntz, got your change in.

So now you can define these default parameters:
    // Global defaults to use if a bracket does not define its own
"default_icon": "dot",
"default_style": "underline",
"default_color": "brackethighlighter.default",


And then you can have a bracket pick up using them by removing there override paramater. So for example, If I have a curly bracket that I want to pick up the default color and style, I would simply just remove the override parameters like in the example below:

        // Basic brackets
{
"name": "curly",
"open": "(\\{)",
"close": "(\\})",
"icon": "curly_bracket",
// "color": "brackethighlighter.curly",
// "style": "underline",
"scope_exclude": ["string", "comment"],
"scope_exclude_exceptions": ["string.other.math.block.environment.latex"],
"language_filter": "blacklist",
"language_list": ["Plain text"],
"find_in_sub_search": true,
"ignore_string_escape": true,
"enabled": true
},


This way allows you to change the default, and all the brackets pick up the change if they haven't overridden the defaults.
facelessuser
 
Posts: 1541
Joined: Tue Apr 05, 2011 7:38 pm

Re: BracketHighlighter2 Alpha Branch

Postby iamntz on Tue Oct 23, 2012 1:42 pm

Thanks for the update. Seems to work good, although i was talking about some kind of master switch, but it's ok afterall. I guess :D

How do i change highlight colours though? I have this in my thTheme file but nothing happen (also restarted the editor)
http://img.iamntz.com/jing/2012-10-23_1623.png

(i have no idea if i set up the old colours or was default to that beautiful green :) )

Thanks!
iamntz
 
Posts: 896
Joined: Fri Apr 29, 2011 8:52 am
Location: Romania

Re: BracketHighlighter2 Alpha Branch

Postby facelessuser on Tue Oct 23, 2012 3:00 pm

@iamntz
Thanks for the update. Seems to work good, although i was talking about some kind of master switch, but it's ok afterall. I guess

So you wanted like a force_default_style_use switch? I can add that as well if you like. Just let me know.

How do i change highlight colours though? I have this in my thTheme file but nothing happen (also restarted the editor)

Yeah, ST2's configuration of region colors is kind of lame, so it makes it that much more confusing.
It looks like you are using Monokai, so doing nothing in the old version would yield green. That is because the default for the old BH was "entity.name.class"
So if you change your default to "entity.name.class". And make the rest pick it up, you should get green.
    // Global defaults to use if a bracket does not define its own
"default_icon": "dot",
"default_style": "solid",
"default_color": "entity.name.class",


Or you can define it in the bracket definition:
        // Quotes
{
"name": "pyquote",
"open": "u?r?((?:\"\")?\"|(?:'')?')",
"close": "((?:\"\")?\"|(?:'')?')",
"icon": "quote",
"color": "entity.name.class",
"style": "underline",
"scopes": ["string"],
"language_filter": "whitelist",
"language_list": ["Python"],
"sub_bracket_search": "true",
"enabled": true
},



In order to configure it via the theme file, you have to use the entire scope. By default I am using the scope namespace of "brackethighlighter", so that must be included as well. Here is an example from mine.
        <dict>
<key>name</key>
<string>Bracket Curly</string>
<key>scope</key>
<string>brackethighlighter.curly</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#CC99CC</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Bracket Round</string>
<key>scope</key>
<string>brackethighlighter.round</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#FFCC66</string>
</dict>
</dict>


I hope that makes sense.
facelessuser
 
Posts: 1541
Joined: Tue Apr 05, 2011 7:38 pm

Re: BracketHighlighter2 Alpha Branch

Postby iamntz on Tue Oct 23, 2012 4:15 pm

Totally make sense! Thanks, works just beautiful!

The force_default_style switch would be nice, but wait for others and see what' they says to not work only for one crazy dude ;)

But a nice switch to add would be a default color. Because adding 15 entries in tmTheme that set the very same color it might be slightly... wrong?
iamntz
 
Posts: 896
Joined: Fri Apr 29, 2011 8:52 am
Location: Romania

Next

Return to Plugin Announcements

Who is online

Users browsing this forum: No registered users and 8 guests