Reform
A Sublime Text plugin to move through and reform things
Labels formatting
Details
Installs
- Total 842
- Win 319
- Mac 355
- Linux 168
Jan 21 | Jan 20 | Jan 19 | Jan 18 | Jan 17 | Jan 16 | Jan 15 | Jan 14 | Jan 13 | Jan 12 | Jan 11 | Jan 10 | Jan 9 | Jan 8 | Jan 7 | Jan 6 | Jan 5 | Jan 4 | Jan 3 | Jan 2 | Jan 1 | Dec 31 | Dec 30 | Dec 29 | Dec 28 | Dec 27 | Dec 26 | Dec 25 | Dec 24 | Dec 23 | Dec 22 | Dec 21 | Dec 20 | Dec 19 | Dec 18 | Dec 17 | Dec 16 | Dec 15 | Dec 14 | Dec 13 | Dec 12 | Dec 11 | Dec 10 | Dec 9 | Dec 8 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Mac | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
Linux | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Readme
- Source
- raw.githubusercontent.com
Reform
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:
Command | Key* | Description |
---|---|---|
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).
Installation
- 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.
TODO
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.