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 assignment3 |
| 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, Cython, JavaScript, Lua, Squirrel. Does best effort for other languages.
I have plans. Here is a list if you want to help and looking where to start:
Also, support for more programming languages for language-dependent commands will help.
$ claude mcp add sublime-reform \
-- python -m otcore.mcp_server <graph>