想试试最新的 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不经常更新,我直接修改源代码 。缺点就是每次更新完mspyls后都得再改一次,因为时间关系,没有研究过 lsp 还有 mspyls 的自定义设置。
有个PR 在review,可以配置用哪个server,给了comments还没修改。
加了一个新的配置选项:lsp-python-ms-auto-install-server
.