• Sign In



  • Categories

    Extension Details



    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: true or 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-rails if present in your project

    Requirements

    • RuboCop — required for linting and formatting. Install via gem install rubocop or include it in your Gemfile.
    • Sorbet — optional, required only if "Enable Sorbet" is turned on. Your project must have a sorbet/ directory with a valid sorbet/config.
    • Ruby LSP — optional, required only if "Enable Ruby LSP" is turned on. Install via gem install ruby-lsp or include it in your Gemfile.

    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: true or 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-rails when present in the project
    • Restart Ruby LSP Language Server command available in the Extensions menu when enabled