Hallo Experten,
ich möchte mit D7 einen Skriptsprachen-Editor schreiben, der des code-folding mächtig ist. Einen Editor mit ziemlich viel Schnickschnak und Syntax-Highlightning habe ich schon. Mit dem folding bin ich am überlegen, wie ich das wohl am besten implementieren kann, so dass auch sehr große Dateien schnell bearbeitet werden können und der Editor nicht allsoviel unnötigen Speicher belegt. Ich habe hin und her überlegt, aber eine überzeugende Idee ist mir noch nicht gekommen. Ach ja, einen Parser hat das Teil natürlich schon. Der Text wird dabei zerlegt in Tokens, denen auch eine Bedeutung beigemessen wird (Funktionsdefinition, Variable, Funktionsaufruf, Struktur [wie IF, WHILE usw.], Zahl, Text, Kommentar, Block usw.). Ich kann also Blöcke erkennen, und es würde reichen, Blöcke, die über mehrere Zeilen gehen, zu „folden“. Ist es da zB. besser, ein Array of Pointer zu haben, welches Zeilenweise Informationen zum Folding speichert (also das Array hat immer so viele Elemente wie der Text Zeilen hat, wobei die meisten NIL sind) oder eine verkettete Liste mit diesen Informationen plus der Zeilennummer, auf die sich die Informationen zum folding beziehen, oder gibt es da ganz andere Herangehensweisen?
Habt ihr eine Idee, wie man das am geschicktesten anstellt? Vielleicht kennt ihr auch einen frei erhältlichen Editor (mit Source zum reingucken und abgucken natürlich!), der sowas kann.
LG
Jochen
PS: Ich weiß, es gibt solche Editoren schon, aber ich will ihn nicht als eigenständigen Editor, sondern als integralen Bestandteil eines selbstentwickelten IDE für eine Skriptsprache.