Add goto_first_nonwhitespace + impl insert_at_line_start and end

This commit is contained in:
mars 2023-04-14 15:43:22 -04:00
parent 74e1bd88c6
commit 075b74afca
2 changed files with 10 additions and 2 deletions

View File

@ -33,6 +33,7 @@ pub fn load_actions() -> HashMap<String, Action> {
("page_down", page_down), ("page_down", page_down),
("goto_line_start", goto_line_start), ("goto_line_start", goto_line_start),
("goto_line_end", goto_line_end), ("goto_line_end", goto_line_end),
("goto_first_nonwhitespace", goto_first_nonwhitespace),
("command_mode", command_mode), ("command_mode", command_mode),
("normal_mode", normal_mode), ("normal_mode", normal_mode),
("visual_mode", visual_mode), ("visual_mode", visual_mode),
@ -88,6 +89,10 @@ pub fn goto_line_end(state: &mut State) {
state.cursor = state.buffer.cursor_at_line_end(state.cursor.line); state.cursor = state.buffer.cursor_at_line_end(state.cursor.line);
} }
pub fn goto_first_nonwhitespace(state: &mut State) {
state.cursor = state.buffer.cursor_at_first_nonwhitespace(state.cursor.line);
}
pub fn command_mode(state: &mut State) { pub fn command_mode(state: &mut State) {
state.mode = Mode::Command(Default::default()); state.mode = Mode::Command(Default::default());
} }
@ -117,11 +122,13 @@ pub fn append_mode(state: &mut State) {
} }
pub fn insert_at_line_start(state: &mut State) { pub fn insert_at_line_start(state: &mut State) {
state.set_error("insert_at_line_start is unimplemented"); goto_first_nonwhitespace(state);
insert_mode(state);
} }
pub fn insert_at_line_end(state: &mut State) { pub fn insert_at_line_end(state: &mut State) {
state.set_error("insert_at_line_end is unimplemented"); goto_line_end(state);
insert_mode(state);
} }
pub fn open_below(state: &mut State) { pub fn open_below(state: &mut State) {

View File

@ -53,6 +53,7 @@ impl Default for Keybinds {
let goto_keys = &[ let goto_keys = &[
(Char('h'), goto_line_start as Action), (Char('h'), goto_line_start as Action),
(Char('l'), goto_line_end), (Char('l'), goto_line_end),
(Char('s'), goto_first_nonwhitespace),
]; ];
let normalish_keys = [ let normalish_keys = [