diff options
Diffstat (limited to 'helix-core/src/commands.rs')
-rw-r--r-- | helix-core/src/commands.rs | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/helix-core/src/commands.rs b/helix-core/src/commands.rs index 78a1481a..62e97686 100644 --- a/helix-core/src/commands.rs +++ b/helix-core/src/commands.rs @@ -2,42 +2,47 @@ use crate::state::{Direction, Granularity, State}; /// A command is a function that takes the current state and a count, and does a side-effect on the /// state (usually by creating and applying a transaction). -type Command = fn(state: &mut State, count: usize); +pub type Command = fn(state: &mut State, count: usize); -fn move_char_left(state: &mut State, count: usize) { +pub fn move_char_left(state: &mut State, count: usize) { // TODO: use a transaction - state.selection = state.move_selection( - state.selection, + let selection = state.move_selection( + // TODO: remove the clone here + state.selection.clone(), Direction::Backward, Granularity::Character, count, ); + state.selection = selection; } -fn move_char_right(state: &mut State, count: usize) { +pub fn move_char_right(state: &mut State, count: usize) { // TODO: use a transaction state.selection = state.move_selection( - state.selection, + // TODO: remove the clone here + state.selection.clone(), Direction::Forward, Granularity::Character, count, ); } -fn move_line_up(state: &mut State, count: usize) { +pub fn move_line_up(state: &mut State, count: usize) { // TODO: use a transaction state.selection = state.move_selection( - state.selection, + // TODO: remove the clone here + state.selection.clone(), Direction::Backward, Granularity::Line, count, ); } -fn move_line_down(state: &mut State, count: usize) { +pub fn move_line_down(state: &mut State, count: usize) { // TODO: use a transaction state.selection = state.move_selection( - state.selection, + // TODO: remove the clone here + state.selection.clone(), Direction::Forward, Granularity::Line, count, |