-
-
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 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?
works great for Sublime 3 too!