#![allow(dead_code)]
use crate::buffer::MoveKind;
use std::path::Path;
use std::rc::Rc;
use crate::keymap::KeyEvent;
use crate::mode::EditingMode;
use crate::window::{FocusDir, SplitDir};
use rizz::runtime::Value;
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub enum Action {
Noop,
Quit,
SetMode(EditingMode),
InsertChar(char),
InsertNewline,
DeleteChar,
MoveCursor(MoveKind),
CommandCancel,
BufCreate {
set_active: bool,
path: Option<Rc<Path>>,
},
BufEdit(Rc<Path>),
BufDelete,
BufNext,
BufPrev,
BufWrite(Option<Rc<Path>>),
WindowSplit(SplitDir),
WindowClose,
WindowFocusNext,
WindowFocus(FocusDir),
KeymapSet {
mode: EditingMode,
lhs: Vec<KeyEvent>,
rhs: Rc<Action>,
},
KeymapRemove {
mode: EditingMode,
lhs: Vec<KeyEvent>,
},
EvalLisp(Rc<Value>),
}