Table of Contents
Language Server Protocol
Language Server ProtocolはMicrosoftが公開した仕様でテキストエディタやIDEで共通的に利用する
コード補完や定義ジャンプ、参照の検索などを実現するものです。
Langserver.orgに記載されていますが、様々な言語のLanguage Serverが既に用意されています。
Goで言うとgoplsなどの Language Serverにあたります。
LSPと略されてる事がしばしばありますので、ここではLSPと略して表記していきます
VimでLSPを利用する
共通的な仕様なので、もちろんVimでも利用することが可能です。
導入するためにはVimのプラグインを利用するのですが、様々なプラグインがあります。
こちらのQiitaでも書かれていますが、Vim の Language Server 界が抱える問題があります。
- Language Server のインストールそのものが難しい
- インストールした Language Server を Vim に登録するのが難しい
これらを解決してくれるのが、mattn/vim-lsp-settingsです。
mattnさんご自身のブログにも書かれてますがVim をモダンな IDE に変える LSP の設定を見て設定していきます
インストール
vim-plugを使っている場合、 .vimrcに以下を記述
Plug 'prabirshrestha/vim-lsp'
Plug 'mattn/vim-lsp-settings'
そしてインストール
:PlugInstall
通常のプラグインと同様です。
vim-lspの設定を変更したい場合はGithubを見たり、
:help vim-lsp
でHelpを見ながら設定してください。
僕はmattnさんのVim をモダンな IDE に変える LSP の設定を参考にさせてもらって若干変更してます
Language Serverをインストールする
利用したい言語のファイルを開くと以下の様なメッセージが出力されます
Please do :LspInstallServer to enable Language Server ****
メッセージに従い、:LspInstallServer
を実行すると、画面分割が行われ自動的に必要ファイルのダウンロード、
インストールまでが行われます。
この状態でプログラムを書くと、vim-lspの設定に応じてLSPがコーディングを手助けしてくれます。
vim-lspの設定は、自分の知識の整理と深堀の為、別記事にまとめようと思います。
まとめ
LSPを使うと本来思考を割かなければいけない部分を補完してくれて、各種IDEと同じ様な使用感でVimを使う事が出来ます。
mattn/vim-lsp-settings
を使えば、少し面倒なLSP設定なども引き受けてくれるので、依存して生きていこうと思います。
どうしてもVimから離れられないエンジニアにはオススメですのでぜひLSPを使いましょう