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_symbols—Documentwalk →Symbolobjects.scip_index_to_edges—SymbolInformation.relationships→Edges.scip_index_to_call_edges— non-DefinitionOccurrence→ 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hypergumbo_lang_rust_analyzer-6.1.0.tar.gz.
File metadata
- Download URL: hypergumbo_lang_rust_analyzer-6.1.0.tar.gz
- Upload date:
- Size: 23.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
261e12df4b378dbe66945f0b64028ac3e3584afbc6856cf379b130079e5400a8
|
|
| MD5 |
737104d559c6737216b87f643890c311
|
|
| BLAKE2b-256 |
5ffaf4f736a2c8f4d10836c792d060033b8e240f29589d98a33dd91334a2f9cf
|
File details
Details for the file hypergumbo_lang_rust_analyzer-6.1.0-py3-none-any.whl.
File metadata
- Download URL: hypergumbo_lang_rust_analyzer-6.1.0-py3-none-any.whl
- Upload date:
- Size: 17.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e45c03c5d66c5cd61b5850ae691b3f667837bb24c550dacd755a1b5b04e6983e
|
|
| MD5 |
3cbc5bd67937f2879dde5bb099f1ac7d
|
|
| BLAKE2b-256 |
2b3bc5e799798f1cf490d50671ac007a37e34ed1fb85ae1fe713af033fcfac64
|