我正在尝试修复 Emacs 中一个与高亮缩进相关的正则表达式。目前它的工作方式是通过每隔 %s 个空格进行一次高亮。
"\\( \\) \\{%s\\}"
以下是关于一些Verilog代码行为的示例结果:
当前的正则表达式对于每行开头的缩进工作得很好。然而,有一个不良后果是,序列中的空格也被正则表达式匹配,但它们并不在行的开头。我想修改正则表达式以匹配上述行为,但仅限于行的开头。这是我想要的(我不得不手动绘制):
我尝试过以下方法。从结果可以看出,行为不正确。
"^\\(\\( \\) \\{%s\\}\\) \\{1,\\}"
结果:
还尝试了
"^\\(\\( \\) \\{%s\\}\\)\\{1,\\}"
结果:
下面是相关代码,但很抱歉这不是一个可用的示例。请使用上面的链接查看可用示例。
(set (make-local-variable 'highlight-indentation-current-regex)
(format "\\( \\) \\{%s\\}" (- highlight-indentation-offset 1)))
(font-lock-add-keywords nil `((,highlight-indentation-current-regex
(1 'highlight-indentation-face))))
"^\(\( \) \{%s\}\)\{1,}"
可以工作吗? - Malabarba"^\\(\\(\\ \\)\\{%s\\}\\ \\{%s\\}\\)+"
?抱歉,我没有安装这个模式,只是在猜测。可能会有一个%s
的问题,因为你需要指定两次。但是根据使用它的函数的具体情况,你也可以(也许)将其移动到最外层组之外。 - user797257