Skip to content

Ruby

languages.ruby.enable

Whether to enable tools for Ruby development.

Type: boolean

Default: false

Example: true

languages.ruby.package

The Ruby package to use.

Type: package

Default: pkgs.ruby_3_1

languages.ruby.bundler.enable

Whether to enable bundler.

Type: boolean

Default: false

Example: true

languages.ruby.bundler.package

The bundler package to use.

Type: package

Default: pkgs.bundler.override { ruby = cfg.package; }

languages.ruby.dev.enable

Enable Ruby development tools.

Type: boolean

Default: true

languages.ruby.dev.formatter.enable

Enable Ruby formatter (rubocop).

Type: boolean

Default: true

languages.ruby.dev.formatter.package

The rubocop package to use.

Type: package

Default: pkgs.rubyPackages.rubocop

languages.ruby.dev.linter.enable

Enable Ruby linter (rubocop).

Type: boolean

Default: true

languages.ruby.dev.linter.package

The rubocop package to use.

Type: package

Default: pkgs.rubyPackages.rubocop

languages.ruby.dev.lsp.enable

Enable Ruby language server (solargraph).

Type: boolean

Default: true

languages.ruby.dev.lsp.package

The Ruby language server package to use.

Available options:

  • pkgs.rubyPackages.solargraph (default): Mature, feature-rich LSP by Fred Snyder
  • pkgs.rubyPackages.ruby-lsp: Newer LSP by Shopify, actively developed

To switch to ruby-lsp, use:

languages.ruby.dev.lsp.package = pkgs.rubyPackages.ruby-lsp;

Type: package

Default: pkgs.rubyPackages.solargraph

languages.ruby.version

The Ruby version to use. This automatically sets the languages.ruby.package using nixpkgs-ruby.

Type: null or string

Default: null

Example: "3.2.1"

languages.ruby.versionFile

The .ruby-version file path to extract the Ruby version from. This automatically sets the languages.ruby.package using nixpkgs-ruby. When the .ruby-version file exists in the same directory as the devenv configuration, you can use:

languages.ruby.versionFile = ./.ruby-version;

Type: null or absolute path

Default: null

Example:

./ruby-version