#[allow(clippy::module_inception)] mod display_map; mod fold_map; #[cfg(not(target_family = "wasm"))] mod folding; #[cfg(target_family = "wasm")] pub mod folding; mod text_wrapper; mod wrap_map; // Re-export public API // Re-export FoldRange and extract_fold_ranges pub use folding::FoldRange; pub use self::display_map::DisplayMap; pub(crate) use self::text_wrapper::LineLayout; /// Position in the buffer (logical text). /// /// - `line`: 0-based logical line number (split by `\n`) /// - `col`: 0-based column offset (byte offset) #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] pub struct BufferPoint { pub line: usize, pub col: usize, } impl BufferPoint { pub fn new(line: usize, col: usize) -> Self { Self { line, col } } } /// Position after soft-wrapping but before folding (internal). #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] pub(super) struct WrapPoint { pub row: usize, pub col: usize, } impl WrapPoint { pub fn new(row: usize, col: usize) -> Self { Self { row, col } } } /// Final display position (after soft-wrapping and folding). /// /// - `row`: 0-based display row (final visible row) /// - `col`: 0-based display column #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] pub struct DisplayPoint { pub row: usize, pub col: usize, } impl DisplayPoint { pub fn new(row: usize, col: usize) -> Self { Self { row, col } } }