Module relations

Module relations 

Source
Expand description

Code relationships: definitions, references, call graphs 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

§Architecture

The module uses a hybrid approach:

  • Stack-graphs (optional feature): High-precision name resolution for Python, TypeScript, Java, and Ruby (~95% accuracy)
  • RepoMap: AST-based extraction with heuristic matching for all languages (~70% accuracy)

§Usage

use project_rag::relations::{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.