Sublime Forum

BracketHighlighter

#18

[quote=“rooc”]Hi, thank you for your nice package! One question - is there a way to change color for highlight border? with option “underline” and “outline” color applies to border and it’s fine but type “solid” doesn’t give a way to define border color

grab.by/bVsO[/quote]

Unfortunately no. The api doesn’t even allow me to directly set the color of the region; I instead specify a scope, and that scope must be defined in the color scheme file. This is the description from the Sublime Text 2 API (this is the command I use to create the colored regions).

[code]add_regions(key, [regions], scope, , ) None

Add a set of regions to the view. If a set of regions already exists with the given key, they will be overwritten. The scope is used to source a color to draw the regions in, it should be the name of a scope, such as “comment” or “string”. If the scope is empty, the regions won’t be drawn.
The optional icon name, if given, will draw the named icons in the gutter next to each region. The icon will be tinted using the color associated with the scope. Valid icon names are dot, circle, bookmark and cross.

The optional flags parameter is a bitwise combination of:

sublime.DRAW_EMPTY. Draw empty regions with a vertical bar. By default, they aren’t drawn at all.
sublime.HIDE_ON_MINIMAP. Don’t show the regions on the minimap.
sublime.DRAW_EMPTY_AS_OVERWRITE. Draw empty regions with a horizontal bar instead of a vertical one.
sublime.DRAW_OUTLINED. Draw regions as an outline, rather than filled in.
sublime.PERSISTENT. Save the regions in the session.
sublime.HIDDEN. Don’t draw the regions.[/code]

0 Likes

#19

hi faceless XD
i want to change the icon to mark the line in whic we have the bracket…where do u take the icons?

0 Likes

#20

[quote=“Fed03”]hi faceless XD
i want to change the icon to mark the line in whic we have the bracket…where do u take the icons?[/quote]

I add the icons via the API discussed a couple of posts up. This is from the description of the API method “add_regions”:

The optional icon name, if given, will draw the named icons in the gutter next to each region. The icon will be tinted using the color associated with the scope. Valid icon names are dot, circle, bookmark and cross.

You will notice though the cross never gets tinted, this is a problem with the API. You can maybe hunt down the icon in the theme and change it; that might work. I don’t think you add new ones because I think the API only look for those specific 4.

0 Likes

#21

Can someone explain to me how to get this plugin to work?

I’ve tried to add the following to my config file.

"quote_scope" : "bracket.quote", "curly_scope" : "bracket.curly", "round_scope" : "bracket.round", "square_scope": "bracket.square", "angle_scope" : "bracket.angle", "tag_scope" : "bracket.tag"

Using the XML data posted a couple of posts ago.

But noting get’s hilighted.

It looks like the original config (Sublime Text 2/Packages/BracketHighlighter/BracketHighlighter.sublime-settings) file isn’t read at all.
I can for example add some invalid JSON/JS and it sublime won’t raise an error.

I’m using build 2165.

Thanks.

0 Likes

#22

I can confirm this works with build 2165 and everything after. I have been running this plugin on multiple platforms on every release.

When you installed the plugin, did you restart Sublime Text? This is required.

Then you have to add the XML scopes to your currently used color scheme. And it must be done properly or the color scheme will fail to load properly.

Then copy your BracketHighlighter.sublime-settings to your Packages/User folder so it will persist after updates, and then change the scopes to the exact names used in the color scheme.

I have been using this setup for a long time.

0 Likes

#23

Ooop. I just restarted the application and everything works perfect. Thanks.

Is it possible to add the restart part to the readme?

0 Likes

#24

Generally it is a good idea to restart after any plugin install, but I will make sure it is in the readme; it was at one point, but I might have removed it by accident.

Edit: Looks like the readme does already say you may need to restart ST2.

0 Likes

#25

Version 1.1

  • Add python raw string support for quote highlighting
  • Add highlighting of brackets in strings; will work in all strings, but mainly meant for regex. True by default
  • Add support for targetting regex strings like in javascript that are scoped as strings, but are not quoted, but use '/'s. True by default

Been really wishing I could highlight the brackets in regex strings. Now you can. Supports ],{},(); will ignore them if they are escaped. Bracket plugins currently do not target brackets inside of strings. Also added javascript style regex strings and python raw strings so you can target the brackets inside them as well.


0 Likes

#26

Version 1.4

  • Account for perl regex, substitutions, and translations surrounded by “/” for string bracket matching
  • Account for regex modifiers when matching regex surrounded by “/” in javascript and perl

Realized recently javascript regex bracket matching breaks if regex has modifiers at the end: /some_regex/gi
This should be fixed.

I also added support for perl and its match, substitution, and translation variants, and also its specific modifiers. Keep in mind this will only work if the regex is surronded by "/"s. The current syntax language for Perl doesn’t handle things like this to well: s#regex#substitution#, so I am not going to even try to support such things.

Let me know if you experience issues.

0 Likes

#27

awesome^

0 Likes

#28

So for little bit now tito has been bugging me about the way BracketHighlighter kicks off bracket matching :smile: . He isn’t the only one; there have been a number of people that expressed they wished it did more instant highlighting. There were issues with instant highlighting which is why by default I had set a bothersome delay.

I have been thinking about overhauling the match management code to allow for more responsive highlighting, but I have been lazy and been working on other things. Well, tito opened up dialog with me and we started talking about how we each thought it should be done. After a lengthy discussion and some swapping of code, we have kind of melded are methods into what I feel is a much more responsive highlighting.

I will currently be running it all day today with the experimental branch to ensure that it behaves like I expect it to. If you want to try it out, the experimental branch is here: github.com/facelessuser/Bracket … provements

Basically when highlighting will be instant in most cases (considering process time due to threshold distance). But subsequent events in close succession will be noted but not processed until things slow down a bit. We will have a background thread that will take care of this. The code also throws out redundant match requests as well to only match as many times as must be done.

I am hoping in general this will be a very responsive and good compromise between the two approaches. With this new method, you will no longer specify a delay in your settings, this will all be managed internally now. You can still set your search distance threshold. On fast computers, you may increase it, on really slow computers, you may decrease it. Obviously if you crank it up way too high, you will suffer from performance issues, but this has always and will always be the case.

Hopefully this will pacify the masses.

So as long as I see no real issues in performance (which I haven’t seen yet; at least on most modern machines), this will get pushed out tonight (as long as I don’t make other plans for tonight :wink: )

Anyways, if you try out the experimental, let me know how you like it (good or bad).

So if you like it, you can thank tito for the push to get this done. I probably would have sat around on this for a bit longer :smile:.

0 Likes

#29

Awesome. I changed the settings a bit to my liking so that it’s nearly instant. But how do I turn off the icon in the gutter? Seems like it should be simple but there is no option for “none.” And commenting it out seems to break the plugin?

0 Likes

#30

What do you mean? The experimental one should be pretty much instant now; you can’t even configure the delay anymore in the experimental one; all you can do is adjust search distance. Or are you using the main branch?

This will work. I will probably add an explicit “none” option in the future to be more clear.

"curly_icon" : "",
0 Likes

#31

“curly_icon” : “”, worked thanks!

Whoops, I was using the old version. Had to switch branches in Github for mac. :smile:

0 Likes

#32

Okay that makes sense. I was a little confused since the whole point of the experimental was to give near instant highlighting in most cases. I couldn’t understand what you would have changed. :smile:

0 Likes

#33

Oh, and you can use any icon you want as a bookmark, at least in recent builds, the catch is, the icon must be found in the default theme folder, not current theme you are using.

For instance I made a little white icon with transparent background (it must be white for the filter to color it proper). I called mine bracket.png for this experiment, and then referenced it like this.

"curly_icon" : "bracket",

And there you have it.


I noticed that the cross icon no longer worked, and then I noticed the cross icon is gone in the default theme. I tried dropping a test icon into my current theme, but it never would get picked up, so I tried the default and it worked. So really you can use anything as long as it exists in the default theme.

0 Likes

#34

Oh man. You can give it a relative path!

This is my setting.

//Icon? (dot/circle/bookmark/cross) "quote_icon" : "../BracketHighlighter/quote", "curly_icon" : "../BracketHighlighter/curly", "round_icon" : "../BracketHighlighter/round", "square_icon": "../BracketHighlighter/square", "angle_icon" : "../BracketHighlighter/angle", "tag_icon" : "../BracketHighlighter/angle",

This is what I get. (keep in mind I have the icons in these path for my test)


I feel a new feature coming…

0 Likes

#35

Awesome. Customize EVERYTHING!

The new version works so instantly it feels native.

Now I just need to spend several days fiddling with the colors. You probably shouldn’t have told me about the custom gutter icons. Now I need to make my own. TO PHOTOSHOP!

0 Likes

#36

If you come up with some good ones, and you would like to possibly have them included by default, let me know. I am going to work up a new version that will look in BracketHighlighter by default for all icons instead of the theme.

0 Likes

#37

https://github.com/facelessuser/BracketHighlighter/raw/master/example.png

Version 1.5

  • More responsive highlighting (thanks tito); delay setting no longer needed
  • Organize bracket plugins
  • Included more configurable custom gutter icons

If you hate the new icons, it is okay, you can change them back to dot or whatever. You can even create a folder with custom icons, and point BracketHighlighter at that folder in the settings file (the path must be relative to Package; you cans see what I did in the default settings file).

Edit:
You will probably want to restart after you upgrade; there might be glitches until you do :wink: .

0 Likes