Closed
Description
High-level refactorings should be doable by combining minimal code generation with retrie commands.
Rename
To rename foo
to bar
, proceed as follows:
-
Rename
foo
tobar
in place -
Generate a new declaration:
foo = bar
- Tell retrie to unfold
foo
Move
Similar to rename, but in step 1 we move bar
to the target module, while in step 2 we generate foo
in the source module.
Extract definition
- Ask the user for the desired name
- Generate a new declaration with the desired name, using the selected subexpression as the function body, and the unbound variables as formal parameters
- Tell retrie to fold the new name