-
-
Save koulmomo/8396647 to your computer and use it in GitHub Desktop.
| [ | |
| // Move out of common paired characters () and [] with `Tab` | |
| { | |
| "keys": ["tab"], | |
| "command": "move", | |
| "args": {"by": "characters", "forward": true}, | |
| "context": [ | |
| // Check if next char matches (followed by anything) | |
| { "key": "following_text", "operator": "regex_match", "operand": "(:?`|\\)|\\]|\\}).*", "match_all": true }, | |
| // ...and that there is a paid character before it on the same | |
| // line. This lets you `tab` to Indent at lines with single ]s | |
| // still, like in a JSOn file | |
| { "key": "preceding_text", "operator": "regex_contains", "operand": "(:?`|\\(|\\[|\\{)", "match_all": true } | |
| ] | |
| }, | |
| // Move out of single and double quotes with `Tab` | |
| { | |
| "keys": ["tab"], | |
| "command": "move", | |
| "args": {"by": "characters", "forward": true}, | |
| "context": [ | |
| { "key": "following_text", "operator": "regex_match", "operand": "(?:\"|').*", "match_all": true }, | |
| { "key": "preceding_text", "operator": "regex_contains", "operand": "(?:\"|')", "match_all": true } | |
| ] | |
| } | |
| ] |
This kept me from leaving sublime :)
Awesome, thanks!
works great for Sublime 3 too!
This is great, but breaks tabbing through tab points in snippets (e.g. a tab point for method arguments, followed by another tab point to the method body. Would be awesome if somehow it could look to see if there was a snippet tab point to jump to rather than just moving outside of the current delimiters.
Agree with GRAgmLauncher. Is it possible to not avoid breaking snippets?
Try adding: {"key": "auto_complete_visible", "operand": false}, as an element of the context array.
Im copy pasting this into my keybindings for user, but keep getting an error.
Error trying to parse file: Unexpected trailing characters in ~/Library/Application Support/Sublime Text 2/Packages/Default/Default (OSX).sublime-keymap:40:2
I tried removing some brackets then I get a comma error, I put commas, comes back to this error, any help would be appreciated. thanks
I found another way which lies within sublime keybindings itself. Basically, I just modify the keybindings for auto closing parens, that is, I replace "contents": "($0)" with "contents": "($1)$0". Then just hit Tab to get out of the parenthesis. So I add in my keybindings the following:
{ "keys": ["("], "command": "insert_snippet", "args": {"contents": "($1)$0"}, "context":
[
{ "key": "setting.auto_match_enabled", "operator": "equal", "operand": true },
{ "key": "selection_empty", "operator": "equal", "operand": true, "match_all": true },
{ "key": "following_text", "operator": "regex_contains", "operand": "^(?:\t| |\\)|]|;|\\}|$)", "match_all": true }
]
},
And similar for square brackets, curly brackets, and single and double quotes.
can you make one for Brackets as well?
Thank you! This was very helpful.