bubbletea_widgets/textinput/
keymap.rs1use crate::key::{new_binding, with_keys_str, Binding};
4
5#[derive(Debug, Clone)]
8pub struct KeyMap {
9 pub character_forward: Binding,
11 pub character_backward: Binding,
13 pub word_forward: Binding,
15 pub word_backward: Binding,
17 pub delete_word_backward: Binding,
19 pub delete_word_forward: Binding,
21 pub delete_after_cursor: Binding,
23 pub delete_before_cursor: Binding,
25 pub delete_character_backward: Binding,
27 pub delete_character_forward: Binding,
29 pub line_start: Binding,
31 pub line_end: Binding,
33 pub paste: Binding,
35 pub accept_suggestion: Binding,
37 pub next_suggestion: Binding,
39 pub prev_suggestion: Binding,
41}
42
43pub fn default_key_map() -> KeyMap {
46 KeyMap {
47 character_forward: new_binding(vec![with_keys_str(&["right", "ctrl+f"])]),
48 character_backward: new_binding(vec![with_keys_str(&["left", "ctrl+b"])]),
49 word_forward: new_binding(vec![with_keys_str(&["alt+right", "ctrl+right", "alt+f"])]),
50 word_backward: new_binding(vec![with_keys_str(&["alt+left", "ctrl+left", "alt+b"])]),
51 delete_word_backward: new_binding(vec![with_keys_str(&["alt+backspace", "ctrl+w"])]),
52 delete_word_forward: new_binding(vec![with_keys_str(&["alt+delete", "alt+d"])]),
53 delete_after_cursor: new_binding(vec![with_keys_str(&["ctrl+k"])]),
54 delete_before_cursor: new_binding(vec![with_keys_str(&["ctrl+u"])]),
55 delete_character_backward: new_binding(vec![with_keys_str(&["backspace", "ctrl+h"])]),
56 delete_character_forward: new_binding(vec![with_keys_str(&["delete", "ctrl+d"])]),
57 line_start: new_binding(vec![with_keys_str(&["home", "ctrl+a"])]),
58 line_end: new_binding(vec![with_keys_str(&["end", "ctrl+e"])]),
59 paste: new_binding(vec![with_keys_str(&["ctrl+v"])]),
60 accept_suggestion: new_binding(vec![with_keys_str(&["tab"])]),
61 next_suggestion: new_binding(vec![with_keys_str(&["down", "ctrl+n"])]),
62 prev_suggestion: new_binding(vec![with_keys_str(&["up", "ctrl+p"])]),
63 }
64}