#[derive(Clone)]
pub enum EditCommand {
InsertChar(char),
InsertString(String),
DeleteLeftChar,
DeleteRightChar,
DeleteSpan(usize, usize),
Clear,
}
#[derive(Clone)]
pub enum MovementCommand {
MoveToStart,
MoveToEnd,
MoveLeftChar,
MoveRightChar,
MoveLeftWord,
MoveRightWord,
MoveToPosition(usize),
}
#[derive(Clone)]
pub enum LineEditorEvent {
None,
Enter,
Esc,
Submit,
Edit(Vec<EditCommand>),
Movement(Vec<MovementCommand>),
Up,
Down,
Right,
Left,
SelectRight,
SelectLeft,
SelectAll,
CutSelected,
CopySelected,
Paste,
Backspace,
Delete,
ToggleAutoComplete,
}