Extension Details

- Ruby Toolkit
- by Jonathan Pike
- 2 Recent Installs | 2 Total Installs
- Ruby linting, formatting, and code intelligence via RuboCop, Sorbet, and Ruby LSP for Nova.
- Repository
- Bug Reports
-
Launch Subprocesses
-
This extension is allowed to:
Readme
Ruby Toolkit
Ruby Toolkit integrates RuboCop, Sorbet, and Ruby LSP into Nova, providing linting, formatting, type checking, and code intelligence for Ruby projects.
Features
RuboCop
- Linting diagnostics shown inline and in Nova's Issues sidebar, updated on every save
- Optional auto-correct on save using RuboCop's safe autocorrections
Sorbet
- Type-checking diagnostics via Sorbet's native LSP server (
srb tc --lsp) - Inline type errors for files with
# typed: trueor stricter
Ruby LSP
- Code intelligence via Shopify's ruby-lsp server
- Go-to-definition, hover documentation, find references, and code completion
- Enhanced Rails support via
ruby-lsp-railsif present in your project
Requirements
- RuboCop — required for linting and formatting. Install via
gem install rubocopor include it in yourGemfile. - Sorbet — optional, required only if "Enable Sorbet" is turned on. Your project must have a
sorbet/directory with a validsorbet/config. - Ruby LSP — optional, required only if "Enable Ruby LSP" is turned on. Install via
gem install ruby-lspor include it in yourGemfile.
Configuration
Open Extensions → Extension Library..., select Ruby Toolkit, and open the Preferences tab.
| Preference | Default | Description |
|---|---|---|
| Use Bundler | Off | Run RuboCop and Sorbet via bundle exec instead of system binaries |
| Format on Save | Off | Apply RuboCop safe auto-corrections when a file is saved |
| Enable Sorbet | Off | Start the Sorbet language server for type checking |
| Enable Ruby LSP | Off | Start the Ruby LSP server for code intelligence |
Preferences can also be set per-project in Project → Project Settings...
Bundler
If your project manages RuboCop or Sorbet through Bundler (i.e. they are in your Gemfile), enable Use Bundler so the extension runs bundle exec rubocop and bundle exec srb tc --lsp. This ensures the correct gem versions are used.
Ruby LSP is always run without bundle exec — it manages its own Bundler environment to correctly hook into your project's dependencies.
Commands
Three commands are available in the Extensions menu to restart individual language servers without reloading the extension:
- Restart RuboCop Language Server
- Restart Sorbet Language Server (visible when Sorbet is enabled)
- Restart Ruby LSP Language Server (visible when Ruby LSP is enabled)
These are useful after gem updates or when a server gets into a bad state.
Release Notes
Version 1.0
Initial release.
RuboCop
- Lint Ruby files on save via RuboCop's LSP server (
rubocop --lsp), with diagnostics shown inline and in Nova's Issues sidebar - Optional auto-correct on save using RuboCop's safe autocorrections (
textDocument/formatting) - Support for running via
bundle exec(Use Bundler preference) - Restart RuboCop Language Server command available in the Extensions menu
Sorbet
- Optional Sorbet type checking via
srb tc --lsp - Diagnostics shown inline for files with
# typed: trueor stricter - Support for running via
bundle exec - Restart Sorbet Language Server command available in the Extensions menu when enabled
Ruby LSP
- Optional Ruby LSP integration for code intelligence (go-to-definition, hover, find references, completion)
- Enhanced Rails support via
ruby-lsp-railswhen present in the project - Restart Ruby LSP Language Server command available in the Extensions menu when enabled