AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Code Folding: Implementierung in eigenem Editor

Ein Thema von hansklok · begonnen am 22. Jul 2020 · letzter Beitrag vom 22. Jul 2020
 
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
 

 

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 19:34 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