2017-08-12 2 views
0

Ich arbeite an einer ACE-Code-Editor-Komponente, bei der jede Instanz ihre eigenen wechselnden Schlüsselwörter hat, die zur Hervorhebung übergeben werden. Es ist einfach genug, einen vorhandenen Modus zu aktualisieren und den Tokenizer erneut auszuführen (Beispiel: Dynamically update syntax highlighting mode rules for the Ace Editor), aber bei mehreren Instanzen muss ich programmatisch neue Modi definieren und sie auf dem neuesten Stand halten.Dynamische ACE-Editor-Modi

Gibt es einen guten Weg, dies in ACE zu tun?

+0

dies hängt davon ab, wie viel müssen Sie Ihren Modus ändern, wenn Sie die gleiche Regex haben, aber müssen Werte ändern, die es möglich ist, wenn es vollständig dynamisch ist, müssen Sie möglicherweise Ihre Tokenizer von Grund auf neu implementieren –

+0

Ja, es sollte alles eine Regex zu einem allgemeinen entsprechen Muster für einen Variablennamen, dann unterscheiden sich die spezifischen Variablennamen, wenn nach ihnen gesucht wird, zwischen den Instanzen und über t ich. Gibt es dafür ein gutes Muster? – jrdnmdhl

Antwort

1

wenn reguläre Ausdrücke gleich sind Sie Modus erstellen können, wie in der verknüpften Frage beschrieben, dann verwenden

mode1 = new MyMode() 
editor1.setMode(mode1) 

so dass jede Instanz des Editors, eine eigene Instanz von Modus wird