State of the Ruby language server (LSP) ecosystem / looking for suggestions

This page summarizes the projects mentioned and recommended in the original post on /r/ruby

InfluxDB – Built for High-Performance Time Series Workloads
InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  1. solargraph

    A Ruby language server.

    https://github.com/castwide/solargraph Seems to be the most mature/developed one. Slow on my system, bad documentation. Language docs are shipped as "cores" you imperatively download that float around in your home directory; this is messy and prone to failure. Doesn't have any docs for versions of ruby past 2.7.

  2. InfluxDB

    InfluxDB – Built for High-Performance Time Series Workloads. InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.

    InfluxDB logo
  3. sorbet

    A fast, powerful type checker designed for Ruby

    https://github.com/sorbet/sorbet A type checker. Created before Ruby's signature format and uses its own messy eDSL for type annotations. Has a language server. I don't know if this is usable without first adding type annotations to your code. No idea if it supports language and library documentation; there's no real docs for its LSP mode other than "here, have a vscode extension", and digging through the codebase is... difficult.

  4. steep

    Static type checker for Ruby

    https://github.com/soutaro/steep Also a type checker. This one uses rbs files. Not sure what subset of LSP features it supports either.

  5. ruby-lsp

    An opinionated language server for Ruby

    https://github.com/Shopify/ruby-lsp Fairly new project, started in June. Digging through issues indicates it's meant to complement Sorbet's language server. Seems immature right now; it only supports a few queries and does so in janky ways. Probably not the best choice right now, but seems promising.

  6. ruby_language_server

    Language Server implementation in Ruby for Ruby. Development happens on the develop branch. Production is master.

    https://github.com/kwerle/ruby_language_server Seems to be abandoned in an incomplete state, with only minor bug fixes for years.

  7. orbacle

    Program allowing for smart jump-to-definitions, autocompletion, constant renaming and more.

    https://github.com/swistak35/orbacle Hasn't been updated in ~4 years. Someone's master's thesis project. Incomplete.

  8. vscode-ruby

    Discontinued Provides Ruby language and debugging support for Visual Studio Code

    https://github.com/rubyide/vscode-ruby/tree/main/packages/language-server-ruby Part of a VS Code extension. Uses tree-sitter to parse and analyze code. Feels the most technically sound, though still early in development. Unmaintained since April.

  9. SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  10. language_server-ruby

    A Ruby Language Server implementation

    https://github.com/mtsmfm/language_server-ruby Abandoned project from 4-5 years ago.

  11. lib-ruby-parser

    Discontinued Ruby parser written in Rust

    I realize this might not be for everyone, but I'm writing it in Rust using Lib-ruby-parser and tower-lsp: two existing libraries that handle a bunch of the heavy lifting for me. I'm more productive in Rust than with Ruby at this point, despite doing Ruby full time for 15 years, plus I really really don't want to have to deal with a slow LSP--that was the whome impetus for this project. I started in the spring, made a bunch of headway, then backtracked to redo the internals to make it easier to handle monkeypatching, overriding/redefining of methods, etc. across your project.

  12. tower-lsp

    Language Server Protocol implementation written in Rust

    I realize this might not be for everyone, but I'm writing it in Rust using Lib-ruby-parser and tower-lsp: two existing libraries that handle a bunch of the heavy lifting for me. I'm more productive in Rust than with Ruby at this point, despite doing Ruby full time for 15 years, plus I really really don't want to have to deal with a slow LSP--that was the whome impetus for this project. I started in the spring, made a bunch of headway, then backtracked to redo the internals to make it easier to handle monkeypatching, overriding/redefining of methods, etc. across your project.

  13. tailor

    Discontinued A RubyGem that allows for checking standard styling of Ruby files. (by turboladen)

    I'd also love some more diagnostics; things that you may get from flog or flay or rubocop (although I think integrating with rubocop would be ideal, given its influence on the ecosystem) or rails_best_practices (prior to rubocop, I actually tried making my own linter, tailor, but rubocop came along and was a million times better)...

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Language Server Protocol

    3 projects | /r/Compilers | 21 Jul 2022
  • tower_lsp client/server Document Sync

    1 project | /r/rust | 5 Jul 2022
  • kak-lsp release 11.1.0

    1 project | /r/kakoune | 8 Dec 2021
  • Kakoune + Julia

    2 projects | /r/kakoune | 27 Oct 2021
  • Is kakoune more lightweight than vim or minimal? Why kakoune and not vim in your opinion?

    1 project | /r/kakoune | 2 Jun 2021

Did you know that Ruby is
the 12th most popular programming language
based on number of references?