use crate::key::{new_binding, with_keys_str, Binding};
#[derive(Debug, Clone)]
pub struct KeyMap {
pub character_forward: Binding,
pub character_backward: Binding,
pub word_forward: Binding,
pub word_backward: Binding,
pub delete_word_backward: Binding,
pub delete_word_forward: Binding,
pub delete_after_cursor: Binding,
pub delete_before_cursor: Binding,
pub delete_character_backward: Binding,
pub delete_character_forward: Binding,
pub line_start: Binding,
pub line_end: Binding,
pub paste: Binding,
pub accept_suggestion: Binding,
pub next_suggestion: Binding,
pub prev_suggestion: Binding,
}
pub fn default_key_map() -> KeyMap {
KeyMap {
character_forward: new_binding(vec![with_keys_str(&["right", "ctrl+f"])]),
character_backward: new_binding(vec![with_keys_str(&["left", "ctrl+b"])]),
word_forward: new_binding(vec![with_keys_str(&["alt+right", "ctrl+right", "alt+f"])]),
word_backward: new_binding(vec![with_keys_str(&["alt+left", "ctrl+left", "alt+b"])]),
delete_word_backward: new_binding(vec![with_keys_str(&["alt+backspace", "ctrl+w"])]),
delete_word_forward: new_binding(vec![with_keys_str(&["alt+delete", "alt+d"])]),
delete_after_cursor: new_binding(vec![with_keys_str(&["ctrl+k"])]),
delete_before_cursor: new_binding(vec![with_keys_str(&["ctrl+u"])]),
delete_character_backward: new_binding(vec![with_keys_str(&["backspace", "ctrl+h"])]),
delete_character_forward: new_binding(vec![with_keys_str(&["delete", "ctrl+d"])]),
line_start: new_binding(vec![with_keys_str(&["home", "ctrl+a"])]),
line_end: new_binding(vec![with_keys_str(&["end", "ctrl+e"])]),
paste: new_binding(vec![with_keys_str(&["ctrl+v"])]),
accept_suggestion: new_binding(vec![with_keys_str(&["tab"])]),
next_suggestion: new_binding(vec![with_keys_str(&["down", "ctrl+n"])]),
prev_suggestion: new_binding(vec![with_keys_str(&["up", "ctrl+p"])]),
}
}