IRBの型補完を有効にする方法

IRB 1.9.0から tompng さんの実装によりIRBでは型補完が使えるようになりました。katakata_irb の機能がIRB本体に入った形です。

今までは正規表現での補完だったため精度があまり良くなかったのですが、型のパワーを得てより速く精度の良い補完になりました。

今のところデフォルトでは正規表現補完を利用するため、型補完を利用するには設定が必要です。

github.com

依存関係

Ruby 3.0.0 以上、RBS、prism が必要です。

prism がない場合メッセージが出て、正規表現補完にフォールバックします。

型補完を有効にする方法

.irbrc で設定

IRB.conf[:COMPLETOR] = :type

環境変数で設定

IRB 1.9.1 以降で有効

IRB_COMPLETOR=type

Railsでは例えば development.rb でこんな感じで有効にできます。

Rails.application.configure do
  console do
    ENV["IRB_COMPLETOR"] ||= "type"
  end
end

irb bin/console などのオプションとして渡す

irb --type-completor

設定の確認方法

irb_info でどの補完を使っているか分かります。

irb(main):001> irb_info
Ruby version: 3.3.0
IRB version: irb 1.9.1 (2023-11-21)
InputMethod: RelineInputMethod with Reline 0.4.0
Completion: Autocomplete, TypeCompletion::Completor(Prism: 0.17.1, RBS: 3.3.0) # 型補完
.irbrc path: /Users/mi/.irbrc
RUBY_PLATFORM: x86_64-darwin21
East Asian Ambiguous Width: 1
=> nil