2017-08-12 2 views
-4

Ich arbeite an einem ACE-Editor-Modus basierend auf dem vorhandenen R-Sprache-Modus. Es gibt eine Reihe von Ausdrücken, für die ich eine spezielle Syntaxhervorhebung verwende, aber ich möchte sie nicht erkennen, wenn dieser Ausdruck als Verweis auf den Argumentnamen angezeigt wird. Irgendwelche Vorschläge werden sehr geschätzt ...ACE-Editor: Ausdrücke, die keine Verweise auf benannte Argumente sind

Als ein Beispiel sagen Sie, dass der Ausdruck, den ich versuche zu entsprechen, "my_var" ist.

Ich will es die folgenden Fälle entsprechen:

3 * (my_var + 2)

some_fun(my_var)

some_other_fun(a=my_var)

Was ich nicht will ist passend, wenn "my_var" name ein Argument

some_fun(my_var=1)

Antwort

1

Wenn ich Sie richtig verstehe, möchten Sie Ihren Highlight-Modus bearbeiten, um spezielle Tags einzufügen, aber diese Hervorhebung für Parameternamen zu deaktivieren. Als Beispiel

circle(cxy=c(10,20), r= 30, filter=filter(...), ...) 

sollte nur das zweite Auftreten von Filter markieren.

Wenn ja, dann unter der Annahme, dass der Benutzer ein R-Programmierer ist die < verwendet - für die Zuweisung und nicht =, das Update ist einfach: insert into this.rules Abschnitt Ihrer xxx_highlight_rules.js Datei.

{ 
     token: ["identifier", "keyword.operator"], 
     regex : "([a-zA-Z.][a-zA-Z0-9._]*\\b)(=)" 
}, 

über dem onMatch: Funktion (Wert) die die speziellen Tags identifiziert.

Für ein Beispiel siehe: //github.com/mslegrand/ptRAceBldr/blob/master/TrestleTech/ace/lib/ace/mode/ptr_highlight_rules.js

+0

Eine interessante Lösung interessanter durch die Tatsache, dass in diesem Anwendungsfall gemacht, es wahrscheinlich durchgeführt keine Zuordnung sein. Danke, ich werde über deinen Vorschlag weiter nachdenken ... – jrdnmdhl

Verwandte Themen