Einzelnen Beitrag anzeigen

hansklok

Registriert seit: 14. Apr 2004
Ort: Karlsruhe
318 Beiträge
 
Delphi 2010 Architect
 
#1

Code Folding: Implementierung in eigenem Editor

  Alt 22. Jul 2020, 10:32
Hallo,

ich bin grade dabei mir einen eigenen Code Editor zu schreiben. Ziel ist es, dass ich etwas dabei lerne und auf nichts vorgefertigtes zurückgreife. Was mache ich bisher? Ausgangspunkt ist ein Quelltext. Diesen splitte ich in ein Zeilen Array in einer TPaintBox Subklasse um den Text jeder einzelnen Zeile zu erhalten. Nun füge ich jede dieser Zeilen in ein weiteres EditorLines Array hinzu. EditorLines ist ein Array vom Datentyp EditorLine. Eine EditorLine hat einen Index (Verweis auf die Originale Codezeile im Zeilen Array), eine Eigenschaft IndentationLevel (Einrückungsgrad), die Boolean Eigenschaft Visible und die Methode Draw zum zeichnen der Zeile selbst. TPaintBox zeichnet immer nur die sichtbaren Zeilen (sichtbar meint, alles, was in die Abmessungen der TPaintBox passt), um Systemressourcen zu sparen. Soweit funktioniert das alles sehr gut.

Nun zum Thema: Nach ausführlicher Internetsuche, könnte ich keinen Beitrag zur Technik von Codefaltung (Code Folding) finden. Hat jemand Erfahrung damit und könnte die Technik dahinter erläutern? Wie Code Folding visuell funktioniert, ist mir natürlich klar, mich interessiert, wie man so etwas in den Editor implementieren könnte.

Freue mich auf Anregungen, Danke.
  Mit Zitat antworten Zitat