Neovimの`setup_handlers`のエラーの解消方法
先日Neovimの0.11で変更されたLSP仕様にdotfilesを対応させました。そこで出たsetup_handlers
のエラーの解決方法を備忘録として残しておきます。
遭遇したエラー
Failed to run `config` for nvim-lspconfig
.../eetann/.config/nvim/lua/plugins/lsp/server-register.lua:9: attempt to call field 'setup_handlers' (a nil value)
# stacktrace: - ~/.config/nvim/lua/plugins/lsp/server-register.lua:9 - ~/.config/nvim/lua/plugins/lsp/index.lua:20 _in_ **config**
怒られが発生しているのはこんなコードでした。
require("mason-lspconfig").setup_handlers({ -- ...})
原因
mason-lspconfig.nvimのCHANGELOG.mdを読むと、v2.0.0からsetup_handlers
が無くなったようです。Neovimの0.11からはvim.lsp.config()
で設定し、vim.lsp.enable()
で有効化できるようになったからですね。
対応
require("mason-lspconfig").setup_handlers({ -- ...})require("mason-lspconfig").setup()
MasonでインストールしたLSPの有効化はsetupを呼び出すだけで自動でやってくれるようです。これをオフにするにはautomatic_enable
をfalse
に設定しましょう。詳しくはヘルプ:help mason-lspconfig-settings
をご覧ください。
以上、mason-lspconfig.nvimのエラーについての備忘録でした。