62 lines
1.4 KiB
Rust
62 lines
1.4 KiB
Rust
#[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 }
|
|
}
|
|
}
|