[LSP] 试用Python开发新包 lsp-pyright

是时候弄个 vscode-as-a-language-server 了

1 个赞

多谢,貌似没起作用,也许是我的配置不对吧。

最后直接加了个 pyrightconfig.json 来搞定了:

你是增加这个配置吗?typeshedPath

不是的,我就修改了一下 executionEnvironments, like:

{
  "include": [
      "tools"
  ],

  "exclude": [
    "**/node_modules",
    "**/__pycache__",
    "src/experimental",
    "src/typestubs"
  ],

  "ignore": [
    "src/oldstuff"
  ],


  "pythonVersion": "2.7",
  "pythonPlatform": "Linux",


  "reportMissingImports": true,
  "reportMissingTypeStubs": false,

  "executionEnvironments": [
    {
      "root": "tools",
      "extraPaths": [
          "tools/bin"
      ]
    }
  ]
}

pyright能自动识别吗?还是得在lsp-pyright中配置。另外,这是每一个project的root里写一个这样的配置文件对吧

我没试过其他工程,至少在我这个工程里面,不需要修改 lsp-pyright,在 root 写这个配置,就可以自动识别了。

两种方式都支持,优先读取 json 配置。

刚才试了, 这个没有用呀. 我不太想每个project都写这么个配置文件. 偏向于用这种方式, 但是目前这个settings不起作用

我是用的more-settings分支, 然后这样设置: (setq lsp-pyright-extra-paths '(“/path/to/current_project”))

这个变量是vector,不是list,应该这样设置:

(setq lsp-pyright-extra-paths ["/path/to/current_project"])

我这样子设置之后, ‘lsp-workspace-restart’ 还是不行

我的环境下也不行,后来加了个 pyrightconfig.json 就可以了,没细研究。

试试 (setq lsp-pyright-auto-search-paths nil) 呢?还不行就用 pyrightconfig.json。

我用的一个minimal pyrightconfig.json如下:

{
    "executionEnvironments": [
        {
            "root": ".",
            "extraPaths": [
                "."
            ]
        }
    ]
}

添加这个文件, 然后lsp-workspace-restart 还是不行, 是这里不能用 ‘. ’ 表示当前文件夹嘛? 我试过全路径也不行.

这个肯定是起作用的,lsp-pyright中的配置确实还有问题。

补全的配置问题应该已经解决,PR正在review中。

这个效果怎么样,如果与mspyls相差无几的话我近期就换过来试试

效果还行,功能还是比不过mspyls,其他方面都还不错。client我们也还在改进,欢迎尝试。

lsp-pyright已经通过melpa审核,可以用直接安装了。另外,自动搜索路径和补全也已经解决,请试用。

1 个赞

确认. 自动补全和搜索路径已经搞定, 还有一个问题: workspace/symbol 这个功能没有加进来嘛? (lsp-ivy-workspace-symbol)

什么意思?lsp-ivy-workspace-symbol 不是应该是个人配置的事吗?