用 neovim 时发现其在 insert 模式下会有选择地触发错误提示,体验比较舒服,就想用 emacs 实现差不多的效果:
(setq flymake-no-changes-timeout nil)
(defun my/flymake ()
(add-hook 'meow-insert-exit-hook
(lambda ()
(flymake-mode 1)
(setq-local eglot-send-changes-idle-time 0.3)) nil t)
(add-hook 'meow-insert-enter-hook
(lambda ()
(flymake-mode -1)
(setq-local eglot-send-changes-idle-time 0)) nil t))
理想中应该是考虑几种 insert 模式下应该触发检查的情况。
此外,不清楚 eglot-send-changes-idle-time
为 0 会不会有什么性能问题,如果可以在特定的时机立即 send-changes 也许更好,可惜 eglot 的代码看的不是很明白。