Visual Studio Code で Ruby Solargraph 拡張機能を使っている際に、Rails の require 記述に対して RequireNotFound エラーが出る場合の対処方法

状況

こういうやつです。

gyazo.com

結論

  • .solargraph.yml を Rails のルートに作成し、そこの除外設定を書きます
    • 具体的な記述内容は以下のとおりになります
include:
  - '**/*.rb'
exclude:
  - vendor/**/*
  - '.bundle/**/*'
reporters:
  - rubocop
require:
  - actioncable
  - actionmailer
  - actionpack
  - actionview
  - activejob
  - activemodel
  - activerecord
  - activestorage
  - activesupport

なぜこれでいいのか

  • VS Code の Solargraph 拡張機能における require_not_found の実装が甘い らしく、require_not_found をチェックの対象(== reporters)から意図的に除外することで、このエラーは出なくなるから
    • 言い換えれば、reporters として rubocop ということであり、その内容を .solargraph.yml に明示的に記述している
  • exclude というキーと値をを指定しているのは、gem の中身まで solagraph の対象とされてしまうと重くなってしまうから
Powered by はてなブログ