Ich arbeite immer noch an meinem Optimizer.
Der wird auch Codevervollständigung und -Änderung vereinfachen - insbesondere was Interfaces und deren Klassenimplementation betrifft.
Hier mal ein kleines Beispiel:
https://www.delphipraxis.net/1402961-post3.html
Aus "prop Firstname: String;" in einer Klassendeklaration wird auf Knopfdruck ein komplettes Property mit Getter (_get_Firstname), Setter (_set_Firstname) und privatem Feld (fFirstname).
Die Präfixe und die Codebausteine lassen sich variabel definieren.
Wird das Property in der Form nachträglich in einem Interface aufgenommen, wird die Vervollständigung in allen Klassen durchgeführt, die das Interface verwenden (auch später in anderen Projekten, die das Interface nutzen).
Dazu gibt es gewisse Vorgaben, die man schon in dem Interface einrichten kann. So kann man z.B. schon im Interface festlegen, dass die Klassenmethoden virtuell sein sollen oder der Parameter im Setter als "const". Die Einstellungen werden dann bei der Klassenvervollständigung gleich berücksichtigt (wenn die Methoden neu angelegt werden).
Die Voreinstellungen kommen i.d.R. nur bei Neuerzeugungen von Eigenschaften, Methoden und Feldern zum Tragen. Man kann aber auch Änderungen nachträglich erzwingen.
Hat man Methoden in Klassen z.B. nicht virtuell angelegt, kann man dies durch einen Schalter in der Interface- oder Klassenstruktur korrigieren.
Das könnte dann so aussehen: "prop Firstname: String; !vi"
So würden alle Getter und Setter der Property in allen verwendenden Klassen in "virtuell" geändert werden.
Auch Umbenennungen kann man erzwingen: "prop Firstname: String; !rn First_Name" !rt String[100]
Damit würde der Propertyname und Typ entsprechend durchgehend umbenannt (allerdings nur bezüglich der Getter und Setter und des privaten Feldes "fFirst_Name" (incl. im Codeblock der Getter und Setter)).
Ob man mal irgendwann ein echtes Refactoring innerhalb der
IDE anstoßen kann, kann ich derzeit nicht einschätzen. Da muss man ggf. mal noch den besten Weg finden.)
Wenn "First_Name" im aktuellen Projekt nochmal umbenannt wird in "FirstName" und dieses Interface auch in einem anderen ProjektOld verwendet wird, in dem der Stand noch "Firstnamwe" lautete, wird der Optimizer "Firstname" in "FirstName" ändern und den Zwischenschritt überspringen.
Ob das jetzt Deinem Wunsch nahe kommt, kann ich nicht wirklich einschätzen.