Skip to main content

semantic/
lib.rs

1// SPDX-License-Identifier: Apache-2.0
2//! Semantic analysis and parser-heavy diff support.
3//!
4//! The native hunk-level text merge engine lives in the separate
5//! `heddle-merge` crate so it can be used by non-semantic CLI builds.
6
7pub mod analysis;
8pub mod cache;
9pub mod diff;
10pub mod merge_driver;
11pub mod parser;
12mod symbol_extraction;
13pub mod symbol_resolver;
14
15pub use analysis::{
16    AggregateKind, AggregatedChange, AggregationResult, HotEventKind, HotSpot, HotSpotKey,
17    HotSpotKeyValue, HotSpotParams, HotSpotsReport, SimilarityMethod, aggregate_changes,
18    analyze_actor_histogram, analyze_hot_spots, classify_modification,
19    classify_modification_with_confidence, compute_similarity, detect_file_renames,
20    detect_function_changes,
21};
22pub use cache::{SemanticParseCache, SemanticParseCacheStats};
23pub use diff::{
24    DiffKind, SemanticBudget, SemanticCheckOnlyResult, SemanticCheckStatus, SemanticDiffOptions,
25    SemanticDiffResult, SemanticFallbackReason, SemanticSummaryResult, WorktreeStatus,
26    semantic_check_only, semantic_check_only_worktree, semantic_diff, semantic_diff_summary,
27    semantic_diff_summary_worktree, semantic_diff_worktree,
28};
29pub use merge_driver::{
30    MergeStrategy, semantic_three_way_merge, three_way_merge as merge_driver_three_way,
31};
32pub use parser::{Language, ParsedFile};