Einzelnen Beitrag anzeigen

PeterPanino

Registriert seit: 4. Sep 2004
1.451 Beiträge
 
Delphi 10.4 Sydney
 
#1

Refactoring-Wizard "Smart Add Parameter"

  Alt 2. Mai 2013, 20:42
Hallo! Gibt es einen Refactoring-Wizard für den Delphi Code-Editor, der folgendes macht:

Ich habe z.B. folgende Methode:
Delphi-Quellcode:
procedure TMyClass.HandleButton;
begin
  MyButton.Caption := 'Do it!';
  MyButton.Enabled := True;
  MyButton.DropDownMenu := MyPopupMenu;
end;
Nun setze ich den Cursor auf einen der Bezeichner "MyButton" und aktiviere den Refactoring-Wizard: Es erscheint ein Dialog, in dem ich einen Namen für den Parameter eingebe (AButton), sowie die Optionen "Modifier" und "Default" einstellen kann. Nach Klick auf OK hat der Refactoring-Wizard die Methode folgendermaßen modifiziert (und natürlich automatisch zugleich die entsprechende Deklaration im Interface-Teil):
Delphi-Quellcode:
procedure TMyClass.HandleButton(AButton: TButton);
begin
  AButton.Caption := 'Do it!';
  AButton.Enabled := True;
  AButton.DropDownMenu := MyPopupMenu;
end;
Danach setze ich den Cursor auf 'Do it!' und er macht daraus automatisch:
Delphi-Quellcode:
procedure TMyClass.HandleButton(AButton: TButton; ACaption: string);
begin
  AButton.Caption := ACaption;
  AButton.Enabled := True;
  AButton.DropDownMenu := MyPopupMenu;
end;
Usw. So ein Refactoring-Wizard wäre ungeheuer praktisch und zeitsparend! Denkbar wäre auch, dass der Refactoring-Dialog bereits alle in der Methode vorkommenden Symbole und Typen auflistet und man nur noch jeweils draufklicken muss, um diesen als Parameter einzufügen.

Bitte jetzt nicht die Antwort: "Du könntest die Methode ja gleich so generalisiert schreiben, wie du sie brauchst!". Der Grund ist nämlich der, dass man häufig eine spezielle (also nicht generalisierte) Prozedur/Methode als Ergebnis eines Extract-Method-Refactorings erhält. Sie dann zu generalisieren ist dann aber oft wieder entsprechend zeitaufwendig.
  Mit Zitat antworten Zitat