The Ruby LSP is an implementation of the language server protocol for Ruby, used to improve rich features in editors. It is a part of a wider goal to provide a state-of-the-art experience to Ruby developers using modern standards for cross-editor features, documentation and debugging.
Want to discuss Ruby developer experience? Consider joining the public Ruby DX Slack workspace.
If using VS Code, all you have to do is install the Ruby LSP extension to get the extra features in the editor. Do not install this gem manually.
See editors for community instructions on setting up the Ruby LSP.
The gem can be installed by doing
gem install ruby-lsp
NOTE: starting with v0.7.0, it is no longer recommended to add the ruby-lsp
to the bundle. The gem will generate a
custom bundle in .ruby-lsp/Gemfile
which is used to identify the versions of dependencies that should be used for the
application (e.g.: the correct RuboCop version).
For older versions, if you decide to add the gem to the bundle, it is not necessary to require it.
group :development do
gem "ruby-lsp", require: false
end
See the documentation for more in-depth details about the supported features.
For creating rich themes for Ruby using the semantic highlighting information, see the semantic highlighting documentation.
The Ruby LSP provides a server extension system that allows other gems to enhance the base functionality with more editor features. This is the mechanism that powers extensions like
For instructions on how to create extensions, see the server extensions documentation.
- RubyConf 2022: Improving the development experience with language servers (Vinicius Stock)
- Remote Ruby: Ruby Language Server with Vinicius Stock
- RubyKaigi 2023: Code indexing - How language servers understand our code (Vinicius Stock)
Bug reports and pull requests are welcome on GitHub at https://github.com/Shopify/ruby-lsp. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
If you wish to contribute, see CONTRIBUTING for development instructions and check out our pinned roadmap issue for a list of tasks to get started.
The gem is available as open source under the terms of the MIT License.