AW: UnitOptimizer
Liste der Anhänge anzeigen (Anzahl: 1)
Die Suchfunktion weiter ausgebaut und schon ziemlich komfortabel... https://youtu.be/bmfGo_2uvgI
Ich bin allerdings bei meinem Ansatz geblieben und strebe da eine Integration in meinen Optimizer an. Was haltet Ihr davon? (Von jaenicke weiß ich es ja schon. :freak:) |
AW: UnitOptimizer
Das sieht von der Anzeige der Suchergebnisse ja ganz gut aus. Wenn der Rest auch etwas moderner aussähe und man das ganze in die IDE eindocken könnte, wäre das schon eine gute Umsetzung.
Zitat:
|
AW: UnitOptimizer
Zitat:
|
AW: UnitOptimizer
@jaenicke
Das frei schwebende positionierbare Suchformular war zunächst natürlich eine Testlösung und geplant, das später einzubetten. Allerdings finde ich das jetzt so DEUTLICH komfortabler. Das Suchformular muss ja nicht ständig offen sein. Allerdings sollte es leicht erreichbar sein und auch genügend Platz bieten. Daher ist es eigentlich sinnvoller, es nicht in die IDE einzubetten. Möglich wäre das sicherlich, aber letztlich m.E. nur nachteilig. Schöner machen kann man es ja noch (ich wüsste nur nicht wie genau). @Uwe Eine einheitliche Formatierung ist natürlich sinnvoll und es muss komplett auf Knopfdruck erledigt werden. Die Frage ist nur, was mal als "Standard" ansieht. Der Compiler dürfte zwischen der originalen Standardformatierung von Delphi und der Formatierung durch den UO keinen wesentlichen Unterschied feststellen. Es sind ja (abgesehen von den weichen Zeilenumbrüchen) nur Zeilen verschoben und Leerzeichen eingefügt bzw. gelöscht. Abgesehen von einigen Kinderkrankheiten kann ich zumindest keine Probleme feststellen. Mit Mio Codezeilen habe ich natürlich keine Erfahrungen. |
AW: UnitOptimizer
Zitat:
Wenn man, wie ich, bei verschiedenen Kunden mit unterschiedlichen Style-Guides arbeiten muss, bleibt es natürlich nicht aus, daß man immer mal wieder was anders macht als vorgegeben. So verwende ich aus alter Gewohnheit immer mal wieder (eigentlich recht oft) das Hanging Begin (Zeilenumbrüche vor Begin in Steueranweisungen = Nein). Das lässt sich mit einem beherzten Ctrl-D aber recht schnell bereinigen. Idealerweise wird vor jedem Check-In automatisch eine entsprechende Formatierung durchgeführt. Das sorgt dann auch für saubere Diffs in den ChangeSets. |
AW: UnitOptimizer
Zitat:
|
AW: UnitOptimizer
@dummzeuch
Danke. Ich habe sie mir mal geladen. 3 Abbrüche hatte ich. Die sind jetzt bereinigt. Ich muss mir die Ergebnisse aber mal noch konkret durchsehen, ob diese "korrekt" sind. Ist natürlich auch immer die Frage, was man unter korrekt versteht. Da spielt ja auch immer der persönliche Geschmack hinein - bzw. welche unterschiedlichen Ergebnisse die einzelnen Optionen bringen... Die testfile_LargeFile.pas braucht 13 Sekunden. 27.000 Zeilen in einer Unit sind ja aber sicherlich auch eher ungewöhnlich. Vielleicht lässt sich das auch noch etwas beschleunigen. Mein Optimizer geht übrigens nicht nur strikt vorwärts durch die Zeilen und verschiebt die Wörter sondern zerlegt alles und baut das neu zusammen, um die Reihenfolge des Implementationsteils an den Interfaceteil anzugleichen. Das dauert dann halt etwas bei so großen Units. Das aktuelle Ergebnis ist da aber definitiv auch noch nicht in Ordnung. Das Problem muss ich noch in Ruhe analysieren. Ein aktuelles Problem ist mit Sicherheit, dass der Optimizer zwischen echtem Kommentar und Auskommentierungen unterscheidet. Durch diese Unterscheidungen kann er Kommentare besser im Quelltext einbinden oder z.B. mit Methoden zusammen verschieben.
Delphi-Quellcode:
Wenn die Prozedur TestA verschoben wird, dann bindet der Optimizer zuvor den darüber befinden echten Kommentar ( {: ... ) an die Methode und verschiebt diesen mit.
{
procedure TestXYZ; begin end; } procedure TestB; begin end; {: Das ist die Prozedur Test. Author: StahliSoft :} procedure TestA; begin end; Den Block mit TestXYZ versteht er dagegen als Code und bindet diesen nicht an TestB. Ich kann natürlich eine Option "KeineUmsortierungDesQuelltextes" oder "KommentarImmerAlsEchtenKommentarAnsehen" anbieten. Aber erst mal muss ich mir die aktuellen Ergebnisse und Probleme mal genauer ansehen... (Wo scheitern z.B. Du und der Code-Formatter von Delphi? Hast Du direkt mal ein Beispiel zur Hand? (gern auch per Mail)) @Uwe Ich sehe schon einen Unterschied darin, ein eigenes Projekt zu entwickeln und in anderen Units etwas nachzulesen. Wenn ich mit einer eigenen Formatierung gut zurecht komme, kann ich ja dennoch anders formatierten Code lesen und verstehen. Den Hauptaspekt würde ich aber auf das eigene Projekt legen. Das Wichtigste ist: Formatieren auf Knopfdruck! Einrücken und Umbrüche von Hand zu schreiben würde ich unbedingt vermeiden wollen. Daher habe ich immer Ctrl-D benutzt, auch wenn mir das Ergebnis an vielen Stellen nicht wirklich gefallen hat. Das "hanging begin" habe ich auch noch in der Planung (wird nicht schwierig, habe nur andere dringendere Optionen in Arbeit). Ich habe das auch schon bei einem Tester gesehen und hätte nicht gedacht, dass diese Formatierung verbreitet sein könnte... Aktuell behält der UO den Code bei wie er gegeben ist. Also "begin" bleibt hinter "then" oder in der neuen Zeile stehen. Als Option will ich anbieten, eine von beiden Varianten "erzwingen" zu können. Daher mal: @all Wer nutzt die Formatierung "hanging begin", also, dass begin nicht in einer neuen Zeile steht oder für wen käme das nie in Frage?
Delphi-Quellcode:
if x then begin
y := 0; z := 0; end; |
AW: UnitOptimizer
Zitat:
Beim Mergen gibt es nämlich ansonsten auch gerne mal "schöne" Ergebnisse, wenn nämlich beim automatischen Mergen das begin hinten in der Zeile entfernt wird, aber das end nicht. Diese Dinge kann man zwar dann korrigieren, aber besser ist es das begin in eine eigene Zeile zu schreiben, damit es beim Mergen auch separat behandelt wird. Denn anders als der Delphi-Compiler handelt ein Merging-Tool nicht unbedingt semantisch korrekt... da ist es dann in Bezug auf das Ergebnis nicht egal wo das begin steht. |
AW: UnitOptimizer
Zitat:
Zitat:
Der von Delphi scheiterte bereits an so Sachen wie Variant Records (zumindest beim letzten Mal, als ich es versucht habe, es gibt einen QC-Report von mir dazu). Es gab noch weitere Fehler, aber die sind inzwischen wohl teilweise behoben. Ich benutze ihn aber eigentlich nicht, weil er lange zu fehlerhaft dafür war, deshalb habe ich keinen Überblick, was er kann/nicht kann. Apropos: GExperts erlaubt es Bereiche von der Formatierung auszunehmen:
Delphi-Quellcode:
Das geht IIRC bei Delphi nicht, d.h. man ist dem Formatter ausgeliefert.
{(*}
hier; nicht; formatieren;{*)} Zitat:
Delphi-Quellcode:
if bla then begin
blub; end else begin Trallala; end; |
AW: UnitOptimizer
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:23 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