spacemacs 无法启动 mspyls?

想试试最新的 mspyls,但是发现无法启动,每次都进入 pyls。已经按照 python layer 的说明设置 mspyls 作为默认的后端,以前能用(半个月前?)。突然不能用了,挺奇怪的。是不是最近改动了什么,让加载方式发生了改变?我试着恢复 priority 到 1,但是没有作用。 @seagle0128

只改过优先级,没有其他改动。 你把pyls删除了试试

2 个赞

嗯嗯,删除以后重新 build mspyls 后恢复了。

最近 spacemacs 也改了 mspyls 的路径,估计跟那个也有关系。

如果我没记错的话,mspyls 的优先级是高于 pyls 的。

但是 lsp-mode 在决定使用哪个的时候,会先逐一检查它们是否可用。所以,即便优先级高,但是如果 lsp-mode 检查到不可用(例如找不到可执行文件,重载 activation-fn 方法也可以控制可用性),自然就转而启动下一个。

lsp-mode 其实应该给个提醒,告诉用户为何跳过优先级最高的选项。


UPDATE:

瞄了一下 lsp 的代码,是先进行 filter 操作,过程中并不知道高优先级的被跳过了,最后决定启动哪个的时候,才按优先级排序比较。

没错, @seagle0128 最近降低了 mspyls 的优先级 (-2),然后我手动把它恢复到 1 了

除了修改代码,没有自定义变量调整优先级吗?

另外,是我的错觉吗?感觉用 dotnet 3.1 build 的最新版 mspyls 比以前更快了?简直爽歪歪啊,应该不会再切回 anaconda mode 了

lsp-python-ms-update-server可以手动升级server,channel 可自定义。

1 个赞

你好,能说一下在哪修改的么?

因为mspyls不经常更新,我直接修改源代码 :joy:。缺点就是每次更新完mspyls后都得再改一次,因为时间关系,没有研究过 lsp 还有 mspyls 的自定义设置。

有个PR 在review,可以配置用哪个server,给了comments还没修改。

加了一个新的配置选项:lsp-python-ms-auto-install-server.