Fuzzy Ruby Server
A Ruby language server designed to stay performant for large codebases. A full-text search backend gives fast, but fuzzy search results that approximates the behaviour of Ruby.
||Jump to the definitions for methods, variables, etc.
||Search method, class, and module definitions in a project
||Indicates issues with the code
||Jump to an occurrence of a method, variable, etc.
||Highlight all occurrences within a file
||Rename all occurrences within a file
1. Install the
Fuzzy Ruby Server extension from the VSCode Marketplace.
2. Activate the extension by reloading VSCode and navigating to any
- The workspace will be indexed automatically.
If you use rbenv and a
Gemfile.lock is present in the root of the workspace, then dependencies are automatically indexed as well. This can take a few minutes when there are a lot of gems to index.
Peek or go to the definition of a variable, method, class, or module. If multiple definitions are found they will all be returned. Results are sorted by score so the first result automatically shown will be the closest match.
Go to Definition
- Tip: Enable the VSCode setting
Workbench > Editor: Reveal If Open
Search method, class, and module definitions in a project.
Go to Symbol in Workspace...
cmd + t
Highlight issues found in static analysis.
See all the locations where a method/variable/symbol is being used. Only locations in the the file being edited are shown currently.
Go to References
shift + f12
See all occurrences of a method/variable/symbol in the current editor.
Rename all occurrences within a file
- Update the
command path in
extension.ts to point to your local working directory. Target release as it's necessary or indexing is too slow.
command = "/Users/<user>/dev/fuzzy_ruby_vscode_client/target/release/fuzzy";.
yarn run esbuild to compile
- Make Rust changes in
cargo build --release.
F5 in VSCode to run a the extension in a new VSCode window.
- Make a pull request with your changes. Thank you!
cargo build --release
- Build a linux binary for Codespaces:
CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_LINKER=x86_64-unknown-linux-gnu-gcc cargo build --release --target=x86_64-unknown-linux-gnu