はじめに
RubyKaigi 2025に参加した際に聴いた「Writing Ruby Scripts with TypeProf」を聴いて、使っているcoc.nvim向けにTypeProfが利用できるextensionが欲しくなったので作っているという話です
つまりKaigiEffectです
経緯
デモを見て欲しくなったので作っている以上のことはないですね
他に理由があるとしたら、普段使っているcoc-solargraphでメソッドの引数が足りない場合などに警告を出してくれない(本当は設定でどうにかなる?)ことが微妙に不満で
デモやスライドを見る限りだとそういった場合でも警告が出力されていそうだったのが欲しくなった要因の一つですね
あとLSP周りの知識は全くなかったのでそのあたりの勉強もかねてやってみたいと思ったのもあるかもしれません
作っているもの
基本的にはGemfileにTypeProfが追加されていることを想定した作りになっています
実装にあたっては以下のcoc.nvimの雛型を使っており、そのおかげでTypeProfとの設定周りに注力できたので良い感じでしたね
定義ジャンプとか参照先の表示、一括リネームなどは一通り動くようになってます
あとメソッドの返り値などを元に型情報が表示されたりとかも
実際に使ってみて
coc-solargraphと組み合わせて試してみていますが、意外といい感じですね
たとえば以下のようにクラス内で定義されていないメソッドが書かれているとエラーが表示されたり

こんな感じで型エラーが表示されていたり

メソッドの引数が多い場合などもエラーが出ており助かってますね

ただ、coc-solargraphに型の情報の表示が取られているのか以下のような引数や返り値をベースに型の情報が表示されないことがあるので、そこだけ何かしら考えないとなぁとなってます

今後
とりあえず、動くものはできたので仕事とかOSS業とかで使いつつ、バグとか遭遇しないか試していきたいですね