Skip to main content

SCIP-backed Rust analyzer for hypergumbo (rust-analyzer integration)

Project description

hypergumbo-lang-rust-analyzer

SCIP-backed Rust analyzer for hypergumbo.

This optional package integrates rust-analyzer scip output into hypergumbo, providing precise type-resolved symbols and call edges for Rust workspaces beyond what the tree-sitter rust.py analyzer can recover. It is designed as an opt-in alternative to rust.py, not a replacement.

Status

Shipped end-to-end. Activate with the --backend rust-analyzer root flag (also settable via HYPERGUMBO_RUST_ANALYZER=1). Install with pipx install 'hypergumbo[rust-analyzer]', or pipx inject hypergumbo hypergumbo-lang-rust-analyzer when hypergumbo is already installed.

When --backend rust-analyzer is requested but the integration package or the rust-analyzer binary is missing/broken (the binary is smoke-tested with rust-analyzer --version), the CLI exits non-zero with a pointer to the install or to rustup component add rust-analyzer, rather than silently falling through to the tree-sitter rust.py analyzer.

Why SCIP, not LSP

Rust-analyzer emits SCIP with a single shot of rust-analyzer scip instead of requiring a long-lived LSP session. SCIP is slower than tree-sitter (~10× at every realistic size per WI-zakub), so this backend is opt-in and falls through to rust.py when unavailable or not requested.

Stable-ID parity

rust.py and this analyzer both produce stable_ids via hypergumbo_lang_mainstream.rust_scip.compute_rust_stable_id_from_source, so cross-pass dedup works. Shared symbols carry the same stable_id under both backends; rust-analyzer-only symbols (e.g. trait-resolved method dispatch) extend the id space with SCIP-only suffixes.

Upstream shim

Symbol / edge emission builds on hypergumbo_core.scip.*:

  • scip_index_to_symbolsDocument walk → Symbol objects.
  • scip_index_to_edgesSymbolInformation.relationshipsEdges.
  • scip_index_to_call_edges — non-Definition Occurrence → calls / references edges via span-enclosure resolution.

Rust-analyzer's Relationship set is empty (per WI-zakub), so the primary edge source here is scip_index_to_call_edges.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hypergumbo_lang_rust_analyzer-6.1.0.tar.gz (23.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hypergumbo_lang_rust_analyzer-6.1.0-py3-none-any.whl (17.8 kB view details)

Uploaded Python 3

File details

Details for the file hypergumbo_lang_rust_analyzer-6.1.0.tar.gz.

File metadata

File hashes

Hashes for hypergumbo_lang_rust_analyzer-6.1.0.tar.gz
Algorithm Hash digest
SHA256 261e12df4b378dbe66945f0b64028ac3e3584afbc6856cf379b130079e5400a8
MD5 737104d559c6737216b87f643890c311
BLAKE2b-256 5ffaf4f736a2c8f4d10836c792d060033b8e240f29589d98a33dd91334a2f9cf

See more details on using hashes here.

File details

Details for the file hypergumbo_lang_rust_analyzer-6.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for hypergumbo_lang_rust_analyzer-6.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e45c03c5d66c5cd61b5850ae691b3f667837bb24c550dacd755a1b5b04e6983e
MD5 3cbc5bd67937f2879dde5bb099f1ac7d
BLAKE2b-256 2b3bc5e799798f1cf490d50671ac007a37e34ed1fb85ae1fe713af033fcfac64

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page