SuperAPI AI 工具集

rust-symbol-analyzer

编程与开发

查看项目

更新于 10-15 10:30

技能介绍

用途

rust-symbol-analyzer 用于分析 Rust 项目的结构,方式是通过 LSP 符号能力检查代码库中的各类符号。它帮助使用者从符号层面理解项目由哪些模块、结构体、trait、函数和枚举组成,以及它们分布在哪些文件中。

主要能力

该技能提供三个粒度的分析:

  • 整体项目分析:遍历项目中的 Rust 文件,汇总模块布局与符号分布,生成项目结构视图。
  • 单文件分析:针对某个文件(如 src/lib.rs)获取其中全部符号及其层级关系,输出类似 mod → struct → impl → fn 的嵌套结构。
  • 按类型筛选:只列出某一类符号,例如全部 trait 或全部函数。

输出内容包括:

  • 项目概览,如模块目录树(src/lib.rs、config/、handlers/、models/、tests/ 等)。
  • 按符号类型分组的表格。结构体表含名称、位置、字段数、derives;trait 表含名称、位置、方法数、实现者;函数表含名称、位置、可见性、是否 async;枚举表含名称、位置、变体数。
  • 复杂度分析:按文件统计结构体数、函数数、行数与复杂度等级,并标出可能需要重构的高复杂度热点文件。
  • 依赖分析:展示文件之间的内部依赖,包括从哪些文件导入、被哪些文件导入。

使用方式

命令格式:

/rust-symbol-analyzer [file.rs] [--type struct|trait|fn|mod]

示例:

  • /rust-symbol-analyzer —— 分析整个项目
  • /rust-symbol-analyzer src/lib.rs —— 分析单个文件
  • /rust-symbol-analyzer --type trait —— 列出项目中所有 trait

其底层依赖两类 LSP 操作:

  1. documentSymbol:获取单个文件中所有符号及其层级,返回模块、结构体、函数等的嵌套结构。调用示例:

LSP( operation: "documentSymbol", filePath: "src/lib.rs", line: 1, character: 1 )

  1. workspaceSymbol:在整个工作区中搜索符号。调用示例:

LSP( operation: "workspaceSymbol", filePath: "src/lib.rs", line: 1, character: 1 )

资料说明:查询条件在该操作上下文中是隐式的。

典型工作流为:先用 Glob("**/*.rs") 找出所有 Rust 文件,再对 lib.rs、main.rs 等关键文件执行 documentSymbol 获取符号,随后按类型归类,最后生成结构可视化结果。

适用场景

  • 快速了解一个陌生 Rust 项目的整体结构与符号组成。
  • 查看某个具体文件内部的模块、结构体、函数层级。
  • 列出项目中全部 trait 或函数,用于盘点公共 API 或实现关系。
  • 通过复杂度与依赖分析,识别可能需要重构的文件。

常见查询与对应分析方式:

  • “项目里有哪些结构体?”——workspaceSymbol 加筛选
  • “展示 src/lib.rs 的结构”——documentSymbol
  • “找出所有 async 函数”——workspaceSymbol 加 async 筛选
  • “列出公共 API”——documentSymbol 加 pub 筛选

符号类型说明

技能识别并可分类展示的符号类型包括:Module(模块)、Struct(结构体)、Enum(枚举)、Trait(接口)、Function(函数)、Method(方法)、Constant(常量)、Field(字段),并配有对应的图标与 LSP Kind。

相关技能

当需要导航到符号时,可配合 rust-code-navigator;需要查看调用关系时,配合 rust-call-graph;需要查看 trait 实现时,配合 rust-trait-explorer;需要进行安全重构时,配合 rust-refactor-helper。

限制

关于该技能支持的平台、安装命令、收费与价格、以及实际运行效果的更多细节,资料中暂未提供。