AW: UnitOptimizer
Zitat:
|
AW: UnitOptimizer
Zitat:
Ich verwende ja den Formatter und bis jetzt war ich mit der Formatierung in Standardeinstellungen sehr zufrieden, wobei ohnehin nur sehr wenig überhaupt noch geändert wird, da ich ohnehin direkt "normal" schreibe. Das schließt auch Groß- und Kleinschreibung ein. Hier im Forum schreibe ich ja auch (meistens hoffe ich :D) korrektes Deutsch. Bei fremden Quelltexten ist es durchaus angenehm, wenn ich nur die ersten Vorkommnisse korrigieren muss und die Groß- und Kleinschreibung danach automatisch angeglichen wird. |
AW: UnitOptimizer
Mit meiner Frage meinte ich eher das Refactoring.
Dazu muss der Compiler die verschiedenen binären Objekte (z.B. eine globale Variable "X") kennen und alle Codestellen in allen Units, die diese Variable benutzen. Wenn ich ein Refactoring aufrufe und "X" in "XX" umbenenne, dürfte das nicht möglich sein, wenn das Projekt nicht kompiliert bzw. kompilierbar ist... Ich denke mal, das dürfte so richtig sein. Jetzt eine (vielleicht zu akademische?) Frage: Ich hatte die Vorstellung, Umbenennungen in einem Interface auch in anderen Units (auch anderen Projekten) nachzuholen. Macht das überhaupt Sinn und wie würde man das aktuell händeln? Mal ein Beispiel: Ich habe zentral abgelegt eine Unit mit einem Interface und einer Property X. Das Interface wird in 2 Projektgruppen verwendet. Projektgruppe1 hatte es eingeführt. In Projektgruppe2 wurde die zentrale (selbe) Unit auch eingebunden und das Interface für neue Klassen benutzt. In Projektgruppe2 werden neue Methoden und Properties in dem Interface deklariert. In Projektgruppe1 brauche ich nur meine Klassenvervollständigung starten und alle neuen Methoden und Properties werden in allen Klassen, die das Interface verwenden automatisch ergänzt (zumindest als Templates). Soweit kein Problem, das sollte so funktionieren. Jetzt die vermutlich akademische Frage: Wenn ich innerhalb der Projektgruppe1 das Property X umbenenne in XX (und das in allen Klassen der Projektgruppe1 über ein Refactoring angepasst wird - sofern mir das irgendwann gelingen sollte), wie würde man in der Projektgruppe2 damit umgehen? Bzw. wie würde man das tun ohne mein Tool? Die Projektgruppe2 wäre ja jetzt nicht mehr kompilierbar, da dort die Klassen (mit Property X) nicht der Deklaration des aktuellen Interfaces (mit Property XX) entsprechen. Ein Refactoring dürfte in dem Moment generell nicht mehr möglich sein. Man wird also alle Codestellen suchen und händisch anpassen müssen. Mein Optimizer könnte dies ggf. in den Deklarationen und innerhalb der Getter und Setter automatisch übernehmen, nicht aber für die bisherigen Verwendungen von .X (die jetzt .XX heißen müssen) außerhalb der Getter und Setter. Das ist sicherlich auch kein Standardfall, dass man Properties von Interfaces umbenennt, die in unterschiedlichen Projekten verwendet werden aber hatte jemand schon mal so etwas bzw. eine Meinung bzw. Umgang dafür? |
AW: UnitOptimizer
Liste der Anhänge anzeigen (Anzahl: 1)
Jetzt werden auch innerhalb der IDE Interfaces in anderen Units gefunden und verarbeitet. :-)
Anbei mal ein Auszug, wie eine vorher recht wüste Unit nach dem Optimieren aussieht. (Die Performance passt noch nicht, aber da kann ich sicher noch etwas rausholen.) |
AW: UnitOptimizer
Zitat:
x vs X und y vs Y -> gibt es mehrfach in unterschiedlichen Schreibeweisen in der RTL/VCL und diversen Bibliotheken i vs I -> will man nie groß schreiben l vs L -> will man nie klein schreiben o vs O -> will man nie groß schreiben Und dann gibt es da noch message vs. Message und natürlich private vs. Private und ähnliches, was aber wohl seltener vorkommt. |
AW: UnitOptimizer
Zitat:
Delphi-Quellcode:
In dem Fall kann man problemlos die Variable x in _x umbenennen lassen, obwohl der Code wegen der nicht deklarierten Variablen x nicht compiliert.
function bla(_x: Integer): Extended;
begin // fiktive Formel kopiert von woanders, wo x verwendet wurde: Result := x * 5 - pi; end; |
AW: UnitOptimizer
Ok danke. Das muss ich dann mal später genauer untersuchen wenn es mir überhaupt mal gelingen sollte, ein Refactoring über die OTA anzustoßen.
In dem Fall könnte ich über eine eine einzelne Anweisung wohl innerhalb eines Projektes gleich zeitig ein Property eines Interfaces umbenennen incl. automatisch Getter und Stter anpassen und die Änderung auch in alle benutzenden Klassen durchschleifen (dort auch incl. privatem Feld). Wenn ich ein Refactoring grundsätzlich aufrufen kann, dann sollte das so machbar sein. Ob die Anpassung dann auch in einem anderen externen Projeklt möglich ist, wäre dann eben nochmal zusätzlich zu klären (wenn die Anforderung überhaupt als interessant erachtet würde). PS: Zu meiner Entschuldigung ... wenn ich in der Woche tagsüber schreibe habe ich i.d.R. kein Delphi verfügbar und jetzt am Wochenende versuche ich mich erst mal um die aktuelleren Dinge zu kümmern. Daher kommen sicher manchmal etwas komische Fragen von mir. :oops: |
AW: UnitOptimizer
Liste der Anhänge anzeigen (Anzahl: 1)
Der Umzug nach D.11 und Anpassung des Installers gingen bis hierher recht problemlos. :-)
|
AW: UnitOptimizer
Liste der Anhänge anzeigen (Anzahl: 1)
Kleiner Nebeneffekt...
Zwar muss man die automatisch erzeugten Units natürlich nicht formatieren, aber mir gefällt das so auf jeden Fall besser und ich finde es übersichtlicher. :-) |
AW: UnitOptimizer
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz