GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - doompling/fuzzy_ruby_server: A Ruby language server for large codebases

BranchesTags
Open more actions menu

Latest commit

 

History

75 Commits
75 Commits

Folders and files

NameName
Last commit message
Last commit date
.vscode
.vscode
 
 
bin
bin
 
 
client
client
 
 
images
images
 
 
src
src
 
 
.gitignore
.gitignore
 
 
.vscodeignore
.vscodeignore
 
 
Cargo.lock
Cargo.lock
 
 
Cargo.toml
Cargo.toml
 
 
README.md
README.md
 
 
package-lock.json
package-lock.json
 
 
package.json
package.json
 
 
tsconfig.json
tsconfig.json
 
 
webpack.config.js
webpack.config.js
 
 
yarn.lock
yarn.lock
 
 

Repository files navigation

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 closely 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

The workspace and gems will be indexed automatically after installing:

VSCode

1. Install the Fuzzy Ruby Server extension from the VSCode Marketplace.

2. Activate the extension by reloading VSCode and navigating to any .rb file.

Neovim

1. See the nvim config example here.

 

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:
    • f12
    • cmd + click
  • Tip: Enable the VSCode setting Workbench > Editor: Reveal If Open

go_to_def

Definition Search

Search method, class, and module definitions in a project.

  • Cmd: Go to Symbol in Workspace...
  • Keybind: cmd + t

workspace-symbols

Diagnostics

Highlight issues found in static analysis.

diagnostics

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

references

Highlights

See all occurrences of a method/variable/symbol in the current editor.

highlight

Rename

Rename all occurrences within a file

  • Cmd: Rename Symbol
  • Keybind: f2

rename

 

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
  • Build a Linux binary:
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
  • Copy the binaries to bin/

  • Delete the target directory or the .vsix package will be huge

  • vsce package

  • Upload the new package

 

License

MIT

About

A Ruby language server for large codebases

Topics

language-serverrubyvscode-extension

Resources

Readme
Activity

Stars

237 stars

Watchers

2 watching

Forks

7 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.