如何在运行rubocop时禁用“警告没有提供COP消息的部门”

时间:2019-10-03 11:55:07

标签: rubocop

在我的.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 个答案:

答案 0 :(得分:6)

合格的警察名称为Department/CopName。例如,Style/Documentation是合格的,而Documentation是不合格的。

documentation指示:

  

建议使用其类型(例如Style)来限定警察名称,但是只要警察名称在所有类型中都是唯一的,就没有必要。

但是,它们会为不合格名称显示警告。发生here

# 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