【问题标题】:Does Rubocop not highlight undefined variables?Rubocop 不会突出显示未定义的变量吗?
【发布时间】:2020-10-24 10:40:31
【问题描述】:

我已经为我的 IDE(Neovim - 使用 CoC 扩展)安装了 Solargraph(它使用 Rubocop)。正在显示 Rubocop 警告,但在我运行我的 ruby​​ 文件之前未检测到 NameErrors。这是默认行为,还是我需要做更多的配置?

我正在使用 Ruby 2.7.2(带有 rbenv)。

如果您知道答案,请提前致谢 - 如果需要,我可以提供更多详细信息。

【问题讨论】:

  • Rubocop 提供有关编码风格的提示。它是高度可配置的,您喜欢在项目中强制执行哪些样式。我不希望 Rubocop 发现实际的语法或命名错误,我不记得 Rubocop 曾经做过。这不是 Rubocops 的目的。
  • 谢谢@spickermann。我会尝试找到另一个可以满足我需求的工具。
  • Ruby 自动激活某些类型的变量,并且没有唯一的编译阶段。您可能会搜索未分配的变量子类或从未实例化的类名,但您正在寻找的功能本质上与动态、鸭式、解释范式不一致。

标签: ruby neovim rubocop


【解决方案1】:

简单回答:No. Because rubocop does not run your ruby code, it just parses the files. 所以,你有责任首先让你的代码工作,然后用 Rubocop 修复样式:)

小提示:you can create a github action to run both rubocop and your code on push/deploy

干杯!

【讨论】:

  • 如果只是解析文件显示某个变量在某处使用并且未在任何地方定义,那么这应该足以发出警告。运行代码不一定会显示变量中的拼写错误,因为在运行期间您可能不会传递到每个 if 子句。变量不会凭空产生并留下一些超级全局变量,它们通常是有作用域的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-22
  • 2022-11-01
  • 2019-07-03
  • 1970-01-01
相关资源
最近更新 更多