mirror of https://github.com/helix-editor/helix
Add a command module.
parent
195aad4675
commit
e98cdebf1e
@ -0,0 +1,45 @@
|
|||||||
|
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);
|
||||||
|
|
||||||
|
fn move_char_left(state: &mut State, count: usize) {
|
||||||
|
// TODO: use a transaction
|
||||||
|
state.selection = state.move_selection(
|
||||||
|
state.selection,
|
||||||
|
Direction::Backward,
|
||||||
|
Granularity::Character,
|
||||||
|
count,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn move_char_right(state: &mut State, count: usize) {
|
||||||
|
// TODO: use a transaction
|
||||||
|
state.selection = state.move_selection(
|
||||||
|
state.selection,
|
||||||
|
Direction::Forward,
|
||||||
|
Granularity::Character,
|
||||||
|
count,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn move_line_up(state: &mut State, count: usize) {
|
||||||
|
// TODO: use a transaction
|
||||||
|
state.selection = state.move_selection(
|
||||||
|
state.selection,
|
||||||
|
Direction::Backward,
|
||||||
|
Granularity::Line,
|
||||||
|
count,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn move_line_down(state: &mut State, count: usize) {
|
||||||
|
// TODO: use a transaction
|
||||||
|
state.selection = state.move_selection(
|
||||||
|
state.selection,
|
||||||
|
Direction::Forward,
|
||||||
|
Granularity::Line,
|
||||||
|
count,
|
||||||
|
);
|
||||||
|
}
|
Loading…
Reference in New Issue