
Rust Symbol Analyzer
- 718 installs
- 1.3k repo stars
- Updated May 24, 2026
- zhanghandong/rust-skills
This is a copy of rust-symbol-analyzer by actionbook - installs and ranking accrue to the original listing.
rust-symbol-analyzer is a Claude Code skill that maps structs, traits, functions, and modules across a Rust project using LSP symbols instead of manual grep searches.
About
rust-symbol-analyzer is a Claude Code skill from zhanghandong/rust-skills that analyzes Rust project structure through LSP symbol queries. Invoked as `/rust-symbol-analyzer [file.rs] [--type struct|trait|fn|mod]`, it can scan an entire workspace, a single file such as `src/lib.rs`, or filter by symbol type including struct, trait, fn, and mod. Allowed tools are LSP, Read, and Glob. Triggers include `/symbols`, project structure, list structs, list traits, list functions, and related Chinese phrases for symbol analysis. Developers reach for rust-symbol-analyzer when onboarding to an unfamiliar crate graph or auditing public API surface before refactors. The skill returns structured symbol inventories, not edited source files or automated refactors.
- Triggers on /symbols, project structure, list structs, list traits, list functions
- Supports --type struct|trait|fn|mod filters
- Combines Glob(**/*.rs) with LSP documentSymbol and workspaceSymbol
- Returns nested hierarchy of modules, structs, functions and traits
- Single-command project-wide Rust symbol analysis
Rust Symbol Analyzer by the numbers
- 718 all-time installs (skills.sh)
- +6 installs in the week ending Jul 28, 2026 (Skillselion tracking)
- Security screen: HIGH risk (skills.sh audit)
- Data as of Jul 28, 2026 (Skillselion catalog sync)
npx skills add https://github.com/zhanghandong/rust-skills --skill rust-symbol-analyzerAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 718 |
|---|---|
| repo stars | ★ 1.3k |
| Security audit | 2 / 3 scanners passed |
| Last updated | May 24, 2026 |
| Repository | zhanghandong/rust-skills ↗ |
How do you list all Rust traits in a project?
Instantly map structs, traits, functions and modules across a Rust codebase using LSP without manual grepping.
Who is it for?
Rust developers exploring unfamiliar codebases who want LSP-backed struct, trait, function, and module listings without manual ripgrep.
Skip if: Non-Rust projects, or teams needing call-graph analysis, rename refactors, or automated code modifications beyond symbol listing.
When should I use this skill?
A user asks to list structs, traits, functions, modules, or map Rust project structure with `/symbols` or similar triggers.
What you get
LSP-derived symbol inventory of structs, traits, functions, or modules for the Rust workspace or file.
- Symbol inventory report
- Filtered struct/trait/fn/mod listings
By the numbers
- Supports 4 Rust symbol type filters: struct, trait, fn, and mod
Files
Rust Symbol Analyzer
Analyze project structure by examining symbols across your Rust codebase.
Usage
/rust-symbol-analyzer [file.rs] [--type struct|trait|fn|mod]Examples:
/rust-symbol-analyzer- Analyze entire project/rust-symbol-analyzer src/lib.rs- Analyze single file/rust-symbol-analyzer --type trait- List all traits in project
LSP Operations
1. Document Symbols (Single File)
Get all symbols in a file with their hierarchy.
LSP(
operation: "documentSymbol",
filePath: "src/lib.rs",
line: 1,
character: 1
)Returns: Nested structure of modules, structs, functions, etc.
2. Workspace Symbols (Entire Project)
Search for symbols across the workspace.
LSP(
operation: "workspaceSymbol",
filePath: "src/lib.rs",
line: 1,
character: 1
)Note: Query is implicit in the operation context.
Workflow
User: "What's the structure of this project?"
│
▼
[1] Find all Rust files
Glob("**/*.rs")
│
▼
[2] Get symbols from each key file
LSP(documentSymbol) for lib.rs, main.rs
│
▼
[3] Categorize by type
│
▼
[4] Generate structure visualizationOutput Format
Project Overview
## Project Structure: my-project
### Modules
├── src/
│ ├── lib.rs (root)
│ ├── config/
│ │ ├── mod.rs
│ │ └── parser.rs
│ ├── handlers/
│ │ ├── mod.rs
│ │ ├── auth.rs
│ │ └── api.rs
│ └── models/
│ ├── mod.rs
│ ├── user.rs
│ └── order.rs
└── tests/
└── integration.rsBy Symbol Type
## Symbols by Type
### Structs (12)
| Name | Location | Fields | Derives |
|------|----------|--------|---------|
| Config | src/config.rs:10 | 5 | Debug, Clone |
| User | src/models/user.rs:8 | 4 | Debug, Serialize |
| Order | src/models/order.rs:15 | 6 | Debug, Serialize |
| ... | | | |
### Traits (4)
| Name | Location | Methods | Implementors |
|------|----------|---------|--------------|
| Handler | src/handlers/mod.rs:5 | 3 | AuthHandler, ApiHandler |
| Repository | src/db/mod.rs:12 | 5 | UserRepo, OrderRepo |
| ... | | | |
### Functions (25)
| Name | Location | Visibility | Async |
|------|----------|------------|-------|
| main | src/main.rs:10 | pub | yes |
| parse_config | src/config.rs:45 | pub | no |
| ... | | | |
### Enums (6)
| Name | Location | Variants |
|------|----------|----------|
| Error | src/error.rs:5 | 8 |
| Status | src/models/order.rs:5 | 4 |
| ... | | |Single File Analysis
## src/handlers/auth.rs
### Symbols Hierarchy
mod auth
├── struct AuthHandler
│ ├── field: config: Config
│ ├── field: db: Pool
│ └── impl AuthHandler
│ ├── fn new(config, db) -> Self
│ ├── fn authenticate(&self, token) -> Result<User>
│ └── fn refresh_token(&self, user) -> Result<Token>
├── struct Token
│ ├── field: value: String
│ └── field: expires: DateTime
├── enum AuthError
│ ├── InvalidToken
│ ├── Expired
│ └── Unauthorized
└── impl Handler for AuthHandler
├── fn handle(&self, req) -> Response
└── fn name(&self) -> &strAnalysis Features
Complexity Metrics
## Complexity Analysis
| File | Structs | Functions | Lines | Complexity |
|------|---------|-----------|-------|------------|
| src/handlers/auth.rs | 2 | 8 | 150 | Medium |
| src/models/user.rs | 3 | 12 | 200 | High |
| src/config.rs | 1 | 3 | 50 | Low |
**Hotspots:** Files with high complexity that may need refactoring
- src/handlers/api.rs (15 functions, 300 lines)Dependency Analysis
## Internal Dependencies
auth.rs
├── imports from: config.rs, models/user.rs, db/mod.rs
└── imported by: main.rs, handlers/mod.rs
user.rs
├── imports from: (none - leaf module)
└── imported by: auth.rs, api.rs, tests/Symbol Types
| Type | Icon | LSP Kind |
|---|---|---|
| Module | 📦 | Module |
| Struct | 🏗️ | Struct |
| Enum | 🔢 | Enum |
| Trait | 📜 | Interface |
| Function | ⚡ | Function |
| Method | 🔧 | Method |
| Constant | 🔒 | Constant |
| Field | 📎 | Field |
Common Queries
| User Says | Analysis |
|---|---|
| "What structs are in this project?" | workspaceSymbol + filter |
| "Show me src/lib.rs structure" | documentSymbol |
| "Find all async functions" | workspaceSymbol + async filter |
| "List public API" | documentSymbol + pub filter |
Related Skills
| When | See |
|---|---|
| Navigate to symbol | rust-code-navigator |
| Call relationships | rust-call-graph |
| Trait implementations | rust-trait-explorer |
| Safe refactoring | rust-refactor-helper |
Related skills
FAQ
What symbol types can rust-symbol-analyzer list?
rust-symbol-analyzer filters LSP symbols by struct, trait, fn, and mod via `--type`, or returns combined project structure when run without a type filter on the whole workspace or a single `.rs` file.
Which tools does rust-symbol-analyzer use?
rust-symbol-analyzer is limited to LSP, Read, and Glob per its manifest, querying language-server symbols rather than performing text-only ripgrep scans across the Rust tree.
Is Rust Symbol Analyzer safe to install?
skills.sh reports 2 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.