pub struct SelectionState {
pub active: bool,
pub anchor: Option<SelectionPos>,
pub cursor: Option<SelectionPos>,
pub frozen_lines: Option<Vec<Line<'static>>>,
pub frozen_width: usize,
pub last_copied_text: Option<String>,
}Expand description
Selection state for markdown widget.
Tracks whether selection mode is active and the selection bounds.
Fields§
§active: boolWhether selection mode is active.
anchor: Option<SelectionPos>Selection anchor (start point).
cursor: Option<SelectionPos>Current cursor/end position.
frozen_lines: Option<Vec<Line<'static>>>Cached rendered lines for stable selection.
frozen_width: usizeWidth when lines were frozen.
last_copied_text: Option<String>Last copied text (for showing toast notification).
Implementations§
Source§impl SelectionState
Constructor for SelectionState.
impl SelectionState
Constructor for SelectionState.
Sourcepub fn new() -> SelectionState
Available on crate feature markdown-preview only.
pub fn new() -> SelectionState
markdown-preview only.Create a new inactive selection state.
Source§impl SelectionState
impl SelectionState
Sourcepub fn enter(&mut self, x: i32, y: i32, lines: Vec<Line<'static>>, width: usize)
Available on crate feature markdown-preview only.
pub fn enter(&mut self, x: i32, y: i32, lines: Vec<Line<'static>>, width: usize)
markdown-preview only.Enter selection mode at the given position.
§Arguments
x- X coordinate (column)y- Y coordinate (document row)lines- Current rendered lines to freezewidth- Current render width
Source§impl SelectionState
Exit selection mode.
impl SelectionState
Exit selection mode.
Source§impl SelectionState
Extract selected text from rendered lines.
impl SelectionState
Extract selected text from rendered lines.
Sourcepub fn get_selected_text(&self) -> Option<String>
Available on crate feature markdown-preview only.
pub fn get_selected_text(&self) -> Option<String>
markdown-preview only.Get the selected text from the frozen lines.
§Returns
The selected text as a string, or None if no selection.
Source§impl SelectionState
Get the current selection bounds.
impl SelectionState
Get the current selection bounds.
Sourcepub fn get_selection(&self) -> Option<(SelectionPos, SelectionPos)>
Available on crate feature markdown-preview only.
pub fn get_selection(&self) -> Option<(SelectionPos, SelectionPos)>
markdown-preview only.Get the normalized selection bounds (start, end) where start <= end.
§Returns
Some((start, end)) if there’s an active selection, None otherwise.
Sourcepub fn has_selection(&self) -> bool
Available on crate feature markdown-preview only.
pub fn has_selection(&self) -> bool
markdown-preview only.Check if there’s an active selection (anchor and cursor set).
Source§impl SelectionState
Check if a position is within the selection.
impl SelectionState
Check if a position is within the selection.
Source§impl SelectionState
Update cursor position during selection.
impl SelectionState
Update cursor position during selection.
Sourcepub fn update_cursor(&mut self, x: i32, y: i32)
Available on crate feature markdown-preview only.
pub fn update_cursor(&mut self, x: i32, y: i32)
markdown-preview only.Sourcepub fn set_anchor(&mut self)
Available on crate feature markdown-preview only.
pub fn set_anchor(&mut self)
markdown-preview only.Set anchor at current cursor position (for keyboard selection toggle).
Sourcepub fn clear_anchor(&mut self)
Available on crate feature markdown-preview only.
pub fn clear_anchor(&mut self)
markdown-preview only.Clear anchor (deselect).
Sourcepub fn toggle_anchor(&mut self)
Available on crate feature markdown-preview only.
pub fn toggle_anchor(&mut self)
markdown-preview only.Toggle anchor at current position.
Trait Implementations§
Source§impl Clone for SelectionState
impl Clone for SelectionState
Source§fn clone(&self) -> SelectionState
fn clone(&self) -> SelectionState
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SelectionState
impl Debug for SelectionState
Source§impl Default for SelectionState
impl Default for SelectionState
Source§fn default() -> SelectionState
fn default() -> SelectionState
Auto Trait Implementations§
impl Freeze for SelectionState
impl RefUnwindSafe for SelectionState
impl Send for SelectionState
impl Sync for SelectionState
impl Unpin for SelectionState
impl UnsafeUnpin for SelectionState
impl UnwindSafe for SelectionState
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more