eglot合并到emacs主干代码里了是什么情况?

功能差不多。

flycheck默认支持的语言更多,开箱即用做得更好。

flymake默认支持的少,不支持的语言需要自己配置。默认支持的语言配置比较古老,可能指定的命令行程序linter已是非主流.

虽然flycheck更流行,但我用flymake,因为flycheck模块化不好,所有代码都放在一个文件 ( https://github.com/flycheck/flycheck/blob/master/flycheck.el ),有点过重。

如果熟悉命令行程序和Lisp的话,可以把flymake打造得更轻量级一点。例如,只在保存当前buffer时启动检查, flymake 设置为“保存时检查”后遇到的问题:需要重复保存两次才能提示正确的检查结果

flymake定制可以从flymake-proc-allowed-file-name-masks, flymake-proc-err-line-patterns看起。

有一个flymake的优化技巧值得一提, 官方的例子都是把当前buffer复制到一个临时文件。如果采用了之前提到的保存时才启动linter检查的方案,那么临时文件就没有必要了,这样实现简单,性能也更好。这里是给eslint写的实现, https://github.com/redguardtoo/lazyflymake/blob/master/lazyflymake-eslint.el

7 个赞