VSCode/Rubocop жалуются на ненастроенные копы

Недавно я обновил rubocop для драгоценного камня, над которым работаю. Когда я открываю файл ruby ​​в проекте с помощью VSCode, я получаю следующее предупреждение:

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/**/*'

Когда я посещаю url, в предупреждении упоминается добавление параметра 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/

Предупреждение предписывает мне включить каждого из этих новых полицейских по отдельности, но в документах, похоже, есть более простое решение, которое не работает. Что я здесь делаю неправильно?


person aarona    schedule 08.04.2020    source источник


Ответы (3)


У меня такая же проблема. Параметр NewCops внутри AllCops не распознается, поэтому есть только один способ сделать это — отключить или включить каждого полицейского по отдельности, например:

Lint/RaiseException:
  Enabled: false
Lint/StructNewOverride:
  Enabled: false
Style/HashEachMethods:
  Enabled: false
Style/HashTransformKeys:
  Enabled: false
Style/HashTransformValues:
  Enabled: false

Надеюсь, это было полезно.

person Zakariae El Mejdki    schedule 08.04.2020

Если вы используете версию VS code ruby-rubocop, вот простое исправление для вас -›

Настройте параметры расширения -> выберите «Подавить предупреждения Rubocop», это полезно, если вы поделитесь файлом rubocop.yml в репозитории.

изображение

person spidyj    schedule 26.06.2020
comment
Очень полезно. Кто-то предложил отредактировать ваше сообщение, потому что изображение не встроено в ответ. Я предлагаю добавить его с помощью редактора WYSIWYG. Я могу сделать это для вас, но решил, что вы предпочитаете редактировать свой собственный ответ. - person aarona; 26.06.2020

Параметр NewCops пока не поддерживается. Однако она будет поддерживаться в следующем выпуске Rubocop. Рядом с этим параметром вы также сможете использовать параметры командной строки --enable-pending-cops и --disable-pending-cops.

На данный момент решение EL Zakariae — единственный способ убрать это предупреждение.

Вы можете найти соответствующий запрос на вытягивание здесь.

person Simon Isler    schedule 09.04.2020
comment
Привет, Саймон, спасибо за твой первый вклад! Потрясающий. Я думаю, было бы здорово, если бы вы могли добавить номера версий вместо того, чтобы говорить «еще нет / будет в будущем», таким образом, ответ будет более полезным в будущем :-) - person Roland Studer; 09.04.2020