h3pei.tech
お仕事のご依頼
← プロダクト
2024年〜

go-to-factory-bot.nvim

モデルファイルや `create` / `build` の呼び出し行から factory_bot の定義ファイルへジャンプする Neovim プラグイン。

  • Lua
  • Neovim
  • Tree-sitter
go-to-factory-bot.nvim のデモ

課題

Rails のテストを読み書きしていると、create(:user, :admin, name: "Bob") のような行を見て「:admin trait は何を定義しているんだっけ」「指定していない属性のデフォルトは?」と factory の定義を確認したくなります。そのたびに spec/factories/ を探しに行くのは、細かいながら積み重なる手間です。

アプローチ

:GoToFactoryBot コマンドで factory の定義ファイルへ直接ジャンプできるようにしました。

  • テストファイル内の create/build などの呼び出し行から、対応する factory ファイルへジャンプ
  • モデルファイル (app/models/user.rb) からも対応する factory (spec/factories/users.rb) へジャンプ
  • app/models/admin/user.rb のような名前空間付きモデルは spec/factories/admin/users.rb を優先
  • Treesitter で Ruby を解析するため、複数行にまたがるメソッド呼び出しやハイフンを含む factory 名にも対応

rspec.nvim と同じく、日々の Rails 開発で自分が感じた小さな摩擦を道具で潰したプラグインです。