mason-lspconfig.nvim
わかる人には既に色々見透かされているとは思ってますが、そんなものは気にせず、ど真ん中をぶっちぎります❗
mason-lspconfig.nvim
のお通りだー❗
mason-lspconfig
bridges mason.nvim
with the lspconfig
plugin - making it easier to use both plugins together.
mason-lspconfig
は mason.nvim
と lspconfig
プラグインを橋渡しし、両プラグインを一緒に使うことを容易にするものです。
:help mason-lspconfig.nvim
なんだかとってもややこしいですね😑
This ain't song for the broken-hearted
心に傷を負った者のために これを歌うわけじゃない
Requirements
:h mason-lspconfig-requirements
- neovim >= 0.11.0
- mason.nvim >= 2.0.0
- nvim-lspconfig >= 2.0.0
mason.nvim
はneovim 0.10.x
にも対応していますが、
このmason-lspconfig.nvim
は、さらにもう一歩先に進んでいます。
このページの初掲はApr 1, 2023
ですが、
ここで示すサンプルコードはこれに対応したものに書き換えているのですが...
まあ、なんか...、隔世の感があるぅぅぅ😼
Install
これはmason.nvim
とセットで入れておきましょう。
use {
'williamboman/mason.nvim',
config = function() require 'extensions.mason' end,
+ requires = {
+ 'williamboman/mason-lspconfig.nvim',
+ }
}
nvim-lspconfig
も呼び出す必要があるので、これもプラスで❗
Config
で、これに関するコンフィグもmason.lua
にまとめちゃいます。
require('mason').setup {
ui = {
check_outdated_packages_on_open = false,
border = 'single',
},
}
-- ここに追記
require('mason-lspconfig').setup {
function(server_name)
vim.lsp.enable(server_name);
end,
}
これだけです❗マジです。地味ながらとっても重要なやつです。
ドッジボールで言ったらキルアです❗
It's my life!
これが俺の人生だ!
ただこれ...、かけるオーラの比率をほんの少しでも間違えると途端にアウトなので、 だいぶ気をつけて使ってください...。
mason-lspconfig.setup()
setup({config})
Sets up mason with the provided {config} (see |mason-lspconfig-settings|).
指定された {config} で mason を設定する (mason-lspconfig-settings を参照)。
例えば、それはもうめちゃくちゃ言語プロフェッショナルが扱う場合はmason-lspconfig.nvim
自体を使用せず、
個別にやったほうがきっちりできるはずです。
...ただ、そうでもない場合、言語ごとに一個一個の設定をしていかなきゃならないってなると、
mason-lspconfig.nvim
が提供してくれるお手軽さが損なわれてしまいます。
でも、それではあまりにも勿体ないので、 これを理解した上で使用する分にはいいんじゃないかな〜って思うことにします❗そうします😆
My heart is like an open highway
Like Frankiesaid
I did it my way
俺の心は まるで見通しの良いハイウェイだ
フランキーが歌ったように
俺は 俺の道を行くんだ
For the ones who stood their ground
ここまで来れば、ついにLSP
でお話ができます❗がんばったね🤗
This is for the ones who stood their ground
For Tommy and Gina who never backed down
この歌は 信じて立ち向かった者達に捧げる
決して一歩も引かなかった トミーとジーナのために
LspInfo
試しに、適当なlua
ファイルを開いて
:LspInfo
としてみましょう。

うわっ❗めっちゃお話ししてくれそう🥰
Signature Help
じゃあ、試しにlua
ファイルに記述されているrequire
にカーソルを持っていって、Ctrl-kとしてみましょう。

めっちゃ教えてくれる😆
Diagnostics
なんか嬉しくなってきたので、次はコードにイタズラをしてみましょう。

やーい怒られたぁ🤣
lualine
Diagnositcs
に関連して、もう一個やっておきましょう。おもむろにlualine.lua
を開いて、こんなのを入れてみましょう。
sections = {
-- (中略)
lualine_c = {
{
'diagnostics',
sources = { 'nvim_diagnostic', 'nvim_lsp' },
sections = { 'error', 'warn', 'info', 'hint' },
symbols = { error = ' ', warn = ' ', info = ' ', hint = '' },
},
},
-- (中略)
}
ってやってから、またちょっかい出してみると...❓

lualine
上にError
やWarning
の数が表示されるようになりましたね❗
It's My Life
だいぶ歩いてきました。
これさえやっておけば、他の言語のLSP
を追加したくなった時も "基本的には" mason
を操作するだけで良くなります。
結構な達成感じゃないでしょうか☺️
しかし、この章の冒頭にあるロードマップでも示されていましたが、 これはまだ序章にすぎません❗
Better stand tall when they're calling you out
Don't bend, don't break, baby, don't back down
呼ばれたら立ち向かえ
自分を曲げるな、挫けるな、それから、一歩も引くなよ
I just wanna live while I'm alive
It's my life!
今 この瞬間を生きていたい
これが俺の人生だ!