#[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
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
impl CursorAction
Sourcepub fn is_switchable(&self, _: &EditContext) -> bool
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
impl Clone for CursorAction
Source§fn clone(&self) -> CursorAction
fn clone(&self) -> CursorAction
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more