Copy Paste Killer
Sublime text 3 plugin to help to refactor duplicated code
Details
Installs
- Total 236
- Win 145
- Mac 71
- Linux 20
Jun 1 | May 31 | May 30 | May 29 | May 28 | May 27 | May 26 | May 25 | May 24 | May 23 | May 22 | May 21 | May 20 | May 19 | May 18 | May 17 | May 16 | May 15 | May 14 | May 13 | May 12 | May 11 | May 10 | May 9 | May 8 | May 7 | May 6 | May 5 | May 4 | May 3 | May 2 | May 1 | Apr 30 | Apr 29 | Apr 28 | Apr 27 | Apr 26 | Apr 25 | Apr 24 | Apr 23 | Apr 22 | Apr 21 | Apr 20 | Apr 19 | Apr 18 | Apr 17 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
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 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
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 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Linux | 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 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Readme
- Source
- raw.githubusercontent.com
CopyPasteKiller Plugin
Sublime text 3 plugin to help to refactor duplicated code.
This command sets snippets for “Find and Replace” with regular expression.
You can find any code blocks without caring about indentation
and some differences like variable names.
You can replace those matches with refactored code
by changing the given 'replace_string' and hitting “Replace”.
Usage:
You can declare shortcut like:
{ "keys": ["ctrl+shift+i"], "command": "copy_paste_killer" }
Guide
Select lines
Run “copy_paste_killer” command
The snippets for “Find” and “Replace” are set
You could configure whether to open panels or not with settings keep_panels_open
Change the snippet for “Find”
Find parts which have variations(e.g. variable name) in the snippet for “Find” and select them
Replace variables with Regex
Replace variable name parts with Regex in the snippet for “Find”
You can name regex groups as you want
The typical format to name regex group is (?<name>.*)
Copy the snippet into “Find:”
“Select All ⌘A” -> “Use Selection for Find ⌘E”
Hit “Find” and confirm matches
You can find duplicated codes even if they have different indents and different variable names
Change the snippet for “Replace”
Change the snippet for “Replace” using regex groups named in “Find”
The format is $+{name}
Copy the snippet into “Replace:”
“Select All ⌘A” -> “Use Selection for Replace ⇧⌘E”
Hit “Replace” and confirm changes
Hit “Replace” and confirm if changes are expected
Check changes
Check changes with git diff
Reset(Undo) changes with git checkout
etc if replacements were wrong
Settings
keep_panels_open
(default true) - Configure whether to open panels for snippets or not
Test
UnitTesting plugin
- Open tests/test_copy_paste_killer_selection_converter.py
- Open “Command Palette…” (⇧⌘P)
- Run “UnitTesting: Test Current File”
Test scenarios
- “tests/data/*_source.txt” -> Expected snippet for selection
- “tests/data/*_find.txt” -> Expected snippet for find_string
- “tests/data/*_replace.txt” -> Expected snippet for replace_string
Manual testing
Any selection shouldn't change with “copy_paste_killer” command and “Find” and “Replace” when replace_string isn't changed.