有现成的包可以亮度正则字符串的不同成分吗?除了https://github.com/dgutov/highlight-escape-sequences能高亮转义字符之外…
VSCode:
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]
括号及其内容,用来匹配的表达式可能长这样 \\[[^]]*]
。但如果想要高亮后面这个表达式本身呢?恐怕就不怎么好处理了,更遑论还有许多复杂的写法。
除了实现上的困难,性能上也有代价,因为无法区分普通字符串和正则表达式,所以一视同仁全部都当做正则对待。