关于用 language server protocol 来对 Python 进行补全的体验。

anaconda-mode支持TRAMP吗? 我为什么没有试出来, 需要额外的配置吗?

想问一下,难道大家用lanuage server protocol没出现过"unsolved import"这个错误吗?

默认支持TRAMP,开箱即用。 如果你没有出现补全结果,可能是你的远程机器封了端口。anaconda-mode需要开启一系列的端口来让远程机器和你本地机器通信。如果这些端口被封禁了的话它肯定就不能work。

这个是 Python language server 的问题:https://github.com/Microsoft/python-language-server/issues/918

结果呢?any solution?

参考我在另外一个帖子的回复。

能参考一下配置吗?

可以在lsp启动后修改checker,python-pylint和python-flake8是flycheck自带的两个checker

(add-hook 'lsp-ui-mode-hook #'(lambda() (setq-local flycheck-checker 'python-pylint)))

把这行配置加进去了还是会有unresolved import 直接导致import sys 之后,使用sys根本就不会补全.并且在lsp-log 里面不断重复找地址

并且我发现一个奇怪的现象,就是在emacs第一次打开py文件时是正常的,如果你编辑一下,他就会重复出现reloading modules就会出现各种问题

是哪一个port?需要在服务器端做什么配置?

python 的 lsp 用的哪个? 这个问题我在 lsp-python-ms 这个包里面已经解决了。

主要是 lsp 的 searchPaths 参数问题。已经合并了,直接使用就行。

1 个赞

lsp用的是Microsoft python language server

贴相关配置吧。什么信息都没有。

我的Microsoft python language server之前是自己下载.NET编译的现在好像改动了,我的lsp-python-ms是如下图

下面这个图是我当初照着Microsoft python language server弄的

先看下 lsp-python-ms 的版本。

另外,这个配置…

use-package 的用法看起来怪怪的。 (when 的这个判断看起来没有任何用处。 还有 (require ...

按照 GitHub - emacs-lsp/lsp-python-ms: lsp-mode Microsoft's python language server 首页的描述,先用最简的配置试试。(先不要加 extra-path 的配置,试了再加。据我的经验,reloading… 和这个有点关系。

port是有随机性的,我记得在三万多。好像需要开一个port段,不能只开某一个port。 服务端好像不需要做什么配置。

版本是1.0.0.0,按照GitHub - emacs-lsp/lsp-python-ms: lsp-mode Microsoft's python language server 首页的描述最简的配置,截图是这样的

这个sys内置的包还是会出现unresolved import

1 个赞

你的 lsp-python-ms 包哪里下载的? 没见过 1.0.0 这个版本。把你的 lsp-python-ms.el 文件 贴出来看看。或者直接使用 github 上的最新版试下。

都是重复的还删除不了