Neovim は Vim とは異なり、プラグインを書く際に言語ごとのインターフェイスというものは存在せず、MessagePack-RPC で Neovim とは独立して動くプラグインと通信をして色々と操作するというモデルのようです。 ということで、Haskell で Neovim のプラグインを書いてみました。 TL;DR GitHub に動作するサンプルコードを置きました。ビルドして実行すれば以下のように動きます。 説明など nvim-hs という Neovim のプラグインプロバイダーを利用して実装しました。このパッケージにも丁寧な説明が書かれているのですが、私は Neovim も Vim もプラグインを書いたことがないので、勝手がわからず結構つまづきました。 ひとつ目はファイルの構成です。