Last Updated: 2024-12-15
-
initialize()- Declares all capabilities -
goto_definition()- Graph-based definition lookup -
references()- Incoming edge traversal -
hover()- Rich metadata display -
document_symbol()- File-level symbol listing -
call_hierarchy_provider- prepare, incoming_calls, outgoing_calls -
execute_command()- 8 custom commands routed -
did_open/did_change/did_save- File lifecycle management - File indexing - Recursive directory scanning
-
handle_get_dependency_graph()- BFS traversal with edge filtering -
handle_get_call_graph()- Function call relationship analysis -
handle_analyze_impact()- Direct + indirect impact detection -
handle_get_parser_metrics()- Per-language parsing statistics - AI Context Provider - Intent-based context selection, token budgeting
-
codegraph_get_dependency_graph -
codegraph_get_call_graph -
codegraph_analyze_impact -
codegraph_get_ai_context -
codegraph_find_related_tests -
codegraph_get_symbol_info -
codegraph_analyze_complexity -
codegraph_find_unused_code -
codegraph_analyze_coupling
- @codegraph chat participant for any AI chatbot
- Commands: dependencies, callgraph, impact, tests, context
- Automatic intent detection from prompts
- Follow-up suggestions after responses
- Python parser
- Rust parser
- TypeScript parser
- JavaScript parser
- Go parser
- C parser
-
parser_registry.rs- Language parser management -
cache.rs- Query result caching (LRU) -
index.rs- Symbol indexing and fast lookup -
error.rs- Error type definitions
- LSP server initialization and lifecycle
- Language Model Tools registration
- Tool manager with formatting functions
- Tree view provider for workspace symbols
- Command registration
- 108 Rust tests
- 132 TypeScript tests
- GraphVisualizationPanel class structure
- Webview creation and messaging
- D3.js-style graph rendering (custom force simulation)
- Interactive node expansion (double-click to expand)
- Graph layout algorithms (force-directed)
- Zoom and pan controls
- Node dragging
- Click to navigate to source
- Legend display
- Export functionality (SVG, JSON)
- Watcher module structure
- BatchUpdateResult types
- GraphUpdater for file changes
- File system event subscription
- Incremental index updates
- Debounced change handling (300ms default)
-
codegraph.openAIChatcommand - ✅ Implemented as @codegraph chat participant - Persistence layer - Graph data storage (RocksDB/SQLite)
- Incremental indexing - Avoid full workspace re-index
- Graph export (SVG, JSON) - ✅ Implemented
- Advanced graph filtering UI
- Performance profiling dashboard
- Multi-root workspace support improvements
- Additional language support (Java, C++, C#)
- Custom theme support for graphs
- Keyboard navigation in graph view
Note: C language support was added in v0.2.0
| Module | Tests | Coverage |
|---|---|---|
| cache.rs | 20 | 100% |
| error.rs | 18 | 100% |
| parser_registry.rs | 21 | 97% |
| index.rs | 26 | 71% |
| watcher.rs | 14 | 25% |
| ai_context.rs | 9 | 18% |
| backend.rs | 0 | 0% (requires LSP integration tests) |
| handlers/* | 0 | 0% (requires LSP integration tests) |
- In-memory only graph - Re-indexes on every startup
- Approximate token counting - Uses 4 chars/token heuristic
No incremental updates- ✅ Implemented with debounced file watcherGraph visualization incomplete- ✅ Working with force-directed layout
Implement file watcher integration for incremental updates- ✅ DoneComplete graph visualization webview- ✅ Done- Add persistence layer for graph data
- Implement
codegraph.openAIChatcommand