好了 zsbd
我日常使用的就是Golang,什么都不用配置。
非常赞同这一点。
是的,我平时使用的几个server(python, go, rust)都不需要进行任何的配置。
Rust 默认带了 rls 这个后端,不配置eglot 的话,每次 M-x eglot 都要先选后端。(我用 rust-analyzer)
有办法卸载 rls 吗?
你是发行版自带的rust吗,用rustup安装可以自行选择安装的组件吧
就是用的官网的下载链接装的 Getting started - Rust Programming Language
Windows 10:
➜ ~ ✗ which rls
C:\Users\xxx\.cargo\bin\rls.exe
➜ ~ rls --version
error: 'rls.exe' is not installed for the toolchain 'stable-x86_64-pc-windows-msvc'
To install, run `rustup component add rls`
➜ ~ ✗ rustc --version
rustc 1.62.1 (e092d0b6b 2022-07-16)
不该呀,我跟你一样,同时安装了rust-analyzer以及rls,默认启用的就是rust-analyzer。你更新一下eglot看看。而且eglot的源码里面,rust-analyzer也是排在rls前面,优先去选择的。
不是 Eglot 的问题,是因为系统中同时找到了 2 个后端。我一直用的最新的版本 eglot。
重新通过 winget install Rustlang.Rustup
安装 rustup,安装过程如下:
确实没看到安装 rls,但 ~/.cargo/bin
下确自带了 rls.exe
看来只能重命名或者删除这个文件了。
这个可以直接改 eglot-server-programs
吧
因为你是用M-x eglot
,也就是interactive方式启动的eglot,这时eglot就会让你选择用哪个server(在有多个server可用的情况下)。我猜 @cabins 是用mode hook的方式?
试了下,估计下载时是全部下载了,可能是 rustup 的 bug,也有可能是刻意为之,只能手动设置一下来 work around 了
可以的,我一直是这样设置。
(add-to-list 'eglot-server-programs '(rust-mode . ("rust-analyzer")
这里讨论的是零配置的情况下,rls 会有干扰。
如果 rust 社区已经不推荐 rls 的话,就不应该自动加 rls 到 ~/.cargo/bin
里面。
默认也可用, 不过它提供不少参数调教, 我会用到几个.
emacs的特色就是扩展性和可配置性, 如果很难配置就不对了.
对,我的确用的是mode hook。
原来如此。估计等我用的再复杂些,就用到了。
同意。对 eglot 和 Emacs 都是负担。
内置也就是省去安装这一步,从此也就跟 Emacs 绑在一起了。假如用户想要修改调试打补丁,或搭配旧版 Emacs 使用,都很不方便。
在以前,安装的确坑了不少新手,但现在已改善了许多。
估计以后论坛会多一种问题:我怎么让emacs加载最新版eglot?
但是很多人不会玩load-path,哈哈哈哈
自主可控还得看lsp-bridge。