Bracketeer gives you brackets and quotes superpowers at the tip of your fingers. Easily swap bracket/quote types, remove them or select their content from within with one command. No need to select content of the bracket/quote or move your cursor. Works even on multiple selections.
Extension should work with different languages, but if you encounter error, please let know and I will try to fix it.
Feedback and PRs are welcome. Enjoy the plugin.
Bracketeer currently provide four commands to manipulate with brackets and their equivalents for quotes. All commands work on multiple selections as well.
Swap brackets/Replace brackets with...
This command allows you to switch to different bracket types from within the brackets without need to select them. You can either cycle through them or use Quick pick menu to select correct bracket immediately.
This command will delete closest brackets
Select brackets content
With the help of this command you can easily select content of the brackets, Calling this command again will select brackets as well. This can be chained to select outer brackets (and perform some actions on them).
Swap quotes/Replace quotes with...
This command allows you to switch to different quote types from within the quotes without need to select them. You can either cycle through them or use Quick pick menu to select correct quote type immediately.
This command will delete enclosing quotes
Select quotes content
With the help of this command you can easily select content of the quotes, Calling this command again will select quotes as well. Unlike bracket alternative, selection won't expand more after selection of the quotes.
How does it work
Since VS Code does not provide extension API for working with language (grammar) tokens. In order to make this extension I'm using Prism.js to parse the documents. This has some edge cases but mostly work pretty well. This extension have
If your language of choice is missing in definitions file and you would like to contribute please feel free to submit a PR. But test first that it is working, I will test it myself as well before merging.
In no particular order: