spacemod
Install v0.1.1
Published on Jun 25 2023 at 21:26 UTC
spacemod
spacemod
is a text search-and-replace tool optimized towards refactoring
code.
# example.py (before) copy_file(to_file=to_file, from_file=from_file) copy_file( to_file=get_file(filepath, mode), from_file=get_file_writer(other_filepath, other_mode) )
# Use spacemod's custom pattern-matching language to deal with whitespace easier. # Without -S, normal regex patterns are assumed. $ spacemod -S \ 'copy_file ( to_file= (.*) , from_file= (.*) )' \ 'copy_file($2, $1)' \ example.py # spacemod will open interactive TUI and ask for approval of diffs. Use # --accept-all to use spacemod non-interactively.
# example.py (after) copy_file(from_file, to_file) copy_file(get_file_writer(other_filepath, other_mode) , get_file(filepath, mode))
It is very similar to fastmod, but with some additional features:
- Undo stack. Approved a diff too soon? Hit
[u]ndo
to revert. - Yes to all diffs like this. Auto-approve future diffs with the exact same content.
- Parenthesis-matching (experimental). Besides regex, spacemod also supports a custom regex-like language that requires less escaping and whitespace-handling.
Documentation
Check the website for installation and usage.
License
Licensed under MIT
, see ./LICENSE
.