Hallo.
Ich poste das mal hier im Allgemeinen weil es nicht direkt was mit dem GtkTextBuffer zu tun hat.
Ich versuche zur Zeit ein Markdown Syntax Highlighting zu implementieren. Es läuft soweit auch wunderbar, nur nicht sehr performant. Genauer: An sich ist es (denke ich) performant genug, nur mache ich es derzeit so, dass wenn der Text geändert wird, der gesamte Buffer neu "gehiglightet" wird.
Meine Frage ist jetzt, ob ich mich bei dem Re-Highlighten irgendwie auf einen bestimmten Textabschnitt, ausgehend vom Änderungsort, beschränken kann.
Meine Klasse zum Highlighten sieht so aus: http://paste.pocoo.org/show/7T3sPJQ7UO9vqRO0eySB/
Was ich gerne ändern würde, wären die `_on_insert_text` undn die `_on_delete_range`. In den beiden Methoden rufe ich die _update_markdown() (ohne Argument, d.h. Re-Highlighte den ganzen Buffer) auf. Ich würde aber gerne _update_markdown() mit start und end Parametern aufrufen.
Das große Problem hierbei sind verschachtelte Tags. Folgendes ist z.b. erlaubt:
Lorem ipsum dolor sit **amet, consetetur sadipscing elitr, *sed diam nonumy** eirmod tempor* invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
Wenn ich also z.b. zunächst folgendes habe:
Lorem ipsum dolor sit **amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
Im nächsten "Schritt" habe ich
Lorem ipsum dolor sit **amet, consetetur sadipscing elitr, *sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
Dann:
Lorem ipsum dolor sit **amet, consetetur sadipscing elitr, *sed diam nonumy** eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
Da ich eben u.U. teilweise Tags entfernen muss, weiß ich nicht so recht, ob ich mich überhaupt auf bestimmte Textstellen beschränken kann.
Ich hoffe es ist einigermaßen rübergekommen worum es mir geht.
Grüße
edit: Bitte auch Kritik am Code. Mache noch nicht so lange *ernsthaft* Python.