SteelSeries ワイヤレス ゲーミングヘッドセット ヘッドホン 軽量 ボイスチャット可能 ゲームとスマホを同時接続 Arctis Nova 7P 無線 密閉型 Switch PC PS5 PS4 対応 AIノイズキャンセリング 空間オーディオ Hi-Fiサウンド 調整可能 61561 ホワイト×ブルー
¥26,345 (2025年4月29日 13:12 GMT +09:00 時点 - 詳細はこちら価格および発送可能時期は表示された日付/時刻の時点のものであり、変更される場合があります。本商品の購入においては、購入の時点で当該の Amazon サイトに表示されている価格および発送可能時期の情報が適用されます。)
3月26日、ついにneovim 0.11 が来ました。このリリースでは LSP関連機能が大幅に強化されました。 これで、いよいよプラグインなしで本格的に使えるようになりました。
今回はネイティブAPIだけでどこまでできるようになったのか紹介します。
0.11 で追加されたLSP関連の機能はこちらです。
まだまだあるので、詳しくはリリースノートをご覧ください。 News-0.11
これらのAPIのおかげで、language server自体のインストール以外はほぼなんでもできるようになりました。
まずは0.11までほぼ必須だったLSPプラグインたちをおさらいしていきます。知っていたら次の章まで飛ばしてよいです。
- nvim-lspconfig: コンフィグ集。0.11以前はlanguage serverのセットアップも担当していた。
- mason: エディタツールを管理するパッケージマネージャーのプラグイン。language serverのインストールを担当する。linterやformatterもまとめて管理できる。
- mason-lspconfig: nvim-lspconfig の設定を利用してlanguage serverの起動、セットアップをするプラグイン。masonを介したlanguage serverの自動インストール機能もある。
0.11以前でlanguage serverの自動インストールとセットアップをする設定はこのようになります。
require 'mason'.setup()
local mason_lspconfig = require 'mason-lspconfig'
mason_lspconfig.setup {
automatic_installation = true,
ensure_installed = {'ts_ls', 'lua_ls'},
}
local lspconfig = require 'lspconfig'
mason_lspconfig.setup_handlers {
function(server_name)
lspconfig[server_name].setup {}
end,
lua_ls = function()
lspconfig.lua_ls.setup {
settings = {
Lua = {
diagnostics = {
globals = { 'vim' }
},
}
},
}
end
}
同じことをする0.11以降の設定はこちらです。なお、nvim-lspconfigはこのPRのものを使う必要があります。
require 'mason'.setup()
local ensure_installed = {'ts_ls', 'lua_ls'}
require 'mason-lspconfig'.setup {
automatic_installation = true,
ensure_installed = ensure_installed,
}
vim.lsp.config('lua_ls', {
settings = {
Lua = {
diagnostics = {
globals = { 'vim' }
},
}
},
})
vim.lsp.enable(ensure_installed)
違うのは最後のlanguage serverを設定する部分です。nvim-lspconfigはコンフィグ集としてだけ使われるようになり、 neovimのAPIだけで設定できるようになりました。
このように、masonを使ったlanguage serverのインストール以外は ほとんどneovimのAPIだけで完結するようになりました。
0.11では LSPを使った補完もできるようになりました。 オムニ補完(
)だけでなく、キー入力中の補完も使えます。 autotriggerをtrueに設定するだけで出来ます。
vim.cmd[[set completeopt+=menuone,noselect,popup]]
vim.lsp.start({
name = 'ts_ls',
cmd = …,
on_attach = function(client, bufnr)
vim.lsp.completion.enable(true, client.id, bufnr, {
autotrigger = true,
convert = function(item)
return { abbr = item.label:gsub('%b()', '') }
end,
})
end,
})
参考: Lua module: vim.lsp.completion
autotriggerを有効にすると、挿入モード中にLSPを使った補完が出てきます。
結構ちゃんと動くので、補完系プラグインも無くしてもよいかもしれません。
0.11で入った機能により、実に様々なことができるようになりました。
- language serverのコンフィグを設定する
- language serverを自動的に起動させる
- LSPを使った自動補完を使う
language serverのインストールには対応してないので、まだmasonはあったほうが便利です。しかし、nvim-lspconfigはほぼコンフィグ集として使えるようになりました。かなり嬉しいですね。
不要になったプラグインも増えたので、この機会にdotfilesを見直してみてはいかがでしょうか。
Views: 0