Sublime Forum

SublimeBrackets

#9

Thanks for your greate work.

I`m upset for that kind of posts:

As iamntz said i want this too

0 Likes

#10

Hehe. Maybe he’ll finally stop spamming the forums…

0 Likes

#11

Joking aside, this is a very nice plugin. Works well with languages that use brackets, but doesn’t seem to work with languages like python use indentation…

Nevertheless, excellent work. Thanks.

0 Likes

#12

Hello @pyparadigm.

Thanks a lot for this plugin, im with the latest version from github, and im this problem in sublime console:

Traceback (most recent call last):
File “./sublime_plugin.py”, line 147, in on_selection_modified
File “./SublimeBrackets.py”, line 41, in on_selection_modified
AttributeError: ‘NoneType’ object has no attribute ‘views’

0 Likes

#13

Please make the configuration options in the user file preferences, that would be better than edit the source code of the plugin

0 Likes

#14

[quote=“pyparadigm”]This allows you to customize brackets, requires Sublime Text 2 Build 2108 or higher.

GitHub
Project: github.com/pyparadigm/SublimeBrackets
Direct Download: github.com/pyparadigm/SublimeBr … all/master

Screenshot
https://github.com/pyparadigm/SublimeBrackets/raw/master/ssexample.png[/quote]

How did you get those indent guides dotted???

0 Likes

#15

Those are the new default guides :smile:

0 Likes

#16

[quote=“pyparadigm”]
Can you upload some example text to pastebin(etc) that produces this?[/quote]

Here: pastebin.com/6apiNHyq
I just made some brackets and put a bunch of junk inside. Notice how it chugs when you change the selection.

0 Likes

#17

Hi all!

This is a really cool and usefull plugin, and after testing it I have some possible improvements / questions:

  • With large files it relentizes a lot the editor :frowning: I think in files with more than 100 lines aprox. it starts to be really slowly. I don’t know if it will be solved in future versions or if it’s not possible.

  • It’s possible to have some easy way to have something like an ‘extensions blacklist’ where put some extensions where don’t execute the plugin? It would be really nice, because in my case I have really long css files but smaller templates. And where I find really usefull this plugin is with the templates files.

Thanks!!

0 Likes

#18

So I set my config to the same as your example, but all my dots/arrows look like screencast.com/t/WRZ0GPKf do you have idea why?

Many thanks

0 Likes

#19

[quote=“ceej”]So I set my config to the same as your example, but all my dots/arrows look like screencast.com/t/WRZ0GPKf do you have idea why?

Many thanks[/quote]

I upgraded from dev 2112 to 2113 and started experiencing that problem too, for bracket’s sake i’m back at 2112 :smile:

0 Likes

#20

This is a bug in 2113 that is now fixed in 2114.

0 Likes

#21

[quote=“skaet”]

This is a bug in 2113 that is now fixed in 2114.[/quote]

awesome, thanks :smile:

I love the plugin btw

0 Likes

#22

This is a great plugin. I have forked the plugin to fix some things and add some features that I found useful. I wouldn’t mind having these changes merged back into Sublime Brackets, but they may be more than the author wants to merge.

  • I combined SublimeTagmatcher and SublimeBrackets. I saw no reason these two could not function together and accomplish the same task in one pass without adding too much overhead.

  • I moved all configurations to the settings file

  • Made settings accessible from the menu

  • Allow selectively turning off or on specific bracket matching

  • Allow to exclude certain bracket matching in certain languages

  • As stated early, it matches Tags, but also can match, quotes, and Angle brackets (depending on the language angle can be a little off;this is do to how the language is defined to Sublime Text)

  • Added new configuration to only highlight the brackets of tag on highlight

  • Added option to ignore not Tag Angle brackets if desired

  • On really large files you can sometimes get some lag, so I added a search threshold to stop searching if you can’t find a match after reaching out so far

  • Added a “on demand” shortcut to override threshold to search until a match is found

  • When the “on demand” shortcut is used, it will display the number of lines in the highlighted block within the status bar

  • Tweaked the algorithm to be a little more efficient (probably more can still be done); some characters where getting double searched

Anyways, the repository is here, and again, thanks to pyparadigm for this great plugin.

0 Likes

#23

Hey facelessuser, thanks for this greate plugin improvments! I test it and works verry good!

And, to not forget pyparadigm for his initial work!

0 Likes

#24

Thanks!

I added the last planned features since the last post.

  • New colored underline highlight style

  • Option to only highlight when cursor is adjacent to a bracket

  • Shortcut to select content between brackets

  • Shortcuts to either move the cursor to the first or last bracket (Will also scroll to the bracket if it is off screen, but only when not currently multi-selecting)

I don’t plan on adding any other features, just support for more recent HTML 5 tags. I am open to suggestions though.

0 Likes

#25

I’ve been using a customized version of pyparadigm’s code. I added support for user settings and cleaned up the code since pyflakes/pep8 did not agree with the code style :smile:

SublimeBracketHighlight.py

Configuration keys:

{
	# Boolean. Draw only outline instead of filling the background
	"curly_brace_only_outline": false,

	# Scope name for braces (themes)
	"curly_brace_scope": "entity.name.class",

	# Gutter icon style. Possible values: dot,circle,bookmark,cross
	"curly_brace_icon": "dot",

	"round_brace_only_outline": false,
	"round_brace_scope": "entity.name.class",
	"round_brace_icon": "dot",

	"square_brace_only_outline": false,
	"square_brace_scope": "entity.name.class",
	"square_brace_icon": "dot"
}
0 Likes

#26

Even though the threshold option I added on my fork reduced lag issues, I still wasn’t satisfied; large files would still cause some lag when scrolling with arrow keys, and on slow computers, when typing.

I have now debounced the modify and selection event which dramatically reduces lag, so much so that I have been able to significantly increase my search threshold without adverse effect. I am surprised I didn’t think to debounce the events sooner. So now, instead of matching tags every time you move your cursor or type a letter, it will wait if a rapid succession of events is firing and only match when things let up. Modify events take precedence over selection events so that you won’t have the bracket move on you while the highlight doesn’t when you are typing, deleting, or undoing.

0 Likes

#27

[quote=“facelessuser”]Even though the threshold option I added on my fork reduced lag issues, I still wasn’t satisfied; large files would still cause some lag when scrolling with arrow keys, and on slow computers, when typing.

I have now debounced the modify and selection event which dramatically reduces lag, so much so that I have been able to significantly increase my search threshold without adverse effect. I am surprised I didn’t think to debounce the events sooner. So now, instead of matching tags every time you move your cursor or type a letter, it will wait if a rapid succession of events is firing and only match when things let up. Modify events take precedence over selection events so that you won’t have the bracket move on you while the highlight doesn’t when you are typing, deleting, or undoing.[/quote]

Unfortunately the original plugin could only be used with very small files. This fork is really a great improvement in performance. Good job.

Thank you very much!!!

0 Likes

#28

Thanks.

I know what you mean. I was using this plugin at work, and we have some large firmware files that can be quite sloppy with formatting on occasion, so I really wanted to be able to match the brackets, but it slowed down when outside of small functions. I was left with either abandoning using the plugin due to performance or come up with a solution.

I tried to expose as many knobs as I could to allow the tailoring of performance to specific machines, so hopefully now it can be quite practical in all situations.

0 Likes