Why I Stopped Waiting on Ruby LSP and Built My Own Fuzzy Symbol Search for VS Code
If you've worked in a mid-to-large Rails codebase in VS Code, you've probably run into this: you want to jump to a method, you hit Ctrl/Cmd+T, you type a few letters - and either Ruby LSP hasn't finished indexing yet, or your search doesn't match because you're one character off from the real name. Ruby LSP's workspace symbol search is genuinely useful once it's running, but it has two costs: it needs the gem install + LSP setup, and it needs a full index build before symbol search is reliable. On a large monolith, that's not instant. And even indexed, it does near-exact matching - abbreviate or misspell a symbol and you get nothing. The alternative most people fall back on is VS Code's built-in text search (Cmd+Shift+F). It's fast and needs no setup, but it's just text matching - it doesn't know def process_payment is a method definition versus a comment mentioning "process_payment," and it has no concept of a Ruby symbol at all. I wanted something in between: instant, zero-setup, and actually aware of Ruby syntax - not just literal text. What I built Ruby Symbol Search indexes Ruby symbols directly via lightweight pattern matching (not a full AST parse - deliberately, so indexing stays near-instant even on file save) across: - Classes and modules (including class << self ) - Methods ( def ) - Constants - Attributes ( attr_reader/writer/accessor ,mattr_* ,attribute ,delegate , and friends) - Associations ( belongs_to ,has_many ,has_one ,has_and_belongs_to_many ) - Scopes, aliases, namespaces, rake tasks The headline feature is fuzzy search: Ctrl+Shift+R / Cmd+Shift+R opens a typo-tolerant search across every indexed symbol in your workspace. Get the name roughly right and it finds it. You can also scope results to one file with @filename . It also wires the same index into VS Code's native "Go to Symbol in Workspace" picker (Ctrl/Cmd+T), Go to Definition (F12), and an Outline view in the sidebar - so it's not a separate tool bolted on the side, it's feeding the editor's built-in navigation too. What it isn't It's not a replacement for Ruby LSP if you want type inference, hover documentation, or diagnostics. It's specifically solving "get me to this symbol fast," and it works fine alongside Ruby LSP if you have it installed (there's a note in the README on avoiding duplicate results if both index the same symbols). Try it It's free and MIT licensed: - Marketplace: https://marketplace.visualstudio.com/items?itemName=vscode-bkaz.ruby-symbol-search - Source: https://github.com/bk-az/ruby-symbol-search If you hit a Ruby symbol pattern it doesn't recognize, or a case where the fuzzy matching gets it wrong, open an issue - I'd rather know about the gaps than not. Top comments (0)
Comments
No comments yet. Start the discussion.