【Neovim】null-lsを導入してElixirのリンターcredoの実行結果を表示する

7876 ワード

先日の記事で Elixirの開発環境としてNeovimの環境を整えた話をしました。

同記事内で ale というプラグインを利用してcredoの結果を表示するという内容に触れていましたが、Neovimであれば null-ls という別のプラグインを使って同じことが出来たので記事にしてみます。

同じことが出来るならどちらでも良い気がするのですが、null-lsの方はlua言語をベースに実装されており、vim-scriptの資産も特になくluaでNeovimの環境を整えている自分には親和性がありそうということで乗り換えてみました。

最終的にこのようにcredoの警告が確認できるようになりました。

Image from Gyazo

null-ls で出来ること

READMEを見ると次のように記載があります。

Unlike the VS Code and coc.nvim ecosystems, Neovim doesn't provide a way for non-LSP sources to hook into its LSP client. null-ls is an attempt to bridge that gap and simplify the process of creating, sharing, and setting up LSP sources using pure Lua.

LSP(Language Server Protocol)の形式に沿っていないツールの出力をLSPの形式に変換してNeovimにbuilt-inされているclientに注入するという役割を担ってくれているようです。

Build-in Sources のドキュメントを見ると、有名どころのフォーマッターやリンターがズラズラと並んでいることが確認できます。

この中にElixirの静的コード解析ツールである credo も記述があり、これにしたがって導入できます。