Fix build.

pull/1/head
Blaž Hrastnik 5 years ago
parent 843c20a550
commit f8fe273a2e

@ -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,

@ -97,6 +97,7 @@ impl Range {
}
/// A selection consists of one or more selection ranges.
#[derive(Debug, Clone)]
pub struct Selection {
// TODO: decide how many ranges to inline SmallVec<[Range; 1]>
pub(crate) ranges: SmallVec<[Range; 1]>,

@ -142,8 +142,8 @@ fn move_vertically(text: &RopeSlice, dir: Direction, pos: usize, count: usize) -
let (line, col) = coords_at_pos(text, pos);
let new_line = match dir {
Direction::Backward => line.saturating_sub(n),
Direction::Forward => std::cmp::min(line.saturating_add(n), text.len_lines() - 1),
Direction::Backward => line.saturating_sub(count),
Direction::Forward => std::cmp::min(line.saturating_add(count), text.len_lines() - 1),
};
// convert to 0-indexed

@ -10,10 +10,6 @@ edition = "2018"
name = "hx"
path = "src/main.rs"
[[bin]]
name = "line"
path = "src/line.rs"
[dependencies]
# termwiz = { git = "https://github.com/wez/wezterm", features = ["widgets"] }
# termwiz = { path = "../../wezterm/termwiz", default-features = false, features = ["widgets"] }

@ -1,4 +1,4 @@
use crossterm::event::{KeyEvent as Key, KeyModifiers as Modifiers};
use crossterm::event::{KeyCode, KeyEvent as Key, KeyModifiers as Modifiers};
use helix_core::commands::{self, Command};
use std::collections::HashMap;
@ -97,20 +97,20 @@ type Keymap = HashMap<Key, Command>;
fn default() -> Keymap {
hashmap!(
Key {
code: "h",
code: KeyCode::Char('h'),
modifiers: Modifiers::NONE
} => commands::move_char_left,
} => commands::move_char_left as Command,
Key {
code: "j",
code: KeyCode::Char('j'),
modifiers: Modifiers::NONE
} => commands::move_line_down,
} => commands::move_line_down as Command,
Key {
code: "k",
code: KeyCode::Char('k'),
modifiers: Modifiers::NONE
} => commands::move_line_up,
} => commands::move_line_up as Command,
Key {
code: "l",
code: KeyCode::Char('l'),
modifiers: Modifiers::NONE
} => commands::move_char_right,
);
} => commands::move_char_right as Command,
)
}

Loading…
Cancel
Save