与其他工具集成
加速集成
RuboCop 集成了许多其他工具,包括可能尝试为您自动更正的编辑器。在这些情况下,rubocop
会被反复调用,这可能会导致一些缓慢,因为 rubocop
必须在每次调用时都加载其整个环境。
您可以通过使用 "服务器" 或 rubocop-daemon 来缓解一些启动时间。rubocop-daemon
是 rubocop
的一个包装器,它将所有内容加载到一个守护进程中,以便后续运行在第一次执行后节省启动时间。有关设置说明和如何在某些编辑器和其他工具中使用它的示例,请参阅 rubocop-daemon 文档。
RuboCop 的内置 缓存 也应该用于确保未更改的源文件不会被不必要地重新评估。 |
编辑器集成
所有流行的编辑器都提供某种形式的代码 linter 集成。通常,这可以通过 LSP(如果底层服务器支持)或通过调用 linter 并处理其输出以在编辑器中显示来实现。
如上所述,rubocop
二进制文件启动速度相对较慢,这在调用 linter 的情况下会造成问题。RuboCop "服务器" 功能旨在解决此问题并提供闪电般的快速编辑器集成。
Emacs
rubocop.el 是一个简单的 Emacs RuboCop 接口。它允许您在 Emacs 中运行 RuboCop 并快速在代码中的问题之间跳转。
flycheck > 0.9 也支持 RuboCop,并在可用时默认使用它。
Helix
Helix 本地支持 Solargraph 以提供 LSP 功能。有关格式化支持,请参阅 RuboCop 的外部二进制格式化程序配置 以使用捆绑或全局安装的 RuboCop 版本。
Sublime Text
对于 ST,您可能会发现 SublimeLinter-rubocop 或 Sublime RuboCop 插件有用。
您也可以考虑使用上面提到的利用 RuboCop 的 LSP 服务器之一,方法是使用 Sublime-LSP 插件并按照其 文档 进行配置。
Brackets
brackets-rubocop 扩展在 Brackets 中显示 RuboCop 结果。它可以通过 Brackets 中的扩展管理器安装。
TextMate2
textmate2-rubocop 包在新的窗口中显示格式化的 RuboCop 结果。安装说明可以在 此处 找到。
Atom
Atom 的 linter 插件 linter-rubocop 运行 RuboCop 并突出显示 Atom 中的违规行为。
LightTable
插件 lt-rubocop 提供 LightTable 集成。
RubyMine / Intellij IDEA
从 2017.1 版本开始,RuboCop 支持 可用。
Visual Studio Code
扩展 ruby 为 Visual Studio Code 提供 RuboCop 集成。RuboCop 也用于此扩展的格式化功能。
与 overcommit 的 Git pre-commit hook 集成
overcommit 是一个完全可配置且可扩展的 Git commit hook 管理器。要将 RuboCop 与 overcommit 一起使用,请将以下内容添加到你的 .overcommit.yml
文件中
PreCommit:
RuboCop:
enabled: true
与 pre-commit 的 Git pre-commit hook 集成
pre-commit 是一个用于管理和维护多语言 pre-commit hook 的框架。要将 RuboCop 与 pre-commit 一起使用,请将以下内容添加到你的 .pre-commit-config.yaml
文件中
- repo: https://github.com/rubocop/rubocop
rev: v1.8.1
hooks:
- id: rubocop
如果你的 RuboCop 配置使用扩展,请确保将 gem 作为 additional_dependencies
中的条目包含在内
- repo: https://github.com/rubocop/rubocop
rev: v1.8.1
hooks:
- id: rubocop
additional_dependencies:
- rubocop-rails
- rubocop-rspec
Guard 集成
如果你喜欢 Guard,你可能会喜欢 guard-rubocop。它允许你在修改文件时使用 RuboCop 自动检查 Ruby 代码风格。
Mega-Linter 集成
你可以使用 Mega-Linter 在每个 PR 上自动运行 RuboCop,并对你的仓库中检测到的所有文件类型进行 lint。
请按照 安装说明 激活 RuboCop,无需任何额外配置。
Mega-Linter 的 Ruby 风格 针对 Ruby 代码风格检查进行了优化。
Rake 集成
要在你的 Rakefile
中使用 RuboCop,请添加以下内容:
require 'rubocop/rake_task'
RuboCop::RakeTask.new
如果你运行 rake -T
,应该会看到以下两个 RuboCop 任务:
$ rake rubocop # Run RuboCop
$ rake rubocop:autocorrect # Autocorrect RuboCop offenses
以上将使用默认值。
require 'rubocop/rake_task'
desc 'Run RuboCop on the lib directory'
RuboCop::RakeTask.new(:rubocop) do |task|
task.patterns = ['lib/**/*.rb']
# only show the files with failures
task.formatters = ['files']
# don't abort rake on failure
task.fail_on_error = false
end