codeprism_core/
lib.rs

1//! CodePrism - Incremental Polyglot Parser and Graph Builder
2//!
3//! This crate provides the core functionality for parsing source code across
4//! multiple languages, building a universal AST, and maintaining a graph of
5//! code relationships.
6
7#![warn(missing_docs)]
8#![warn(clippy::all)]
9
10pub mod ast;
11pub mod content;
12pub mod error;
13pub mod graph;
14pub mod indexer;
15pub mod linkers;
16pub mod parser;
17pub mod patch;
18pub mod pipeline;
19pub mod repository;
20pub mod scanner;
21pub mod watcher;
22
23pub use ast::{Edge, EdgeKind, Language, Node, NodeId, NodeKind, Span};
24pub use content::search::{ContentSearchManager, SearchQueryBuilder};
25pub use content::{
26    CommentContext, ConfigFormat, ContentChunk, ContentNode, ContentStats, ContentType,
27    DocumentFormat, SearchQuery, SearchResult,
28};
29pub use error::{Error, Result};
30pub use graph::{
31    DynamicAttribute, GraphQuery, GraphStore, InheritanceFilter, InheritanceInfo,
32    InheritanceRelation, PathResult, SymbolInfo,
33};
34pub use indexer::{
35    BulkIndexer, IndexingConfig, IndexingProgressReporter, IndexingResult, IndexingStats,
36    MemoryStats,
37};
38pub use linkers::{Linker, RestLinker, SqlLinker, SymbolResolver};
39pub use parser::{LanguageParser, LanguageRegistry, ParseContext, ParseResult, ParserEngine};
40pub use patch::{AstPatch, PatchBuilder};
41pub use pipeline::{
42    LoggingEventHandler, MonitoringPipeline, NoOpEventHandler, PipelineConfig, PipelineEvent,
43    PipelineEventHandler, PipelineStats,
44};
45pub use repository::{HealthStatus, RepositoryConfig, RepositoryInfo, RepositoryManager};
46pub use scanner::{
47    DependencyMode, DiscoveredFile, NoOpProgressReporter, ProgressReporter, RepositoryScanner,
48    ScanResult,
49};
50pub use watcher::{ChangeEvent, ChangeKind, FileWatcher};
51
52/// Re-export commonly used types
53pub mod prelude {
54    pub use crate::ast::{Edge, EdgeKind, Language, Node, NodeId, NodeKind, Span};
55    pub use crate::content::search::{ContentSearchManager, SearchQueryBuilder};
56    pub use crate::content::{
57        CommentContext, ConfigFormat, ContentChunk, ContentNode, ContentStats, ContentType,
58        DocumentFormat, SearchQuery, SearchResult,
59    };
60    pub use crate::error::{Error, Result};
61    pub use crate::graph::{
62        DynamicAttribute, GraphQuery, GraphStore, InheritanceFilter, InheritanceInfo,
63        InheritanceRelation, PathResult, SymbolInfo,
64    };
65    pub use crate::indexer::{
66        BulkIndexer, IndexingConfig, IndexingProgressReporter, IndexingResult, IndexingStats,
67        MemoryStats,
68    };
69    pub use crate::linkers::{Linker, RestLinker, SqlLinker, SymbolResolver};
70    pub use crate::parser::{
71        LanguageParser, LanguageRegistry, ParseContext, ParseResult, ParserEngine,
72    };
73    pub use crate::patch::{AstPatch, PatchBuilder};
74    pub use crate::pipeline::{
75        LoggingEventHandler, MonitoringPipeline, NoOpEventHandler, PipelineConfig, PipelineEvent,
76        PipelineEventHandler, PipelineStats,
77    };
78    pub use crate::repository::{
79        HealthStatus, RepositoryConfig, RepositoryInfo, RepositoryManager,
80    };
81    pub use crate::scanner::{
82        DependencyMode, DiscoveredFile, NoOpProgressReporter, ProgressReporter, RepositoryScanner,
83        ScanResult,
84    };
85    pub use crate::watcher::{ChangeEvent, ChangeKind, FileWatcher};
86}