亲测:lsp-python-ms vs pyls 性能

可以设置cache吗?

我记得 lsp-python-ms 配合 doom-modeline ,在索引会有提示,在 doom-modeline 还有个进度条。

目前忙测的结果是,目录大了 mspyls 就不工作了,还没有研究是目录大了没索引完还是直接不索引了?

研究了下 lsp-python-ms, 发现 initializationOptions 里面加上 :analysisUpdates t, 会返回索引的进度。

回复类似

(:jsonrpc "2.0" :method "python/reportProgress" :params
          ["Analyzing in background, 86 items left..."])

server-notification Mon Mar 30 23:11:24 2020:
(:jsonrpc "2.0" :method "python/reportProgress" :params
          ["Analyzing in background, 72 items left..."])

server-notification Mon Mar 30 23:11:24 2020:
(:jsonrpc "2.0" :method "python/reportProgress" :params
          ["Analyzing in background, 58 items left..."])

server-notification Mon Mar 30 23:11:25 2020:
(:jsonrpc "2.0" :method "python/reportProgress" :params
          ["Analyzing in background, 39 items left..."])

server-notification Mon Mar 30 23:11:25 2020:
(:jsonrpc "2.0" :method "python/reportProgress" :params
          ["Analyzing in background, 37 items left..."])

欢迎使用 Nox -- 轻量级 LSP 客户端 - #69,来自 manateelazycat 搞定

1 个赞

已经添加到Nox对mspyls的支持,方便大文件的时候看一下进度,要不还以为mspyls挂了。

1 个赞

测试结果是目录和文件太多,索引很慢很慢………

是这个 spinner 进度条吗?好像不是太明确,只能大概表示还在活动。

是 spinner,在索引时会显示。*lsp-log* 里会打印详细信息。

你是mac吗?

mscOS Catalina

感觉好看,能介绍一下用了什么ui方面的包么?

目前在Mac catalina 下使用nox+lsp-python-ms体验很好,很流畅。
今天在Win10 上用,nox 好像还得其他针对windows的配置、不然会造成emacs冻结。

欢迎发送补丁

我在 windows 10 上用过一段事件,暂时没发现问题。

以我目前的水平也只能是进行一些简单配置,发补丁还得仰望各位大佬 :grin:
@smallzhan 能参考下你的配置吗?

就老王的官方配置,只是设置了下 nox-python-path 和 nox-python-server-dir 不过我发现win10 下面 mspyls 容易占用比较高的内存。你看是不是这个问题。 话说我看到你写的使用 nox + lsp-python-ms? 是写错了吧,应该是 nox + mspyls 吧。

多谢指正。是mspyls,我还以為lsp-python-ms 就是全称。原来这个是配合lsp-mode用的,很容易搞混。

有没有win10 下 emacs 27 的配置?我的设置后完全没有反映: 但lsp-log显示已经加载了呀:

(use-package lsp-python-ms
  :init
  (setq python-shell-interpreter "e:/anaconda3/Scripts/ipython.exe")
  (setq python-shell-exec-path "e:/anaconda3/python.exe")
  :defer t
  :demand
  ; :ensure nil
  :hook (python-mode . lsp)
  :config
  (setq lsp-python-ms-dir
        (expand-file-name "E:/gitrep/python-language-server/output/bin/Debug"))
  (setq lsp-python-ms-executable
        "E:/gitrep/python-language-server/output/bin/Debug/Microsoft.Python.LanguageServer.exe"))

加载显示:

Command "pyls" is present on the path.
Command "pyls" is present on the path.
Found the following clients for e:/gitrep/xxx/xxx.py: (server-id pyls, priority -1), (server-id mspyls, priority 1)
The following clients were selected based on priority: (server-id mspyls, priority 1)

此后蹦出一个莫名的json错误:

File mode specification error: (json-readtable-error 80)

是不是编译成debug的不行啊?