nvim-lspconfig
#Neovim #LSP #nvim-lsp
概要
様々なLSPサーバー向けに、Neovim組み込みのLSPクライアント(nvim-lsp)に対してデフォルトで便利な設定を提供してくれるプラグインです
vim-lsp向けのvim-lsp-settingsとは異なり、LSPサーバのインストールは自前で実施するか、mason.nvimなどと併用する必要があります。
設定
Language Serverに関する設定
configs.<SERVER_NAME>.setupでLanguage Serverに関する設定ができます。
これによって、vim.lsp.start_client()によるサーバ起動の自動化やcapabilitiesなどのオプションのカスタマイズなどができます。
code:lua
local lspconfig = require'lspconfig'
local capabilities = require('cmp_nvim_lsp').default_capabilities()
lspconfig'denols'.setup {
capabilities = capabilities
}
グローバルな設定の置き換え
code:lua
local lspconfig = require'lspconfig'
lspconfig.util.default_config = vim.tbl_extend(
"force",
lspconfig.util.default_config,
{
autostart = false,
}
)
key bindings
nvim-lspconfigはキーマップに関する設定は提供していないため、vim.keymap.setなどを使用して自前で設定する必要があります。
コマンド
LspInfo - 現在、有効なLSPサーバーに関する情報を表示してくれます
LspStart [<server>] - LSPサーバーを起動してくれます
LspStop [<server> ...] - LSPサーバーを停止してくれます (引数を省略した場合、現在のバッファーに対して有効なLSPサーバーをすべて停止)
LspRestart [<server> ...] - 指定されたLSPサーバーを再起動してくれます
LspLog - LSPのログを表示します
参考
NeovimのBuiltinのLSPクライアントを使う
neovim 0.11からはLSPをほぼネイティブAPIだけで扱える