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

Slice A: pure-Python translation surface from parsed SCIP Index bytes to (symbols, edges). No live rust-analyzer invocation yet — that arrives in Slice B alongside analyzer-registry wiring and the opt-in flag (HYPERGUMBO_RUST_ANALYZER env var or --backend rust-analyzer CLI flag).

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-5.0.0.tar.gz (18.2 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-5.0.0-py3-none-any.whl (15.2 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for hypergumbo_lang_rust_analyzer-5.0.0.tar.gz
Algorithm Hash digest
SHA256 f35837744d9c1e4694852ab75ac9c3705250e57164ca598980d160dd9fdc0ebc
MD5 e7abf0fefac6a0b08290673e3ff202f6
BLAKE2b-256 7f5cfe77f0fc27e4123622d253e6350676c38f9ba3ac928799c96eaf84045018

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hypergumbo_lang_rust_analyzer-5.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 58bb08872f99ed527de1c603ed4405e439fe560b61463b2db2b1c88a86372c04
MD5 46ccb2a7d13b12853d28295b41bbf4d6
BLAKE2b-256 729d40135e0b33b60ed8835537b02ca7b192b06f1a9f7cce6a3b8938a626f932

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