Notepad++ 中 AutoHotkey 的自定义语法突出显示

Notepad++ 中 AutoHotkey 的自定义语法突出显示

我正在使用截至本文为止的最新版本的 Notepad++(版本 7.3.3,64 位)和用户定义语言 v.2.1.0.12。

我添加了 AutoHotkey 提供的语法高亮功能AHK 留言板,但希望进一步进行定制。

具体来说,对于任何热键,我都希望以相同的颜色突出显示整行,如下所示:

在此处输入图片描述

但是,所有热键的唯一共同点是行都以 结尾::

我已通过将分隔符设置^为开始分隔符和::结束分隔符来完成此示例,但这限制了我只能使用使用该CTRL键的热键。空格和 alt 代码(如换行符 ( ALT+010))似乎在“结束分隔符”字段中有效,但在“打开分隔符”字段中无效(原因显而易见)。

在此处输入图片描述

这可能吗?有什么好主意吗?

答案1

UDL 似乎有些限制,因为它的设计很简单(不支持 RegEx、对自定义字符的支持有限等)。

如果您已加载 AutoHotkey 语法,则可以添加以下内容作为分隔符。不过,根据您在其他地方使用这些字符,可能会出现文本被不恰当地突出显示的情况。您可能能够通过某种嵌套来解决这个问题。至少,它可以让您尝试检测同一分隔符规则中的多个字符。

打开:

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

关闭:

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

还可以通过使用与注释突出显示类似的语法(具有一个复选框,用于强制其从行首开始)将热键检测锁定到行首,但是您不能使用常规注释语法,并且如果没有检测到关闭字符,似乎没有办法取消注释突出显示(在 EOL 之前)。

这也适用于分隔符规则...例如,如果#在打开规则中列出并::在关闭规则中列出,#IfWinActive Some Program则带有的行将完全突出显示(而不是由于未检测到关闭字符而未突出显示)。

这也许可以通过嵌套或某些特殊语法来修复,但我也不知道该如何做到这一点。

相关内容