SuperAPI AI 工具集

rust-call-graph

编程与开发

查看项目

更新于 10-15 10:30

技能介绍

用途

rust-call-graph 用于在 Rust 项目中可视化函数之间的调用关系。它基于 LSP 的调用层级(call hierarchy)功能,帮助开发者理解代码的调用结构,适用于影响分析、实现理解、执行路径追踪等场景。

主要能力

该技能通过 LSP 的以下操作获取调用信息:

  • prepareCallHierarchy:获取目标函数的调用层级条目;
  • incomingCalls:获取调用该函数的函数(谁调用了它);
  • outgoingCalls:获取该函数调用的函数(它调用了谁)。

在获取信息后,它会递归展开到指定深度,并生成 ASCII 可视化结果。输出形式支持调用者树、被调用者树、双向调用图,并可导出为 Mermaid 格式。此外还会提供分析洞察,包括入口点、叶子函数、热点路径、复杂度以及潜在问题(例如高扇出、被多处调用等)。

使用方式

命令格式为:

/rust-call-graph <function_name> [--depth N] [--direction in|out|both]

选项说明:

  • --depth N:遍历层级深度,默认 3;
  • --direction:in 表示调用者,out 表示被调用者,both 表示两者。

示例:

  • /rust-call-graph process_request:同时显示调用者与被调用者;
  • /rust-call-graph handle_error --direction in:仅显示调用者;
  • /rust-call-graph main --direction out --depth 5:进行深度被调用者分析。

工作流程为:先通过 LSP(workspaceSymbol) 或 Grep 定位函数位置,再执行 prepareCallHierarchy,随后分别获取 incomingCalls 与 outgoingCalls,递归展开到指定深度,最后生成 ASCII 可视化。

适用场景

常见使用模式包括:

  • “谁调用了 X?”:使用 incoming 方向,用于影响分析;
  • “X 调用了什么?”:使用 outgoing 方向,用于理解实现;
  • “显示调用图”:使用 both 方向,查看完整图景;
  • “从 main 追踪到 X”:使用 outgoing 方向,追踪执行路径。

可视化样式可选择树形(默认,适合简单层级)、框图(适合复杂关系)、平铺列表(适合多连接)、Mermaid(用于导出到文档)。

限制

资料中未提供关于平台支持、运行环境要求、性能限制或收费情况的明确说明,这些信息暂未提供。该技能依赖 LSP 提供调用层级数据,因此实际可用性取决于所用语言服务器对相关 LSP 操作的支持情况,资料中未对此作进一步说明。

相关技能

  • 查找定义:rust-code-navigator;
  • 项目结构:rust-symbol-analyzer;
  • Trait 实现:rust-trait-explorer;
  • 安全重构:rust-refactor-helper。