高亮正则表达式的不同部分

有现成的包可以亮度正则字符串的不同成分吗?除了https://github.com/dgutov/highlight-escape-sequences能高亮转义字符之外…

VSCode:

46%20PM

https://www.emacswiki.org/emacs/HighlightLibrary

(let* ((dabbrev-check-other-buffers (and arg t)) ; Must be t
       ))

M-x hlt-highlight-regexp-groups-region RET
(\([-a-z*]+\) *\((\(([-a-z]+ *\([^)]*\))\))\).*

EDIT:

Sorry, i dunno, btw…

如果觉得颜色丑的话, 试试我刚发现的 M-x re-builder

这个应该是用来高亮正则匹配的内容,我想高亮的是正则这个字符串本身。一样的颜色的话,实在太难阅读了。

高亮转义字符,或者高亮字符串中用 `' 包括的符号名称,或者李杀老师的十六进制色彩高亮函数 http://ergoemacs.org/emacs/emacs_CSS_colors.html 都是用 font-lock-add-keywords 实现的, 都不算太难,本质上还是正则表达式。

但是正则表达式本身的高亮比较复杂,假设只想简单高亮正则表达式 [a-z0-9] 括号及其内容,用来匹配的表达式可能长这样 \\[[^]]*]。但如果想要高亮后面这个表达式本身呢?恐怕就不怎么好处理了,更遑论还有许多复杂的写法。

除了实现上的困难,性能上也有代价,因为无法区分普通字符串和正则表达式,所以一视同仁全部都当做正则对待。