Skip to main content

Module code_analysis

Module code_analysis 

Source
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§

HybridRelationsProvider
Hybrid provider that selects the best available provider per language.
RelationsConfig
Configuration for relations extraction

Traits§

RelationsProvider
Trait for extracting code relationships from source files.