Expand description
Code relationships module for definition/reference tracking and call graphs.
This module provides capabilities for understanding code relationships:
- Find where symbols are defined
- Find all references to a symbol
- Build call graphs for functions/methods
Uses RepoMap (tree-sitter AST-based) for all languages.
§Usage
ⓘ
use brainwires_rag::code_analysis::{HybridRelationsProvider, RelationsProvider};
let provider = HybridRelationsProvider::new()?;
let definitions = provider.extract_definitions(&file_info)?;
let references = provider.extract_references(&file_info, &symbol_index)?;Re-exports§
pub use types::CallEdge;pub use types::CallGraphNode;pub use types::Definition;pub use types::DefinitionResult;pub use types::PrecisionLevel;pub use types::Reference;pub use types::ReferenceKind;pub use types::ReferenceResult;pub use types::SymbolId;pub use types::SymbolInfo;pub use types::SymbolKind;pub use types::Visibility;
Modules§
- repomap
- RepoMap-style code relationship extraction.
- storage
- Storage layer for code relationships.
- types
- Type definitions for code relationships (definitions, references, call graphs).
Structs§
- Hybrid
Relations Provider - Hybrid provider that selects the best available provider per language.
- Relations
Config - Configuration for relations extraction
Traits§
- Relations
Provider - Trait for extracting code relationships from source files.