:call dein#update()
してみたら、エラーが出てしまいました。:message
してみると以下のような出力が。
[dein] Error occurred while executing hook: nvim-lspconfig [dein] Vim(lua):E5108: Error executing lua [string ":lua"]:3: attempt to index field 'pyls_ms' (a nil value)Lua が pyls_ms を読み込もうとしたんだけれど値が nil でした、ってことです。
え、もしや、と思って検索すると、https://github.com/neovim/nvim-lspconfig/issues/1073で、Python3で使っていると Error 134を出してクラッシュする、というようなことが書いてあります。
それに対して、pyls_msはpylance/pyrightに引き継がれていてMicrosoftはメンテナンスを放棄しているので、pyrightかpylspに切り替えることを推奨します、とのこと。
pyls_ms is borderline abandoned by microsoft (in favor of pylance/pyright), I would recommend switching to pyright or pylsp (`pyls is also abandoned) I'll probably remove pyls_ms shortly. It's not a bug in the built-in client (which this repo is not, this repo is just the basic settings we send to the language servers), it's likely a bug in pyls_ms that will never be fixedということで、pyls_ms.luaはすでに削除されてしまっていたのでした。実際、たしかに時々LSPによる補完が効かないことがあって、なんでかなぁと思ったり、NeovimはおろかChromeとか起動しているすべてのアプリを巻き込んでクラッシュしたりということもあったので、潮時なのかもしれません。ということで候補なのですが…。
pylspことPython LSP ServerはJediをエンジンとして利用しているので、せっかくJediを離れてpyls_msにしたのにまた戻ることになります。補完速度的にも若干遅い気がしますし。
pyrightはpyls_msと同じMicrosoftから提供されていますが、使用するためにはNode.jsを別途インストールする必要があるようです。
仕方ないので、Node.jsの現行推奨版である14.17.3-x64 LTSをインストールします。ただ、Chocolateyを含むビルドツールも必要に応じてインストールする、というオプションはチェックをしないでおきます。PythonもVisual Studio 2019もインストールしてあるし。
インストールが終了したら、新規にコマンドプロンプトを開いて動作を確認します。
C:\Users\kats$ node --version v14.17.3 C:\Users\kats$ npm --version 6.14.13動くようなのでpyrightをインストールします。
C:\Users\kats$ npm install -g pyright C:\Users\kats\AppData\Roaming\npm\pyright -> C:\Users\kats\AppData\Roaming\npm\node_modules\pyright\index.js C:\Users\kats\AppData\Roaming\npm\pyright-langserver -> C:\Users\kats\AppData\Roaming\npm\node_modules\pyright\langserver.index.js + pyright@1.1.158 added 1 package from 1 contributor in 1.015spyrightを起動してみると、
C:\Users\kats$ pyright No configuration file found. No pyproject.toml file found. stubPath C:\Users\kats\typings is not a valid directory. Assuming Python platform Windows Searching for source files Auto-excluding C:\Users\kats\.cache\dein\.cache\init.vim\.dein\test\test-files\python\with_virtualenv\env Auto-excluding C:\Users\kats\.cache\dein\repos\github.com\dense-analysis\ale\test\test-files\python\with_virtualenv\env Skipping recursive symlink "C:\Users\kats\AppData\Local\Application Data" -> "C:\Users\kats\AppData\Local" Skipping broken link "C:\Users\kats\AppData\Local\ElevatedDiagnostics" Auto-excluding C:\Users\kats\Projects\JupyterLab Auto-excluding C:\Users\kats\work Found 11346 source files Emptying type cache to avoid heap overflow. Heap size used: 1537MB Emptying type cache to avoid heap overflow. Heap size used: 1823MB Emptying type cache to avoid heap overflow. Heap size used: 2108MB Emptying type cache to avoid heap overflow. Heap size used: 2381MB Emptying type cache to avoid heap overflow. Heap size used: 1538MB Emptying type cache to avoid heap overflow. Heap size used: 1734MBなにやらカレントディレクトリ以下のすべての*.pyファイルを検索してキャッシュしているようです。
それはさておき。
Neovim側では、これまで使用していたpyls_msの設定を削除して、pyrightの設定をdein.tomlに追加します。
nvim_lsp.pyright.setup{ }ここに記入する設定は、CONFIG.md#pyrightに説明されています。が、基本的にはパスさえ通っていれば特に設定の必要はなさそうです。
dein.tomlを保存してからNeovimを起動し直すと、こころなしかpyls_msのときよりも起動が早いようです。遅延発火(lazy)はしていないので、これはNode.jsをインストールしてまで導入したかいがあったかもしれません。
0 件のコメント:
コメントを投稿