Skip to main content

CursorCommand

Enum CursorCommand 

Source
pub enum CursorCommand {
Show 31 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, MoveToMatchingBracket, SnippetNextPlaceholder, SnippetPrevPlaceholder, 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, ExpandSelectionBy { unit: ExpandSelectionUnit, count: usize, direction: ExpandSelectionDirection, }, 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).

§

MoveToMatchingBracket

Move each caret to its matching bracket (if the caret is on or adjacent to a bracket).

Matching is performed for the configured bracket pairs (typically (), [], {}).

§

SnippetNextPlaceholder

If a snippet session is active, jump to the next snippet tabstop (placeholder).

This is typically bound to the Tab key while a completion snippet is active.

§

SnippetPrevPlaceholder

If a snippet session is active, jump to the previous snippet tabstop (placeholder).

This is typically bound to Shift-Tab while a completion snippet is active.

§

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).
§

ExpandSelectionBy

Expand selection by a configurable unit and direction.

Notes:

  • This is an expand-only operation: it never shrinks the current selection.
  • The expansion direction is absolute (backward/forward in document order). If you call it with different directions over time, the selection can expand on both ends.

Fields

§unit: ExpandSelectionUnit

Expansion unit.

§count: usize

Number of units to expand by. 0 is a no-op.

§direction: ExpandSelectionDirection

Expansion direction in document order.

§

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 (const: unstable) · 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 Eq for CursorCommand

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 (const: unstable) · 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 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.