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.0.0.tar.gz (23.0 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.0.0-py3-none-any.whl (17.8 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for hypergumbo_lang_rust_analyzer-6.0.0.tar.gz
Algorithm Hash digest
SHA256 659bcdac0dbafbf09ceabe14dfe1c9f63978ff55f359a36ea7c338cc81a959ca
MD5 0ac840d87646a6d2e35a819b9635973c
BLAKE2b-256 227900ce9e59941f10c461e0c8e20424efda9528983abcdfc8221fe69cc95145

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hypergumbo_lang_rust_analyzer-6.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f44065fcc92a1b399fe1169730cff57488c38526db841ef2df75ce7fef4c8b0e
MD5 dd671d82da3ee1a4acab55c3cfdfe0fe
BLAKE2b-256 0e43c02cfa1b565c48786f00d7a9fd709908716fe84eba75abc61ee32f818d3e

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