Hallo!
Ich habe im Hintergrund ein wenig am Sourcecode von SynEdit gearbeitet und zwar an der Lazarus-Version. Ziel soll es sein, einen Codestamm für Lazarus und Delphi gleichermaßen zu verwenden. Im Moment kompiliert der Code aus dem Freepascal-
SVN unter Delphi 7, hat aber natürlich noch viele Macken.
Zum Verständnis, warum ich damit angefangen habe: Ursprünglich entstand SynEdit für Delphi und zwar in einer reinen
ANSI-Version. Davon spalteten sich zwei Zweige ab: Der eine für die Lazarus-LCL und der andere als UniSynEdit für
VCL und
CLX Cross-Compile. Beide Forks begannen etwa 2003 oder 2004 damit,
Unicode zu implementieren. Das ist beiden auch gelungen. Doch dann blieb der Delphi-Zweig entwicklungstechnisch hinter dem Lazarus-Zweig zurück. So hat letzterer z.B. schon ein funktionierendes Codefolding eingebaut, ersterer nicht. Desweiteren wurde bei der LCL-Version viel am Undo/Redo und den Blockoperationen gearbeitet.
Zusammengefasst ist die LCL-Version inzwischen eine ziemlich runde Sache. Eigentlich viel zu schade, um sie dem Delphi-Ökosystem vorzuenthalten. Leider unterscheiden sich der Freepascal-Compiler und der Delphi-Compiler (ich red dabei immer von Delphi 7) erheblich in den unterstützten Features. Daher lässt sich der originale LCL-Source von SynEdit nicht unter Delphi kompilieren. Da muss man ein bisschen umbiegen. Ich hab das jetzt via Compilerschalter gelöst sodass der selbe Codestamm sowohl vom DCC als auch vom FPC kompiliert werden kann.
Das größte Problem ist, dass sich diverse LCL-Vorfahrklassen erheblich von ihren
VCL-Pendants unterscheiden. So verhält sich z.B. ein TCanvas oder TFont anders als die gleichnamige Klasse in Delphi. Im Ergebnis zeichnet sich ein TSynEdit im Moment ein wenig shittig:
Screenshot.
Darum möchte ich hier mal einen Aufruf starten, ob vielleicht ein paar Leute mit mir zusammen an dem Projekt arbeiten wollen. Alleine schaffe ich es sicherlich auch
irgendwann aber mit reichlich Zeitreserve. Ich würde mich sehr freuen wenn sich jemand melden würde.
Grüße
Cody