- Home
- Skills
- Zhanghandong
- Rust Skills
- Rust Call Graph
rust-call-graph_skill
- Shell
565
GitHub Stars
1
Bundled Files
2 months ago
Catalog Refreshed
4 months ago
First Indexed
Readme & install
Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.
Installation
Preview and clipboard use veilstrat where the catalogue uses aiagentskills.
npx veilstrat add skill zhanghandong/rust-skills --skill rust-call-graph- SKILL.md5.5 KB
Overview
This skill visualizes Rust function call graphs using the language server call hierarchy. It generates caller, callee, or bidirectional graphs and produces readable ASCII or mermaid outputs to support impact analysis and code exploration. Use it to trace execution paths, find hot paths, and surface high fan-out or frequently-called functions.
How this skill works
The skill locates a function symbol, then calls the LSP prepareCallHierarchy to get the base item. It expands incomingCalls and outgoingCalls via LSP, recursively up to a configured depth, and aggregates results. Finally it renders an ASCII tree, optional box diagram, or Mermaid graph and computes simple analysis like entry points, leaf functions, and hot paths.
When to use it
- Perform impact analysis before changing a function (who calls this?).
- Understand what a function invokes to inspect dependencies and side effects.
- Trace execution paths from main or tests into a target function.
- Document call relationships for code reviews or architecture notes.
- Identify hot paths, high fan-out functions, or potential refactor targets.
Best practices
- Start with depth 2–3 to get a manageable overview, increase for deeper investigation.
- Prefer bidirectional view when you need full context; use incoming or outgoing for focused queries.
- Combine LSP results with grep or workspace symbols if the server misses a location.
- Annotate dynamic dispatch or external crate calls explicitly in the output.
- Export complex graphs to Mermaid for inclusion in docs or deeper visualization tools.
Example use cases
- Show callers and callees for process_request to reveal hot paths and dependencies.
- Run incoming-only analysis on handle_error to see all impact sites before a change.
- Trace from main out to a module with --depth 5 to map a long execution chain.
- Export a service handler graph to Mermaid for architecture documentation.
- Detect functions with unusually high fan-out (many callees) for targeted refactoring.
FAQ
Use --depth N to limit levels and --direction in|out|both to pick callers, callees, or both.
How does it find the function location?
It uses LSP workspaceSymbol or a fallback grep to locate the function and its file/position.
Can it show dynamic dispatch or external crate calls?
Yes—those are included but annotated (for example, [dynamic dispatch] or external crate names) to signal that resolution is incomplete.