pharo
pharo copied to clipboard
[RB] Refactorings UI tracking issue
In this issue we'll track remaining work for refactorings (mainly UI).
Overall things to do:
- [ ] Create a generic driver that can execute given refactoring and preview changes (command creates a instance of refactoring and hands it to the driver maybe?)
- [ ] Group refactoring commands together (either in same section of context menu or put it in the refactoring submenu)
- [ ] Prefix refactorings with either
(T)or(R) - [ ] Make sure all choice dialogs have by default selected the first option
- [ ] Make sure all presenters have default button selected!
- [ ] Migrate to new driver and new architecture
If a refactoring satisfies all of the above, tick the box bellow.
Package refactorings:
- [ ] create a refactoring sub-menu with:
renameandremove, or move them in the same section
Class:
- class list
- context menu
-
[x] Rename
-
[ ] Deprecate - remove it in favor of refactoring submenu's deprecate - - [ ] #16873 - [ ] #16872 - [ ] #16871
-
[ ] Migrate references - remove it in favor of refactoring submenu's deprecate
-
[ ] Realize class
-
[ ] Abstract instance variable - add
(R), but it depends on logic (if they do not override existing ones) -
[ ] Generate accessors - add
(R), but it depends on logic (if they do not override existing ones) -
[x] Remove
-
- refactoring context submenu
- [x] Make abstract
- [ ] Deprecate - migrated, but need to rename
RB->Reand add(R/T)prefix - [x] Generate equals and hash code
- [x] Generate printOn
- [ ] New subclass - add
(R)prefix - [ ] Duplicate class - add
(R)prefix and missing comment - [ ] Insert superclass - add
(R)prefix - [ ] Insert subclass - add
(R)prefix
- context menu
- class definition
- [x] Rename
- [ ] Deprecate and Migrate references - change them in favor of driver version of Deprecate
Protocol refactoring:
- [ ] group or move refactorings (similar as with packages and other refactorings)
Variables refactoring:
- list
- [ ] Rename - add prefix
(R) - [ ] Merge into another - add
(T)prefix - list shows in which to pick - list should not contain variable that is being merged - [x] Generate accessors (lazy)
- [x] Abstract accessors - when using directly var - use accessor instead
- [ ] Protect - add
(R)prefix; add "convert all accessors to direct usages" tooltip - [ ] Push up - add
(R)prefix - [ ] Pull down - add
(R)prefix - [ ] Remove - add
(R)prefix
- [ ] Rename - add prefix
- class definition - these should be the same.
- [ ] Rename - add prefix
(R) - [ ] Protect - add prefix
(R); move to driver - [ ] Push up - add
(R)prefix - [ ] Pull down - add
(R)prefix - [ ] Remove - add
(R)prefix - [x] Generate accessors
- [x] Abstract accessors
- [ ] Rename - add prefix
Method refactoring:
- methods list
- context menu
- [x] Rename
- [ ] Deprecate method - has a driver, but its implementation is not what is expected way to deprecate a method and also include generation of automatic rewrite)
- [x] Remove
- refactoring context submenu
- [ ] Push up - add
(R)prefix - [ ] Push down - add
(R)prefix - [ ] Push down in some classes - add
(R)prefix - [ ] Find and Replace - migrate to driver
- [ ] Add Argument - add
(R)prefix, migrate to driver - [ ] Remove all senders - add
(R/T)prefix - [ ] Move to class side - add
(R)prefix - [ ] Move to another class - add
(T)prefix, but can depend on usage; migrate to driver - [ ] Remove and the ones in subclasses - add
(R)prefix; migrate to driver - [ ] Replace senders - migrate to driver
- [ ] Push up - add
- context menu
- method pane
- [ ] Extract Method - change two entries to only one - composite one that replaces occurrences
- [ ] Rename temp - add prefix
(R)and migrate to driver - [ ] Extract Temp - add prefix
(R)and migrate to driver - [ ] Inline temp - add prefix
(R)and migrate to driver - [ ] Convert to instance var - add prefix
(R)and migrate to driver
- [ ] do not show extract method/extract temp refactorings unless there is a selection