A Sublime Text plugin to move through and reform things
- Total 728
- Win 266
- OS X 313
- Linux 149
|Dec 8||Dec 7||Dec 6||Dec 5||Dec 4||Dec 3||Dec 2||Dec 1||Nov 30||Nov 29||Nov 28||Nov 27||Nov 26||Nov 25||Nov 24||Nov 23||Nov 22||Nov 21||Nov 20||Nov 19||Nov 18||Nov 17||Nov 16||Nov 15||Nov 14||Nov 13||Nov 12||Nov 11||Nov 10||Nov 9||Nov 8||Nov 7||Nov 6||Nov 5||Nov 4||Nov 3||Nov 2||Nov 1||Oct 31||Oct 30||Oct 29||Oct 28||Oct 27||Oct 26||Oct 25|
This thing enables you to move through and reform your code like magic. At least it aims to do it :)
Here is a list of supported commands:
|find_word_up||ctrl+up||Jump to previous occurrence of a word at cursor|
|find_word_down||ctrl+down||Jump to next occurrence of a word at cursor|
|def_up||alt+up||Jump to previous function or class declaration|
|def_down||alt+down||Jump to next function or class declaration|
|smart_up||alt+[||Jump to previous declaration or block2|
|smart_down||alt+]||Jump to next declaration or block2|
|move_word_right||ctrl+alt+/||Swap word at cursor with a next one|
|move_word_left||ctrl+alt+.||Swap word at cursor with a previous one|
|move_block_up||ctrl+alt+;||Swap block with a previous one|
|move_block_down||ctrl+alt+'||Swap block with a next one|
|expand_next_word||alt+d||Expand selection to next word matching one at cursor1|
|select_scope_words||alt+shift+d||Select words in function scope matching word at cursor1,3|
|select_scope_up||ctrl+shift+;||Select block2/function/class at cursor, select enclosing one on next hit3|
|select_scope_down||ctrl+shift+'||Undo last select_scope_up|
|delete_block||ctrl+alt+d||Delete block at cursor with appropriate adjusting empty lines|
|extract_expr||alt+enter||Extract selected expression into an assignment4|
|inline_expr||alt+=||Inline variable defined on line at cursor|
* Current key bindings are very experimental, especially on OS X.
1 Matches only whole words, case-sensitive, comments and strings are skipped.
2 Block is a adjacent commented lines or a blob of text surrounded with empty lines.
3 Works for python, js, plain text. Tries to work for other languages.
4 Works for python, js, ruby, php (and any languages with no keyword to define var).
- Install Package Control.
- Bring up the Command Palette with Ctrl+Shift+p (Cmd+Shift+p on OS X).
- Select “Package Control: Install Package” (it'll take a few seconds).
- Select or type in “Reform” when the list appears.
I have plans. Here is a list if you want to help and looking where to start:
- Move functions up and down.
- Better select words in scope: expand to next scope on subsequent hit, autodetect name scope.
- Break long lines.
- Break long strings, several variants including switching to multiline separators.
- Reform dicts (object literals) from one-line to multi-line and back.
- Same for calls, calls with keyword arguments, array literals.
- Reform multiline list, set, dict comprehensions and generator expressions.
- Align =, =>, :, \ and other punctuation
- Switch brackets, parentheses, whatever.
- Move blocks respecting functions.
Also, support for more programming languages for language-dependent commands will help.