- 使用 lsp-mode
- 使用 eglot
- 都用
- 都不用
0 投票者
0 投票者
lsp vs eglot
看了一下两者的作者
好像明白了人们为什么会吐槽lsp-mode
看好 eglot 吧
看起来大家比较看好lsp-mode呢。
eglot功能足够+零配置,挺好的
eglot可以做到完全零配置是因为他牺牲了一些server端提供的spec以外的功能,举例像是ccls这样提供非常丰富功能的server,对于这些特定的server终究还是需要安装特定的client(emacs-ccls , lsp-java)等等才有办法完全发挥力量。当然对于需求不高的人也可以直接无视选择使用eglot。
lsp-mode的质量确实不如eglot,但是这次breaking change之后已经好很多了。如果愿意花时间重新读一次文档就可以知道比以前瘦身非常多。目前还在大改版之后的阵痛期,这时拿他来跟eglot比较其实不太公平。另外lsp-mode很多东西也都慢慢靠像使用emacs内制的插件(flymake, project.el),迟早company-lsp跟lsp-ui等也会被整合进来。
另外大家应该感觉得出来lsp-mode的作者(应该说现任开发者)很有野心,以后emacs其他相关的插件也会被整合相关的功能(先前有人提过的treemacs, modeline, 或是helm, ivy ),这可能才会是决定lsp-mode成败的关键。如果可以设计出一套像是ivy一样漂亮的API的话,整个用户体验跟完整性就可以大幅提升,相反的如果为了强行加入很多华丽的功能而再次增加了专案的复杂度,可能就不看好了
现在不管是eglot还是lsp-mode都还不算成熟,大家静观其变就好,不用太早下定论(说不定哪天会有人开发第三个client也说不定)
按照目前开发者的积极合作的态度还是有机会成功的,至少目前我和treemacs作者帮忙整合了一部分。lsp-java中能看到不少好功能。就像你说的,API的简洁和稳定性是关键之一。拭目以待吧。
试水了下eglot 在python,同lsp比起来,基本零成本上手,就可以用了。。。 我现在在spacemacs中,同时开了anaconda-mode和eglot,因为eglot缺少很多方便的内容。先用起来看看。
编辑过程有些卡顿,暂时还是放弃了,继续沿用anaconda-mode + traad for python.
Update: 关闭flycheck后感受好一些, 可以用。现在python下为 anaconda-mode + traad + eglot 合用,比较不爽的是imenu显示的文件概览比anaconda mode下差很多,罗列了很多不必要的细节,这个是由于后端pyls导致,不知道怎么设置imenu 显示anaconda给出的列表。