Symbol indexer
Per-file extraction of function/class/variable definitions for fast jumps and @symbol: mentions.
What it does
services/symbol_indexer.py walks the project tree and extracts definitions from every supported file. Stored as a per-workspace JSON index.
Languages supported:
- Python (functions, classes, methods, top-level variables)
- JavaScript / TypeScript (functions, classes, exports, hooks)
- Go, Rust, Ruby, PHP — basic function/class extraction
- HTML/CSS — IDs and CSS class names
The index is rebuilt on:
- Every project rescan (top-bar Refresh button).
- File saves (incremental, just the changed file).
How to use it
From @symbol: in the planner
Type @symbol:my_function in the planner. The picker shows up to 8 matches with file:line. Selecting one injects the symbol's source body ± 18 lines.
From the API
GET /api/project/symbols?q=validate_user
Returns:
[
{ "name": "validate_user", "kind": "function",
"file": "services/auth.py", "line": 87 }
]
From the UI
The Architecture panel surfaces top-level symbols per file. Click a symbol to jump to its definition.
What's not indexed
- Symbol references (just definitions).
- Comments and docstrings.
- Macro-generated symbols (Rust
macro_rules!, Lisp macros). - Anything in
node_modules/and other ignored paths.
For finding callers of a symbol, use Project search with the symbol name.