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_enablefalseに設定しましょう。詳しくはヘルプ:help mason-lspconfig-settingsをご覧ください。


以上、mason-lspconfig.nvimのエラーについての備忘録でした。