Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'helix-term/src/keymap/default.rs')
-rw-r--r--helix-term/src/keymap/default.rs83
1 files changed, 24 insertions, 59 deletions
diff --git a/helix-term/src/keymap/default.rs b/helix-term/src/keymap/default.rs
index 5bbbd3f4..ebcd125a 100644
--- a/helix-term/src/keymap/default.rs
+++ b/helix-term/src/keymap/default.rs
@@ -1,14 +1,14 @@
use std::collections::HashMap;
use super::macros::keymap;
-use super::{KeyTrie, Mode};
+use super::{Keymap, Mode};
use helix_core::hashmap;
-pub fn default() -> HashMap<Mode, KeyTrie> {
+pub fn default() -> HashMap<Mode, Keymap> {
let normal = keymap!({ "Normal mode"
"h" | "left" => move_char_left,
- "j" | "down" => move_visual_line_down,
- "k" | "up" => move_visual_line_up,
+ "j" | "down" => move_line_down,
+ "k" | "up" => move_line_up,
"l" | "right" => move_char_right,
"t" => find_till_char,
@@ -38,14 +38,12 @@ pub fn default() -> HashMap<Mode, KeyTrie> {
"G" => goto_line,
"g" => { "Goto"
"g" => goto_file_start,
- "|" => goto_column,
"e" => goto_last_line,
"f" => goto_file,
"h" => goto_line_start,
"l" => goto_line_end,
"s" => goto_first_nonwhitespace,
"d" => goto_definition,
- "D" => goto_declaration,
"y" => goto_type_definition,
"r" => goto_reference,
"i" => goto_implementation,
@@ -56,10 +54,7 @@ pub fn default() -> HashMap<Mode, KeyTrie> {
"m" => goto_last_modified_file,
"n" => goto_next_buffer,
"p" => goto_previous_buffer,
- "k" => move_line_up,
- "j" => move_line_down,
"." => goto_last_modification,
- "w" => goto_word,
},
":" => command_mode,
@@ -81,19 +76,13 @@ pub fn default() -> HashMap<Mode, KeyTrie> {
"s" => select_regex,
"A-s" => split_selection_on_newline,
- "A-minus" => merge_selections,
- "A-_" => merge_consecutive_selections,
"S" => split_selection,
";" => collapse_selection,
"A-;" => flip_selections,
"A-o" | "A-up" => expand_selection,
"A-i" | "A-down" => shrink_selection,
- "A-I" | "A-S-down" => select_all_children,
"A-p" | "A-left" => select_prev_sibling,
"A-n" | "A-right" => select_next_sibling,
- "A-e" => move_parent_node_end,
- "A-b" => move_parent_node_start,
- "A-a" => select_all_siblings,
"%" => select_all,
"x" => extend_line_below,
@@ -117,10 +106,8 @@ pub fn default() -> HashMap<Mode, KeyTrie> {
"t" => goto_prev_class,
"a" => goto_prev_parameter,
"c" => goto_prev_comment,
- "e" => goto_prev_entry,
"T" => goto_prev_test,
"p" => goto_prev_paragraph,
- "x" => goto_prev_xml_element,
"space" => add_newline_above,
},
"]" => { "Right bracket"
@@ -132,10 +119,8 @@ pub fn default() -> HashMap<Mode, KeyTrie> {
"t" => goto_next_class,
"a" => goto_next_parameter,
"c" => goto_next_comment,
- "e" => goto_next_entry,
"T" => goto_next_test,
"p" => goto_next_paragraph,
- "x" => goto_next_xml_element,
"space" => add_newline_below,
},
@@ -143,8 +128,7 @@ pub fn default() -> HashMap<Mode, KeyTrie> {
"?" => rsearch,
"n" => search_next,
"N" => search_prev,
- "*" => search_selection_detect_word_boundaries,
- "A-*" => search_selection,
+ "*" => search_selection,
"u" => undo,
"U" => redo,
@@ -187,8 +171,8 @@ pub fn default() -> HashMap<Mode, KeyTrie> {
"esc" => normal_mode,
"C-b" | "pageup" => page_up,
"C-f" | "pagedown" => page_down,
- "C-u" => page_cursor_half_up,
- "C-d" => page_cursor_half_down,
+ "C-u" => half_page_up,
+ "C-d" => half_page_down,
"C-w" => { "Window"
"C-w" | "w" => rotate_view,
@@ -225,20 +209,16 @@ pub fn default() -> HashMap<Mode, KeyTrie> {
"space" => { "Space"
"f" => file_picker,
"F" => file_picker_in_current_directory,
- "e" => file_explorer,
- "E" => file_explorer_in_current_buffer_directory,
"b" => buffer_picker,
"j" => jumplist_picker,
- "s" => lsp_or_syntax_symbol_picker,
- "S" => lsp_or_syntax_workspace_symbol_picker,
+ "s" => symbol_picker,
+ "S" => workspace_symbol_picker,
"d" => diagnostics_picker,
"D" => workspace_diagnostics_picker,
- "g" => changed_file_picker,
"a" => code_action,
"'" => last_picker,
- "G" => { "Debug (experimental)" sticky=true
+ "g" => { "Debug (experimental)" sticky=true
"l" => dap_launch,
- "r" => dap_restart,
"b" => dap_toggle_breakpoint,
"c" => dap_continue,
"h" => dap_pause,
@@ -279,7 +259,7 @@ pub fn default() -> HashMap<Mode, KeyTrie> {
"C-v" | "v" => vsplit_new,
},
},
- "y" => yank_to_clipboard,
+ "y" => yank_joined_to_clipboard,
"Y" => yank_main_selection_to_clipboard,
"p" => paste_clipboard_after,
"P" => paste_clipboard_before,
@@ -288,9 +268,6 @@ pub fn default() -> HashMap<Mode, KeyTrie> {
"k" => hover,
"r" => rename_symbol,
"h" => select_references_to_symbol_under_cursor,
- "c" => toggle_comments,
- "C" => toggle_block_comments,
- "A-c" => toggle_line_comments,
"?" => command_palette,
},
"z" => { "View"
@@ -302,8 +279,8 @@ pub fn default() -> HashMap<Mode, KeyTrie> {
"j" | "down" => scroll_down,
"C-b" | "pageup" => page_up,
"C-f" | "pagedown" => page_down,
- "C-u" | "backspace" => page_cursor_half_up,
- "C-d" | "space" => page_cursor_half_down,
+ "C-u" | "backspace" => half_page_up,
+ "C-d" | "space" => half_page_down,
"/" => search,
"?" => rsearch,
@@ -319,8 +296,8 @@ pub fn default() -> HashMap<Mode, KeyTrie> {
"j" | "down" => scroll_down,
"C-b" | "pageup" => page_up,
"C-f" | "pagedown" => page_down,
- "C-u" | "backspace" => page_cursor_half_up,
- "C-d" | "space" => page_cursor_half_down,
+ "C-u" | "backspace" => half_page_up,
+ "C-d" | "space" => half_page_down,
"/" => search,
"?" => rsearch,
@@ -342,8 +319,8 @@ pub fn default() -> HashMap<Mode, KeyTrie> {
let mut select = normal.clone();
select.merge_nodes(keymap!({ "Select mode"
"h" | "left" => extend_char_left,
- "j" | "down" => extend_visual_line_down,
- "k" | "up" => extend_visual_line_up,
+ "j" | "down" => extend_line_down,
+ "k" | "up" => extend_line_up,
"l" | "right" => extend_char_right,
"w" => extend_next_word_start,
@@ -353,9 +330,6 @@ pub fn default() -> HashMap<Mode, KeyTrie> {
"B" => extend_prev_long_word_start,
"E" => extend_next_long_word_end,
- "A-e" => extend_parent_node_end,
- "A-b" => extend_parent_node_start,
-
"n" => extend_search_next,
"N" => extend_search_prev,
@@ -369,14 +343,6 @@ pub fn default() -> HashMap<Mode, KeyTrie> {
"esc" => exit_select_mode,
"v" => normal_mode,
- "g" => { "Goto"
- "g" => extend_to_file_start,
- "|" => extend_to_column,
- "e" => extend_to_last_line,
- "k" => extend_line_up,
- "j" => extend_line_down,
- "w" => extend_to_word,
- },
}));
let insert = keymap!({ "Insert mode"
"esc" => normal_mode,
@@ -389,14 +355,13 @@ pub fn default() -> HashMap<Mode, KeyTrie> {
"A-d" | "A-del" => delete_word_forward,
"C-u" => kill_to_line_start,
"C-k" => kill_to_line_end,
- "C-h" | "backspace" | "S-backspace" => delete_char_backward,
+ "C-h" | "backspace" => delete_char_backward,
"C-d" | "del" => delete_char_forward,
"C-j" | "ret" => insert_newline,
- "tab" => smart_tab,
- "S-tab" => insert_tab,
+ "tab" => insert_tab,
- "up" => move_visual_line_up,
- "down" => move_visual_line_down,
+ "up" => move_line_up,
+ "down" => move_line_down,
"left" => move_char_left,
"right" => move_char_right,
"pageup" => page_up,
@@ -405,8 +370,8 @@ pub fn default() -> HashMap<Mode, KeyTrie> {
"end" => goto_line_end_newline,
});
hashmap!(
- Mode::Normal => normal,
- Mode::Select => select,
- Mode::Insert => insert,
+ Mode::Normal => Keymap::new(normal),
+ Mode::Select => Keymap::new(select),
+ Mode::Insert => Keymap::new(insert),
)
}