Skip to main content

CursorAction

Enum CursorAction 

Source
#[non_exhaustive]
pub enum CursorAction { Close(CursorCloseTarget), Restore(CursorGroupCombineStyle), Rotate(MoveDir1D, Count), Save(CursorGroupCombineStyle), Split(Count), }
Expand description

Actions for manipulating cursor groups.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

Close(CursorCloseTarget)

Close the targeted cursors in the current cursor group.

§Example: Using action!
use editor_types::prelude::*;
use editor_types::{action, Action, CursorAction};

let close: Action = action!("cursor close -t leader");
assert_eq!(close, CursorAction::Close(CursorCloseTarget::Leader).into());

let close: Action = action!("cursor close -t followers");
assert_eq!(close, CursorAction::Close(CursorCloseTarget::Followers).into());
§

Restore(CursorGroupCombineStyle)

Restore a saved cursor group.

If a combining style is specified, then the saved group will be merged with the current one as specified.

§Example: Using action!
use editor_types::prelude::*;
use editor_types::{action, Action, CursorAction};

let restore: Action = action!("cursor restore -s append");
assert_eq!(restore, CursorAction::Restore(CursorGroupCombineStyle::Append).into());

let restore: Action = action!("cursor restore -s replace");
assert_eq!(restore, CursorAction::Restore(CursorGroupCombineStyle::Replace).into());

let restore: Action = action!("cursor restore -s (merge select-cursor -d prev)");
assert_eq!(restore, CursorAction::Restore(CursorGroupCombineStyle::Merge(CursorMergeStyle::SelectCursor(MoveDir1D::Previous))).into());

See the documentation for CursorGroupCombineStyle for how to construct each of its variants with action.

§

Rotate(MoveDir1D, Count)

Rotate which cursor in the cursor group is the current leader .

§Example: Using action!
use editor_types::prelude::*;
use editor_types::{action, Action, CursorAction};

let rotate: Action = action!("cursor rotate -d prev");
assert_eq!(rotate, CursorAction::Rotate(MoveDir1D::Previous, Count::Contextual).into());

let rotate: Action = action!("cursor rotate -d next -c 2");
assert_eq!(rotate, CursorAction::Rotate(MoveDir1D::Next, Count::Exact(2)).into());
§

Save(CursorGroupCombineStyle)

Save the current cursor group.

If a combining style is specified, then the current group will be merged with any previously saved group as specified.

§Example: Using action!
use editor_types::prelude::*;
use editor_types::{action, Action, CursorAction};

let save: Action = action!("cursor save -s append");
assert_eq!(save, CursorAction::Save(CursorGroupCombineStyle::Append).into());

let save: Action = action!("cursor save -s replace");
assert_eq!(save, CursorAction::Save(CursorGroupCombineStyle::Replace).into());

let save: Action = action!("cursor save -s (merge union)");
assert_eq!(save, CursorAction::Save(CursorGroupCombineStyle::Merge(CursorMergeStyle::Union)).into());

See the documentation for CursorGroupCombineStyle for how to construct each of its variants with action.

§

Split(Count)

Split each cursor in the cursor group n times.

§Example: Using action!
use editor_types::prelude::*;
use editor_types::{action, Action, CursorAction};

let split: Action = action!("cursor split -c {}", Count::Contextual);
assert_eq!(split, CursorAction::Split(Count::Contextual).into());

let split: Action = action!("cursor split -c {}", 5);
assert_eq!(split, CursorAction::Split(Count::Exact(5)).into());

Implementations§

Source§

impl CursorAction

Source

pub fn is_switchable(&self, _: &EditContext) -> bool

Returns true if this CursorAction is allowed to trigger a WindowAction::Switch after an error.

Trait Implementations§

Source§

impl Clone for CursorAction

Source§

fn clone(&self) -> CursorAction

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 CursorAction

Source§

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

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

impl Eq for CursorAction

Source§

impl From<CursorAction> for EditorAction

Source§

fn from(act: CursorAction) -> Self

Converts to this type from the input type.
Source§

impl<I: ApplicationInfo> From<CursorAction> for Action<I>

Source§

fn from(act: CursorAction) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for CursorAction

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for CursorAction

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.