Neovimの設定回りをlua化した
Posted
昨日はまじで仕事する気がでなくて泣く泣く有給を取ったが、やることがなかったのでNeovimの設定をlua化してみた。
一日で終わるか不安だったが元々の設定がモジュールとして分離されていたため、部分的にlua化→動作確認というプロセスが踏みやすくて3時間くらいで終了した。
手順は次のサイトを参考にしながらやった。
[nvim-lua-guide-ja/README.ja.md at master · willelz/nvim-lua-guide-ja](https://github.com/willelz/nvim-lua-guide-ja/blob/master/README.ja.md)
こことNeovim本体のAPIDocumentationを見れば少なくともluaでどうやって書けばいいかはわかったので想像より簡単に作業ができた。
しかし、VimScriptじゃないとだめな部分というのはまだ存在するようで、Luaの中からVimScriptを呼び出して解決している部分もまだ多く残っている。
移行した感想は次の通り
-
Luaというのがシンプルな言語仕様かつ、関数をオブジェクトとして使えるプログラミング言語で僕好みで、うれしかった
-
Luaを書くのははじめてではなく、i3wmの設定かウィジェットを書くのに使ったことはあるが、しっかり書いたことはなかった
-
VimScriptではやりにくかった書き方がluaではサクッと出きて僕フレンドリーな設定ファイルができた
-
とはいえ標準APIにTableをcombineする実装やmapする実装がなくて(◞‸◟)だったので、自分でそういったFPライクな書き方ができるモジュールを作ったりはした(楽しかった)
-
設定ファイルという側面より実行されるコードという側面がめちゃくちゃ強くなったので、テスト書ける部分は書くようにしたい。
-
Luaのテストはどうやって書けばいいんだろうみたいなのを調べるのに頭が回らなくて今回はやってない
-
CIとかも回せるとNeovimに内蔵されたLuaのversion↑とかにも自信を持って追従できれ嬉しいかもね
-
普段書いてるRustやTypeScriptに比べてLintやFormatterなどの情報が弱い気がした。どうやってやればいいかわかってないので、大手のLuaプロジェクトを調査したほうがいいかも