Benutzerdefinierte Syntax-Markierung für AutoHotkey in Notepad ++

1591
Dan A.

Ich verwende die neueste Version von Notepad ++ ab diesem Beitrag (Version 7.3.3, 64-Bit) mit User Defined Language v.2.1.0.12.

Ich habe Syntax-Hervorhebungen für AutoHotkey hinzugefügt, die vom AHK-Message Board bereitgestellt werden, möchte aber etwas weiter anpassen.

Insbesondere möchte ich für jeden Hotkey die gesamte Zeile mit der gleichen Farbe hervorheben, z.

Benutzerdefinierte Syntax-Markierung für AutoHotkey in Notepad ++

Allen Hotkeys gemeinsam ist jedoch, dass die Zeile mit endet ::.

Ich habe dieses Beispiel gemacht, indem ich ^als Begrenzeröffnung und ::als Begrenzer eingestellt habe. Dies beschränkt mich jedoch nur auf Hotkeys, die die CTRLTaste verwenden. Leerzeichen und Alt-Codes, wie z. B. Zeilenvorschub ( ALT+010), scheinen im Feld "Begrenzer" zu funktionieren, nicht jedoch "Öffnen" (aus offensichtlichen Gründen).

Benutzerdefinierte Syntax-Markierung für AutoHotkey in Notepad ++

Ist das möglich? Irgendeine clevere Idee?

4

1 Antwort auf die Frage

0
JJohnston2

UDL scheint ein wenig restriktiv zu sein, da es einfach gestaltet ist (keine Unterstützung für RegEx, eingeschränkte Unterstützung für benutzerdefinierte Zeichen usw.).

Wenn Sie die AutoHotkey-Syntax geladen haben, können Sie Folgendes als Trennzeichen hinzufügen. Abhängig davon, wo Sie diese Zeichen sonst noch haben, wird es wahrscheinlich Text geben, der unangemessen hervorgehoben wird. Möglicherweise können Sie dies durch Verschachteln einer Art beheben. Zumindest können Sie mit der Erkennung mehrerer Charaktere innerhalb derselben Trennzeichenregel herumspielen.

Öffnen:

^ || $ || ~ || ! || + || # || E || F 

Schließen:

:: || :: || :: || :: || :: || :: || :: || :: 

Es ist auch möglich, die Hotkey-Erkennung an den Anfang der Zeile zu sperren, indem eine ähnliche Syntax für die Hervorhebung von Kommentaren verwendet wird (die ein Kontrollkästchen enthält, mit dem der Anfang der Zeile erzwungen werden muss). Die reguläre Kommentarsyntax kann jedoch nicht verwendet werden Es scheint keine Möglichkeit zu geben, die Hervorhebung von Kommentaren (vor EOL) abzubrechen, wenn das Schließen-Zeichen nicht erkannt wird.

Dies gilt auch für die Delimiter-Regeln. Wenn beispielsweise #in der Open-Regel und ::in der Close-Regel aufgeführt ist, wird eine Zeile mit #IfWinActive Some Programeinem vollständigen Highlight hervorgehoben (vs, das nicht hervorgehoben wird, da die Close-Zeichen nicht erkannt wurden ).

Dies kann auch mit Verschachtelung oder einer speziellen Syntax behoben werden, aber ich konnte auch nicht herausfinden, wie das geht.