lsp-java 为什么每次启动都扫描所有的 java 项目?

lsp-java 每次启动都会扫描 lsp-session 里所有的 java 项目,mode-line flycheck 里的 warning, error 计数都是所有的 java 项目的总和。另外 lsp-java 下 company-mode 卡顿也十分严重。

相较之下,lsp-haskell 就不会启动一个项目连带扫描了所有其它 haskell 项目,company-mode 也十分顺畅。

试用 eglot,java company-mode 也十分流畅,只是有很多不完善的地方。

How do I force lsp-mode to forget the workspace folders for multi root servers so the workspace folders are added on demand?

Use the following snippet:

(advice-add 'lsp :before (lambda (&rest _args) (eval '(setf (lsp-session-server-id->folders (lsp-session)) (ht)))))
1 个赞

非常感谢,company 卡顿问题也得到解决。