web-dev-qa-db-ja.com

VSCode / Rubocopが未構成の警官について文句を言う

最近取り組んでいる宝石のrubocopを更新しました。 VSCodeを使用してプロジェクトでRubyファイルを開くと、次の警告が表示されます。

The following cops were added to RuboCop, but are not configured. Please set Enabled to either `true` or `false` in your `.rubocop.yml` file:
 - Lint/RaiseException (0.81)
 - Lint/StructNewOverride (0.81)
 - Style/HashEachMethods (0.80)
 - Style/HashTransformKeys (0.80)
 - Style/HashTransformValues (0.80)
For more information: https://docs.rubocop.org/en/latest/versioning/

これが私の.rubocop.ymlファイル:

Metrics/MethodLength:
  Max: 20
Layout/LineLength:
  Max: 100
AllCops:
  Exclude:
    - 'spec/**/*'

警告で rl にアクセスすると、次のようにNewCops設定を追加することが記載されています。

Metrics/MethodLength:
  Max: 20
Layout/LineLength:
  Max: 100
AllCops:
  NewCops: enable
  Exclude:
    - 'spec/**/*'

ただし、次の新しい警告が表示されます。

Warning: AllCops does not support NewCops parameter.

Supported parameters are:

  - RubyInterpreters
  - Include
  - Exclude
  - DefaultFormatter
  - DisplayCopNames
  - DisplayStyleGuide
  - StyleGuideBaseURL
  - ExtraDetails
  - StyleGuideCopsOnly
  - EnabledByDefault
  - DisabledByDefault
  - UseCache
  - MaxFilesInCache
  - CacheRootDirectory
  - AllowSymlinksInCacheRootDirectory
  - TargetRubyVersion
The following cops were added to RuboCop, but are not configured. Please set Enabled to either `true` or `false` in your `.rubocop.yml` file:
 - Lint/RaiseException (0.81)
 - Lint/StructNewOverride (0.81)
 - Style/HashEachMethods (0.80)
 - Style/HashTransformKeys (0.80)
 - Style/HashTransformValues (0.80)
For more information: https://docs.rubocop.org/en/latest/versioning/

警告は、これらの新しい警官を個別に有効にするように指示していますが、ドキュメントには機能しない簡単な解決策があるようです。ここで何が悪いのですか?

4
aarona

VSコードRuby-rubocopバージョンを使用している場合、ここに簡単な修正があります->

拡張機能の設定を構成する-> [Robocop警告を抑止する]を選択します。リポジトリでrubocop.ymlファイルを共有すると便利です。

image

1
spidyj

NewCopsパラメータはまだサポートされていません。ただし、Rubocopの次のリリースでサポートされる予定です。このパラメーターの横で、--enable-pending-copsおよび--disable-pending-copsコマンドラインオプションを使用することもできます。

現時点では、EL Zakariaeのソリューションがこの警告を削除する唯一の方法です。

対応するプルリクエスト here を見つけることができます。

1
Simon Isler