pharo icon indicating copy to clipboard operation
pharo copied to clipboard

[RB] Refactorings UI tracking issue

Open balsa-sarenac opened this issue 1 year ago • 0 comments

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: rename and remove, 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->Re and 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
  • 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
  • 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

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
  • 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

balsa-sarenac avatar Jul 05 '24 21:07 balsa-sarenac