警告: 无法识别的 cop Rails/

13

我在 Vs-code 中使用 Rubocop 遇到了问题,出现了错误。

Warning: unrecognized cop Rails/ActionFilter found in /path/to/yml/with/cops
...
Warning: unrecognized cop Rails/Output found in
...
Warning: unrecognized cop Rails/UnknownEnv found in
...
# The list goes on...

我运行:

Rubocop版本是rubocop-0.76.0

VS-code版本:1.39.2

在vs code中使用的ruby-rubocop扩展程序版本为0.8.1

macOS Catalina:10.15(此问题也存在于早期版本,如mojave)


我发现关于此问题几乎没有什么资料。基本上我找到的唯一的东西是这个。并且我已经在我的rspec yml文件中加入了require rubocop-rspec,所以无法从那个帖子中获得建议。

我该怎么办才能解决这个问题?我的同事很快就会开始称呼我为 Lint-failure先生

2个回答

20

假如你和我一样,可能从其他项目中复制了 .rubocop.yml 文件,那么你就需要安装 rubocop-rails gem了,这个gem包括了Rails/ cops。

像安装其他gem一样安装它,并在你的.rubocop.yml文件中添加require语句:

# Gemfile

gem 'rubocop', require: false
gem 'rubocop-rails', require: false

$ bundle install
# .rubocop.yml

require: rubocop-rails
$ rubocop

3
“require: rubocop-rails” 是我所需要的。谢谢。 - Overload119

6
似乎rubocop警告正在阻止rubocop完成。在您的rubocop版本中,应该有一个称为“suppressRubocopWarnings”的设置,如果您知道不需要处理警告,请尝试检查该设置。
您可以通过键入“cmd + shift + p”并输入“Open User Settings”来执行此操作。在那里,您可以搜索“rubocop”并选中“suppressRubocopWarnings”复选框,然后重新启动VSCode即可。
如果您正在使用较旧版本的VSCode而没有花哨的UI,则应能够在您的用户设置JSON中添加“"ruby.rubocop.suppressRubocopWarnings": true,”。
如果您在多个项目之间共享rubocop.yml文件,则似乎很常见出现这些警告。
来源:https://github.com/misogi/vscode-ruby-rubocop/pull/97

哇!!谢谢。就是这个!!完美。它可以工作了。我现在可以写高级代码了 ;) - Brainmaniac
除了这个很好的答案之外,你可能已经在 .rubocop.yml 中弃用了 cop-names,我已经这样做了。只需运行 which rubocop 并将该答案在终端中运行,以查看是否需要执行更多操作才能使其正常工作。 - Brainmaniac

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接