A Ruby Language Server


Solargraph checks for configuration settings in a .solargraph.yml file in the workspace’s root directory. Run solargraph config to generate a default configuration file.


The default configuration looks something like this:

- "**/*.rb"
- spec/**/*
- test/**/*
- vendor/**/*
- ".bundle/**/*"
require: []
domains: []
- rubocop
- require_not_found
max_files: 5000


A list of directory globs to include in Solargraph’s code maps. The default configuration includes all .rb files in the folder.


A list of directory globs to exclude from Solargraph’s code maps. The default configuration excludes the spec, test, and vendor folders.


Note: Consider adding requires with a YARD @!parse directive instead of using this configuration setting.

Use require to add require paths that are not explicitly defined in code.


- sinatra/base

Solargraph will act as if a file in the project contained the line require 'sinatra/base'.


Solargraph will use the designated classes and modules as contexts in which the project’s scripts will run. Example: if one of the domains is Class<Sinatra::Base>, the Sinatra DSL will be included in suggestions. (Whether you need to specify the domain inside Class<> depends on how the library is implemented.)


Solargraph provides diagnostics reporters to send diagnostics to the client. The reporters section selects
which reporters the language server should use:

- rubocop
- require_not_found

rubocop enables RuboCop linting. Its rules can be configured in a .rubocop.yml file.

require_not_found highlights require calls where Solargraph could not resolve a required path. Note that this error does not necessarily mean that the path is incorrect; only that Solargraph was unable to recognize it.

typecheck will report problems with type tags. See Type Checking for more information.

You can use all! to tell the language server to use all available reporters.

Run solargraph reporters for a complete list of available reporters and their descriptions.


The maximum number of files to be mapped in the workspace. The default is 5000 files. Setting it to 0 disables the size limitation.