Как отключить «предупреждение об отсутствии отдела для сообщения« COP »при запуске rubocop» - PullRequest
4 голосов
/ 03 октября 2019

В моем .rubocop.yml есть некоторые настройки для отключения некоторых стилей полицейских.

Documentation:
  Enabled: false
ClassAndModuleChildren:
  Enabled: false
LineLength:
  Max: 120
GuardClause:
  Enabled: false
IfUnlessModifier: 
  Enabled: false

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

Warning: no department given for Documentation.

Есть ли способ отключить предупреждение?

1 Ответ

4 голосов
/ 03 октября 2019

Полное имя полицейского - Department/CopName. Например, Style/Documentation является квалифицированным, а Documentation - неквалифицированным.

В документации указано, что:

Имя квалифицированного полицейского с его типом, например,Style, рекомендуется, но не обязательно, если имя полицейского уникально для всех типов.

Но они показывают предупреждение для неквалифицированных имен. Это происходит здесь :

# RuboCop::Cop::Registry
def qualified_cop_name(name, path, shall_warn = true)
  badge = Badge.parse(name)
  if shall_warn && department_missing?(badge, name)
    print_warning(name, path)
  end
  return name if registered?(badge)

  potential_badges = qualify_badge(badge)

  case potential_badges.size
  when 0 then name # No namespace found. Deal with it later in caller.
  when 1 then resolve_badge(badge, potential_badges.first, path)
  else raise AmbiguousCopName.new(badge, path, potential_badges)
  end
end

shall_warn имеет значение false только когда используется опция --auto-correct. В настоящее время нет способа отключить его.

Единственный способ заставить замолчать предупреждение - включить отдел для каждого полицейского в вашу конфигурацию, например:

Style/Documentation:
  Enabled: false
Style/ClassAndModuleChildren:
  Enabled: false
Metrics/LineLength:
  Max: 120
Style/GuardClause:
  Enabled: false
Style/IfUnlessModifier: 
  Enabled: false
...