AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte UnitOptimizer
Thema durchsuchen
Ansicht
Themen-Optionen

UnitOptimizer

Ein Thema von stahli · begonnen am 25. Mai 2018 · letzter Beitrag vom 31. Okt 2021
Antwort Antwort
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.352 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: UnitOptimizer

  Alt 17. Mär 2020, 23:30
Hmm...

Also die Widerherstellung der Bookmarks und Breakpoints nach der Codeformatierung habe ich im Griff.
Auch das Zuklappen der "Getter+Setter"-Regionen funktioniert.

Allerdings sind die ToolsAPI aus meiner Sicht nicht sehr eingängig.

Eigentlich würde ich aber nach dem Formatieren schon gern die Regionen wieder so auf- und zugeklappt herstellen, wie sie vor der Formatierung waren.

Die besten Infos zum Thema habe ich hier gefunden:
https://parnassus.co/mysteries-ide-p...ed-elided-code
Allerdings übersteigt das meine Fähigkeiten und ist mir zu heikel, so etwas zu realisieren.

Weiß jemand evtl, wie die IDE die Informationen über auf- und zugeklappte Regionen speichert und diese wieder herstellt?

Wenn es keine machbare Lösung gibt, kann ich auch mit meiner bisherigen Lösung leben.
Eine komplette Wiederherstellung des vorherigen Standes wäre mir aber schon noch lieber.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.679 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: UnitOptimizer

  Alt 18. Mär 2020, 08:15
Ich habe in GExperts (insbesondere im Code-Formatter) mit Code-Folding / Unfolding herumexperimentiert, es aber irgend wann aufgegeben. Es ist den Aufwand einfach nicht wert (zumindest für mich persönlich).

Das Verschieben der Bookmarks und Breakpoints ist auch ziemlich aufwändig. Ich habe es einigermaßen hinbekommen, aber perfekt ist es definitiv nicht. Wenn das bei Dir besser klappt: Hut ab!

Die Einstellungen zum Code Folding werden anscheinend in der .dsk-Datei des Projekts gespeichert, und zwar im Eintrag "Elisions" des jeweiligen Views:

Code:
[View0]
CustomEditViewType=TEditView
Module=D:\source\test\Unit1.pas
CursorX=1
CursorY=9
TopLine=1
LeftCol=1
Elisions={{10,23},{15,6},{''}}
Bookmarks=
EditViewName=D:\source\test\Unit1.pas
Ob Dir das allerdings hilft, ist fraglich, denn die Datei wird anscheinend erst beim Schließen des Projekts aktualisiert.
Thomas Mueller
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.352 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: UnitOptimizer

  Alt 18. Mär 2020, 10:09
Danke.

Ich könnte mir vorstellen, das Speichern und Laden der Regionen-Zustände nachzubauen und um den Aufbereitungsprozess zu setzen.

Aber es gibt da offenbar so viele unterschiedliche Module und Daten, die da zusammenspielen, dass das ziemlich unsicher wäre, alles stabil zu händeln.
Wenn es eine übersichtliche Zusammenfassung gäbe oder die Quelltexte einsehbar wären, würde ich das mal versuchen. So ist das aber wohl zu unübersichtlich. Haben andere offenbar auch schon so eingeschätzt.

Worauf basiert die Delphi-IDE eigentlich? Anscheinend gibt es da eine gemeinsame Basis zu Visual Studio und anderen Editoren. Jedenfalls landet man mit Suchbegriffen aus den ToolsAPI auch öfter bei MS und in anderen Bereichen.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.679 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: UnitOptimizer

  Alt 25. Mär 2020, 10:38
Zum Thema Teilformatierung:

Das kann man genauso implementieren wie die Positionen der Breakpoints:
  1. Anfangs- und Endzeile der Markierung bestimmen
  2. Marker setzen, die mit verschoben werden
  3. Gesamten Text formatieren
  4. Die beiden Marker suchen und die markierten Zeilen durch den formatierten Text dazwischen ersetzen

Das ist in GExperts so implementiert. Es funktioniert nicht perfekt, aber für mich gut genug.
Thomas Mueller
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.352 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: UnitOptimizer

  Alt 25. Mär 2020, 10:53
Ja, ok, so wäre das machbar.

ABER:

1.) wäre trotzdem die gesamte Unit "bearbeitet" also wäre die gelbe Markierung links komplett über die gesamte Unit

2.) erkenne ich keinen Vorteil einer solchen teilweisen Formatierung. Schneller wäre es nicht und u.U. passt der Bereich dann nicht zum Umfeld, welches nicht "korrekt" formatiert wurde.

Wichtiger fände ich es statt dessen, genügend Optionen zur Verfügung zu stellen, so dass die Formatierung einer gesamten Unit akzeptiert und nicht als nachteilig empfunden wird.

NACHTRAG: Bezüglich fehlenden Ends usw. könnte ich mir vorstellen, an der Stelle einen Fehlerhinweis einzublenden und die Formatierung komplett zu verwerfen. Das habe ich aber noch nicht versucht umzusetzen...


Was mich aber in der aktuellen Arbeit stört, sind die Standardvorgaben von Delphi. Z.B. werden neue Zeilen und Anweisungen nach "Delphi-Regeln" erzeugt, die sich nicht zu "meinen Formatierungen" passen. Das sieht daher bei neuen Zeilen z.T. ziemlich wüst aus, bis ich dann Ctrl-Shift-O bzw. jetzt auch Ctrl-D drücke.

Cool wäre eine smarte Formatierung im Hintergrund, die den geschriebenen Text fließend optimiert, aber das wird mit Delphi nichts werden, denke ich.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)

Geändert von stahli (25. Mär 2020 um 11:08 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.679 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: UnitOptimizer

  Alt 25. Mär 2020, 11:06
Ja, ok, so wäre das machbar.

ABER:

1.) wäre trotzdem die gesamte Unit "bearbeitet" also wäre die gelbe Markierung links komplett über die gesamte Unit
Wieso? Wenn Du nur die markierten Zeilen ersetzt und den Rest beibehältst, passiert das doch nicht.

2.) erkenne ich keinen Vorteil einer solchen teilweisen Formatierung. Schneller wäre es nicht und u.U. passt der Bereich dann nicht zum Umfeld, welches nicht "korrekt" formatiert wurde.
Aha, ein Purist.

Vorteil ist, dass man an einer Unit nur genau den Bereich ändert, den man bearbeitet hat. Ein Vergleich mit vorherigen Versionen der Unit (im SCM) zeigt also auch nur dort Änderungen.

Wichtiger fände ich es statt dessen, genügend Optionen zur Verfügung zu stellen, so dass die Formatierung einer gesamten Unit akzeptiert und nicht als nachteilig empfunden wird.
Es geht ja nicht darum, dass einem das neue Format gefällt, man will auch echte Änderungen erkennen können bzw. die Formatierung auf neuen bzw. geänderten Code beschränken. Der Rest soll unverändert bleiben.

Cool wäre eine smarte Formatierung im Hintergrund, die den geschriebenen Text fließend optimiert, aber das wird mit Delphi nichts werden, denke ich.
Ich glaube das würde mich wahnsinnig machen.
Thomas Mueller

Geändert von dummzeuch (25. Mär 2020 um 13:25 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.352 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: UnitOptimizer

  Alt 25. Mär 2020, 11:31
Ja, ok, ist auch nachvollziehbar (das mit der Teilformatierung, nicht mit der Smart-Formatierung ).

Mal sehen, ich schaue mir das später mal mit an...
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz