γ Cygni · language intelligence

Speak server fluently.

A pure Ruby LSP client for server lifecycle, document synchronization, diagnostics, semantic tokens, navigation, and workspace edits.

  • JSON-RPC + LSP
  • Ruby ≥ 3.1
  • MIT licensed
ruby-lsp / example.rbready
Documentversion 4
UTF-16 position
Diagnostics2 published
0 errors
Sadr clientepoch 1
42 pending
Completion18 items
validated
Semanticdelta applied
1,204 tokens

Own the protocol edge.

Sadr validates what crosses the client boundary and leaves buffers, text storage, and interface policy with the host application.

Broad coverage

Completion, navigation, hierarchy, formatting, rename, links, diagnostics, and semantic tokens.

Precise positions

Convert byte offsets and UTF-16 positions through any caller-owned compatible text index.

Resilient sessions

Cancellable futures, strict response validation, lifecycle control, and automatic server recovery.

Start the server.

Open a document and request language intelligence with ordinary Ruby objects.

Ruby
$ bundle add sadr

client = Sadr::Client.new(
  command: ["ruby-lsp"]
)
client.start
client.open(document)
client.completion(document.uri, position).await