Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RB] Refactorings UI tracking issue #16866

Open
12 of 59 tasks
balsa-sarenac opened this issue Jul 5, 2024 · 0 comments
Open
12 of 59 tasks

[RB] Refactorings UI tracking issue #16866

balsa-sarenac opened this issue Jul 5, 2024 · 0 comments

Comments

@balsa-sarenac
Copy link
Member

balsa-sarenac commented Jul 5, 2024

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:

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
    • Generate accessors (lazy)
    • 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
    • Generate accessors
    • Abstract accessors

Method refactoring:

  • methods list
    • context menu
      • 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)
      • 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
@Ducasse Ducasse changed the title Refactorings UI tracking issue [RB] Refactorings UI tracking issue Jul 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Current Iteration
Development

No branches or pull requests

3 participants