mason-lspconfig.nvim
This ain’t a song for the broken-hearted
心に傷を負った者のために これを歌うわけじゃない
わかる人には既に色々見透かされているとは思ってますが、そんなものは気にせず、ど真ん中をぶっちぎります❗
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
なんだかとってもややこしいですね😑
No silent prayer for faith-departed
信じるものを失った者への 静かな祈りでもない
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も呼び出す必要があるので、これもプラスで❗
And I ain’t gonna be just a face in the crowd
You’re gonna hear my voice when I shout it out loud
そして 俺はただ群衆の中の ほんのひとつ なんてものにはならない
俺が声を上げれば お前はその声を聞くことになる
Config
で、これに関するコンフィグもmason.luaにまとめちゃいます。
require('mason').setup {
ui = {
check_outdated_packages_on_open = false,
border = 'single',
},
}
+require('mason-lspconfig').setup()
これだけです❗マジです。
地味ながらとっても重要なやつです。
ドッジボールで言ったらキルアです❗
It’s my life!
it’s now or never
これは 俺の人生だ!
今やるしかない
ただこれ…、かけるオーラの比率をほんの少しでも間違えると途端にアウトなので、 だいぶ気をつけて使ってください…。
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が提供してくれるお手軽さが損なわれてしまいます。
でも、それではあまりにも勿体ないので、 これを理解した上で使用する分にはいいんじゃないかな〜って思うことにします❗そうします😆
But I ain’t gonna live forever
I just wanna live while I’m alive
俺だって 永遠に生きるわけじゃない
命のある限り 生きたいだけだ
For the ones who stood their ground
ここまで来れば、ついにLSPでお話ができます❗がんばったね🤗
(It’s my life) My heart is like an open highway
俺の心は どこまでも見通しの良いハイウェイのようだ
LspInfo
試しに、適当なluaファイルを開いて
:LspInfo
としてみましょう。
うわっ❗めっちゃお話ししてくれそう🥰
Like Frankiesaid, I did it my way
フランキーが歌ったように 俺は俺の道を歩いて来た
Signature Help
じゃあ、試しにluaファイルに記述されているrequireにカーソルを持っていって、Ctrl-kとしてみましょう。
めっちゃ教えてくれる😆
Diagnostics
なんか嬉しくなってきたので、次はコードにイタズラをしてみましょう。
やーい怒られたぁ🤣
I just wanna live while I’m alive
命のある限りは ただ生き抜きたいんだ
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を操作するだけで良くなります。
結構な達成感じゃないでしょうか☺️
しかし、この章の冒頭にあるロードマップでも示されていましたが、 これはまだ 道半ば にすぎません❗
この歌は 信じて立ち向かった者達に捧げる
決して一歩も引かなかった トミーとジーナのために
明日はもっと厳しくなる、間違いない
運なんてものは 幸不幸ではなく、自分で拓かなきゃいけないことなんだ
And it’s now or never
これは 俺の人生だ
今やるしかない
俺だって 永遠に生きるわけじゃない
命のある限り 生きたいだけだ
俺の心は どこまでも見通しの良いハイウェイのようだ
フランキーが歌ったように 俺は俺の道を歩いて来た
命のある限りは ただ生き抜きたい
これが 俺の人生だからだ
挑まれたのなら 正面から立ち向かえ
屈するな、自分を曲げるな、それから、一歩も引くなよ