我正在使用截至本文为止的最新版本的 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
则带有的行将完全突出显示(而不是由于未检测到关闭字符而未突出显示)。
这也许可以通过嵌套或某些特殊语法来修复,但我也不知道该如何做到这一点。