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.