Skip to main content

CursorCommand

Enum CursorCommand 

Source
pub enum CursorCommand {
Show 27 variants MoveTo { line: usize, column: usize, }, MoveBy { delta_line: isize, delta_column: isize, }, MoveVisualBy { delta_rows: isize, }, MoveToVisual { row: usize, x_cells: usize, }, MoveToLineStart, MoveToLineEnd, MoveToVisualLineStart, MoveToVisualLineEnd, MoveGraphemeLeft, MoveGraphemeRight, MoveWordLeft, MoveWordRight, SetSelection { start: Position, end: Position, }, ExtendSelection { to: Position, }, ClearSelection, SetSelections { selections: Vec<Selection>, primary_index: usize, }, ClearSecondarySelections, SetRectSelection { anchor: Position, active: Position, }, SelectLine, SelectWord, ExpandSelection, AddCursorAbove, AddCursorBelow, AddNextOccurrence { options: SearchOptions, }, AddAllOccurrences { options: SearchOptions, }, FindNext { query: String, options: SearchOptions, }, FindPrev { query: String, options: SearchOptions, },
}
Expand description

Cursor & selection commands

Variants§

§

MoveTo

Move cursor to the specified position

Fields

§line: usize

Target logical line index.

§column: usize

Target column in characters (will be clamped to line length).

§

MoveBy

Move cursor relatively

Fields

§delta_line: isize

Delta in logical lines.

§delta_column: isize

Delta in columns (characters).

§

MoveVisualBy

Move cursor by visual rows (soft wrap + folding aware).

This uses a “preferred x” in cells (sticky column) similar to many editors: horizontal moves update preferred x, while vertical visual moves try to preserve it.

Fields

§delta_rows: isize

Delta in global visual rows (after wrapping/folding).

§

MoveToVisual

Move cursor to a visual position (global visual row + x in cells).

Fields

§row: usize

Target global visual row (after wrapping/folding).

§x_cells: usize

Target x offset in cells within that visual row.

§

MoveToLineStart

Move cursor to the start of the current logical line.

§

MoveToLineEnd

Move cursor to the end of the current logical line.

§

MoveToVisualLineStart

Move cursor to the start of the current visual line segment (wrap-aware).

§

MoveToVisualLineEnd

Move cursor to the end of the current visual line segment (wrap-aware).

§

MoveGraphemeLeft

Move cursor left by one Unicode grapheme cluster (UAX #29).

§

MoveGraphemeRight

Move cursor right by one Unicode grapheme cluster (UAX #29).

§

MoveWordLeft

Move cursor left to the previous Unicode word boundary (UAX #29).

§

MoveWordRight

Move cursor right to the next Unicode word boundary (UAX #29).

§

SetSelection

Set selection range

Fields

§start: Position

Selection start position.

§end: Position

Selection end position.

§

ExtendSelection

Extend selection range

Fields

§to: Position

New active end position.

§

ClearSelection

Clear selection

§

SetSelections

Set multiple selections/multi-cursor (including primary)

Fields

§selections: Vec<Selection>

All selections (including primary).

§primary_index: usize

Index of the primary selection in selections.

§

ClearSecondarySelections

Clear secondary selections/cursors, keeping only primary

§

SetRectSelection

Set rectangular selection (box/column selection), which expands into one Selection per line

Fields

§anchor: Position

Anchor position (fixed corner).

§active: Position

Active position (moving corner).

§

SelectLine

Select the entire current line (or the set of lines covered by the selection), for all carets.

§

SelectWord

Select the word under each caret (or keep existing selections if already non-empty).

§

ExpandSelection

Expand selection in a basic, editor-friendly way.

  • If the selection is empty, expands to the word under the caret.
  • If the selection is non-empty, expands to full line(s).
§

AddCursorAbove

Add a new caret above each existing caret/selection (at the same column, clamped to line length).

§

AddCursorBelow

Add a new caret below each existing caret/selection (at the same column, clamped to line length).

§

AddNextOccurrence

Multi-cursor match op: add the next occurrence of the current selection/word as a new selection.

Fields

§options: SearchOptions

Search options (case sensitivity, whole-word, regex).

§

AddAllOccurrences

Multi-cursor match op: select all occurrences of the current selection/word.

Fields

§options: SearchOptions

Search options (case sensitivity, whole-word, regex).

§

FindNext

Find the next occurrence of query and select it (primary selection only).

Fields

§query: String

Search query.

§options: SearchOptions

Search options (case sensitivity, whole-word, regex).

§

FindPrev

Find the previous occurrence of query and select it (primary selection only).

Fields

§query: String

Search query.

§options: SearchOptions

Search options (case sensitivity, whole-word, regex).

Trait Implementations§

Source§

impl Clone for CursorCommand

Source§

fn clone(&self) -> CursorCommand

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for CursorCommand

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for CursorCommand

Source§

fn eq(&self, other: &CursorCommand) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for CursorCommand

Source§

impl StructuralPartialEq for CursorCommand

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.