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.
Features |
|
Definitions |
Jump to the definitions for methods, variables, etc. |
Definition Search |
Search method, class, and module definitions in a project |
Diagnostics |
Indicates issues with the code |
References |
Jump to an occurrence of a method, variable, etc. |
Highlights |
Highlight all occurrences within a file |
Rename |
Rename all occurrences within a file |
Installation
1. Install the Fuzzy Ruby Server
extension from the VSCode Marketplace.
2. Activate the extension by reloading VSCode and navigating to any .rb
file.
- The workspace and gems will be indexed automatically.
Features
Definitions
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.
- Cmd:
Go to Definition
- Keybinds:
- Tip: Enable the VSCode setting
Workbench > Editor: Reveal If Open
Definition Search
Search method, class, and module definitions in a project.
- Cmd:
Go to Symbol in Workspace...
- Keybind:
cmd + t
Diagnostics
Highlight issues found in static analysis.
References
See all the locations where a method/variable/symbol is being used. Only locations in the the file being edited are shown currently.
- Cmd:
Go to References
- Keybind:
shift + f12
Highlights
See all occurrences of a method/variable/symbol in the current editor.
Rename
Rename all occurrences within a file
- Cmd:
Rename Symbol
- Keybind:
f2
Contributing
- 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.
- E.g.,
command = "/Users/<user>/dev/fuzzy_ruby_vscode_client/target/release/fuzzy";
.
- Run
yarn run esbuild
to compile extension.ts
.
- Make Rust changes in
src
, then cargo build --release
.
- Hit
F5
in VSCode to run a the extension in a new VSCode window.
- Make a pull request with your changes. Thank you!
Publishing
- Build an Apple Intel release binary:
cargo build --target x86_64-apple-darwin
- Build an Apple Silicon binary:
cargo build --release --target=aarch64-apple-darwin
brew tap messense/macos-cross-toolchains
brew install x86_64-unknown-linux-gnu
CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_LINKER=x86_64-unknown-linux-gnu-gcc cargo build --release --target=x86_64-unknown-linux-gnu
License
MIT