#[non_exhaustive]pub enum InsertTextAction {
OpenLine(TargetShape, MoveDir1D, Count),
Paste(PasteStyle, Count),
Transcribe(String, MoveDir1D, Count),
Type(Specifier<Char>, MoveDir1D, Count),
}Expand description
Actions for inserting text into a buffer.
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.
OpenLine(TargetShape, MoveDir1D, Count)
Insert a new line shape-wise before or after the current position.
§Example: Using action!
use editor_types::prelude::*;
use editor_types::{action, Action, InsertTextAction};
let shape = TargetShape::LineWise;
let count = Count::Contextual;
let act: Action = InsertTextAction::OpenLine(shape, MoveDir1D::Next, count).into();
// All of these are equivalent:
assert_eq!(act, action!("insert open-line -S line -d next -c ctx"));
assert_eq!(act, action!("insert open-line -S line -d next"));Paste(PasteStyle, Count)
Paste before or after the current cursor position n times.
§Example: Using action!
use editor_types::prelude::*;
use editor_types::{action, Action, InsertTextAction};
let count = 5;
let paste: Action = action!("insert paste -s (side -d next) -c {count}");
assert_eq!(paste, InsertTextAction::Paste(PasteStyle::Side(MoveDir1D::Next), Count::Exact(5)).into());Transcribe(String, MoveDir1D, Count)
Insert the contents of a String on either side of the cursor.
§Example: Using action!
use editor_types::prelude::*;
use editor_types::{action, Action, InsertTextAction};
let input: Action = action!(r#"insert transcribe -i "hello" -d next -c 1"#);
assert_eq!(input, InsertTextAction::Transcribe("hello".into(), MoveDir1D::Next, 1.into()).into());Type(Specifier<Char>, MoveDir1D, Count)
Type a character on either side of the cursor n times.
§Example: Using action!
use editor_types::prelude::*;
use editor_types::{action, Action, InsertTextAction};
let c = Specifier::Exact(Char::from('a'));
let dir = MoveDir1D::Previous;
let count = Count::Contextual;
let act: Action = InsertTextAction::Type(c.clone(), dir, count).into();
// All of these are equivalent:
assert_eq!(act, action!("insert type -i (exact \'a\') -d previous -c ctx"));
assert_eq!(act, action!("insert type -i (exact \'a\') -c ctx"));
assert_eq!(act, action!("insert type -i (exact \'a\') -d previous"));
assert_eq!(act, action!("insert type -i (exact \'a\')"));
assert_eq!(act, action!("insert type -i {c}"));Trait Implementations§
Source§impl Clone for InsertTextAction
impl Clone for InsertTextAction
Source§fn clone(&self) -> InsertTextAction
fn clone(&self) -> InsertTextAction
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for InsertTextAction
impl Debug for InsertTextAction
Source§impl<I: ApplicationInfo> From<InsertTextAction> for Action<I>
impl<I: ApplicationInfo> From<InsertTextAction> for Action<I>
Source§fn from(act: InsertTextAction) -> Self
fn from(act: InsertTextAction) -> Self
Converts to this type from the input type.
Source§impl From<InsertTextAction> for EditorAction
impl From<InsertTextAction> for EditorAction
Source§fn from(act: InsertTextAction) -> Self
fn from(act: InsertTextAction) -> Self
Converts to this type from the input type.
Source§impl PartialEq for InsertTextAction
impl PartialEq for InsertTextAction
impl Eq for InsertTextAction
impl StructuralPartialEq for InsertTextAction
Auto Trait Implementations§
impl Freeze for InsertTextAction
impl RefUnwindSafe for InsertTextAction
impl Send for InsertTextAction
impl Sync for InsertTextAction
impl Unpin for InsertTextAction
impl UnwindSafe for InsertTextAction
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
Mutably borrows from an owned value. Read more