默认就会对require
和provide
的feature着色。不过elispfl恰好把provide和require的颜色改成了和他们接受的参数的一样。
这个commit加入了elispfl-exclude-rule-functions
允许用户自定义排除elispfl
高亮的规则,同时把provide和require加入了排除规则里, 现在应该会用默认着色处理他们了
默认就会对require
和provide
的feature着色。不过elispfl恰好把provide和require的颜色改成了和他们接受的参数的一样。
这个commit加入了elispfl-exclude-rule-functions
允许用户自定义排除elispfl
高亮的规则,同时把provide和require加入了排除规则里, 现在应该会用默认着色处理他们了
还有list也有问题
list那问题我没动,因为不太好判断具体情况。比如eval和宏定义就要用到quote
还是改了, 似乎用宏基本都用backquote了
试用了下,还是highlight-defined
更完善更稳定,性能就不清楚了,直观感受差别不大。
还没上elpa吗
讲道理,elispfl和highlight-defined的matcher都一模一样的,可能highlight-defined内置的face比较多吧。
另外highlight-defined似乎也会有lazycat提到的require,provide和feature染上同一个颜色的问题
想用elpa可以用这个
不知为何,我这里 ielm 的高亮不工作
我的配置:
(use-package elispfl
:straight (:host github :repo "cireu/elispfl")
:hook ((emacs-lisp-mode . elispfl-mode)
(ielm-mode . elispfl-ielm-mode)))
在 emacs-lisp-mode
下工作正常。在 ielm 里手动开关 elispfl-ielm-mode
也没有效果。
ielm执行一行的代码,回车后会被ielm自己的高亮覆盖掉。好像ielm那个覆盖的逻辑挺复杂的,我就没管
我这里在没回车的时候也不会高亮,但是查出原因了,我需要先启用 elispfl-mode
,再启用 elispfl-ielm-mode
才会有效果。把那个 hook 的函数改了个
(lambda ()
(elispfl-mode)
(elispfl-ielm-mode))
就好了。可能一般都是先在 emacs-lisp-mode
里写点东西(顺便就启用了 elispfl-mode
),再打开 ielm,所以不容易发现这个问题。
这的确是个问题,我修复一下
低级错误,复制粘贴的时候忘记把mode variable的变量也改过去了……
从你这截图里看,我不明白为什么 (booleanp sym)和(fboundp sym)的颜色不一样,不都是函数调用吗?
fboundp is a function defined in data.c.
booleanp is a compiled function defined in subr.el.
这就是区别,一个Lisp函数和一个C原子函数的区别
很奇怪,把elispfl-mode加到emacs-lisp-mode-hook里面不生效,按照readme里面的usage来倒是可以的。。。不知道是不是emacs29改了什么东西