use crate::{
domain::{render_text::RenderedVimTextSpan, viewport::TextViewport},
ecs::events::intent::ViewportIntent,
};
use bevy::prelude::Component;
use std::ops::Range;
#[derive(Clone, Component, Debug, Default, Eq, PartialEq)]
pub struct ViewportState {
pub viewport: TextViewport,
pub pending_intent: Option<ViewportIntent>,
}
#[derive(Clone, Component, Debug, Default, Eq, PartialEq)]
pub struct VisibleTextRange {
pub range: Range<usize>,
}
#[derive(Clone, Component, Debug, Default, Eq, PartialEq)]
pub struct TextSpanLayout {
pub spans: Vec<RenderedVimTextSpan>,
}