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.1.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.1-py3-none-any.whl (15.2 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for hypergumbo_lang_rust_analyzer-5.0.1.tar.gz
Algorithm Hash digest
SHA256 f28fdaf0a51c63d10298db00053786e3724af901cafab9e009bd265bd9e42681
MD5 2225d51b6b05895a7e0cd9f080a258bb
BLAKE2b-256 e904e367dff8dbd926c314c6b06bafa903871bd70f2dc53199981eac7cbb6ec1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hypergumbo_lang_rust_analyzer-5.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 03a24232c110ecc8de9679b89fc8fed1578f927ac7a1b95410c994e9797103ae
MD5 b18c1810e564a83ff3f30e603eea686d
BLAKE2b-256 a657426deced6226da5d34dc9eb7e17ba494c5f6e046222429aa5728e26accd4

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