1. とりあえず -D -E -S -P
をつけるべし
オプションはいくつもありますが、-D -E -S
は特に副作用がないので、常に有効化することをオススメします。また、-P
をつけると処理速度が向上します。
$ export RUBOCOP_OPTS='-D -E -S -P' # おすすめ設定
$ bundle exec rubocop
export RUBOCOP_OPTS='-D -E -S -P'
は ~/.bashrc
などに書いておきましょう。
それぞれの意味はこちら:
-D, --display-cop-names Display cop names in offense messages.
-E, --extra-details Display extra details in offense messages.
-S, --display-style-guide Display style guide URLs in offense messages.
-P, --parallel Use available CPUs to execute inspection in
ただし、-P
オプションは --auto-gen-config
と併用できないので、--auto-gen-config
を使う時は無効化する必要があります。
$ RUBOCOP_OPTS= bundle exec rubocop --auto-gen-config
2. --auto-gen-config
には --exclude-limit=99999
もつけるべし
1種類のCopについて、違反しているファイルが15個以上になると、
# Offense count: 23
# Cop supports --auto-correct.
Layout/BlockEndNewline:
Enabled: false
のように、Cop自体を無効化する設定が .rubocop_todo.yml
に生成されてしまいます。これでは、新たに追加するファイルに対しても警告がされません。
そこで、--exclude-limit
に大きな数値を指定して、Enabled: false
が生成されないようにしましょう。
また、--no-offense-counts
と --no-auto-gen-timestamp
も指定しておくと、.rubocop_todo.yml
を再生成した時の差分が小さくなり Gitのログが見やすくなります。
--exclude-limit COUNT Used together with --auto-gen-config to
set the limit for how many Exclude
properties to generate. Default is 15.
--no-offense-counts Do not include offense counts in configuration
file generated by --auto-gen-config.
--no-auto-gen-timestamp Do not include the date and time when
the --auto-gen-config was run in the file it
generates.
$ RUBOCOP_OPTS= bundle exec rubocop --auto-gen-config --exclude-limit=99999 --no-offense-counts --no-auto-gen-timestamp