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のエラーについての備忘録でした。