Add ruby-lsp language server support#9378
Conversation
Wires Shopify's ruby-lsp into Warp's editor as a built-in LSP server. Phase 1: relies on the user's PATH (`gem install ruby-lsp`); no bundled Ruby runtime and no auto-install. - Add Ruby variant to LanguageId; map .rb/.rbw/.rake/.gemspec/.ru and Gemfile/Rakefile/Guardfile/Capfile filenames. - Add RubyLsp variant to LSPServerType (binary: ruby-lsp, no args). - Implement RubyLspCandidate detecting Ruby projects via Gemfile, Rakefile, .ruby-version, config.ru, or any .gemspec. - Register the new servers/ruby_lsp module. - Unit tests cover language id detection (extension + filename), language→server mapping, binary name, and language label. Co-Authored-By: Oz <oz-agent@warp.dev>
|
Thank you for your pull request and welcome to our community. We require contributors to sign our Contributor License Agreement, and we don't seem to have the users @tchiadeu on file. In order for us to review and merge your code, each contributor must visit https://cla.warp.dev to read and agree to our CLA. Once you have done so, please comment |
|
I'm starting a first review of this pull request. You can view the conversation on Warp. I approved this pull request. No matching stakeholder was found for the changed files, so no human reviewers were requested. Comment Powered by Oz |
There was a problem hiding this comment.
Overview
This PR adds Ruby file detection and a RubyLsp server type backed by the ruby-lsp executable, plus unit coverage for Ruby extension/filename mapping and server metadata helpers.
Concerns
- No blocking correctness, security, or error-handling concerns were found in the changed diff.
Verdict
Found: 0 critical, 0 important, 0 suggestions
Approve
Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).
Powered by Oz
|
@cla-bot check |
|
The cla-bot has been summoned, and re-checked this pull request! |
Description
Adds Shopify's
ruby-lspas a built-in LSP server in Warp's editor.This is Phase 1: the gem must be installed on the user's PATH (
gem install ruby-lsp). No bundled Ruby runtime, no auto-install — the same posture asgopls.Wiring
LanguageId::Rubyrecognizes.rb,.rbw,.rake,.gemspec,.ru, plus the well-known filenamesGemfile,Rakefile,Guardfile,Capfile.LSPServerType::RubyLspruns theruby-lspbinary over stdio with no extra args (appended at the end of the enum to preserve sqlite persistence ordering).RubyLspCandidateheuristically suggests itself when the workspace containsGemfile,Rakefile,.ruby-version,config.ru, or any*.gemspec.install/fetch_latest_server_metadatabail with a clear "install viagem install ruby-lsp" message.Tree-sitter / highlighting was already in place via
arborium::lang_ruby, so nocrates/languageschanges were needed.Testing
cargo test -p lsp(21 passed, including 5 new Ruby-specific unit tests covering filename + extension detection, language→server mapping, binary name, and language label).cargo fmt -- --checkclean.cargo clippy -p lsp --all-targets --all-features --tests -- -D warningsclean.Manual smoke test pending on a downstream consumer's Ruby project.
Agent Mode
Changelog Entries for Stable
CHANGELOG-IMPROVEMENT: Added built-in support for Shopify's
ruby-lsplanguage server in the editor (install viagem install ruby-lsp).Authored with assistance from Warp Agent Mode.