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 /// 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). /// 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 // TODO: use a transaction
state.selection = state.move_selection( let selection = state.move_selection(
state.selection, // TODO: remove the clone here
state.selection.clone(),
Direction::Backward, Direction::Backward,
Granularity::Character, Granularity::Character,
count, 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 // TODO: use a transaction
state.selection = state.move_selection( state.selection = state.move_selection(
state.selection, // TODO: remove the clone here
state.selection.clone(),
Direction::Forward, Direction::Forward,
Granularity::Character, Granularity::Character,
count, count,
); );
} }
fn move_line_up(state: &mut State, count: usize) { pub fn move_line_up(state: &mut State, count: usize) {
// TODO: use a transaction // TODO: use a transaction
state.selection = state.move_selection( state.selection = state.move_selection(
state.selection, // TODO: remove the clone here
state.selection.clone(),
Direction::Backward, Direction::Backward,
Granularity::Line, Granularity::Line,
count, count,
); );
} }
fn move_line_down(state: &mut State, count: usize) { pub fn move_line_down(state: &mut State, count: usize) {
// TODO: use a transaction // TODO: use a transaction
state.selection = state.move_selection( state.selection = state.move_selection(
state.selection, // TODO: remove the clone here
state.selection.clone(),
Direction::Forward, Direction::Forward,
Granularity::Line, Granularity::Line,
count, count,

@ -97,6 +97,7 @@ impl Range {
} }
/// A selection consists of one or more selection ranges. /// A selection consists of one or more selection ranges.
#[derive(Debug, Clone)]
pub struct Selection { pub struct Selection {
// TODO: decide how many ranges to inline SmallVec<[Range; 1]> // TODO: decide how many ranges to inline SmallVec<[Range; 1]>
pub(crate) ranges: 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 (line, col) = coords_at_pos(text, pos);
let new_line = match dir { let new_line = match dir {
Direction::Backward => line.saturating_sub(n), Direction::Backward => line.saturating_sub(count),
Direction::Forward => std::cmp::min(line.saturating_add(n), text.len_lines() - 1), Direction::Forward => std::cmp::min(line.saturating_add(count), text.len_lines() - 1),
}; };
// convert to 0-indexed // convert to 0-indexed

@ -10,10 +10,6 @@ edition = "2018"
name = "hx" name = "hx"
path = "src/main.rs" path = "src/main.rs"
[[bin]]
name = "line"
path = "src/line.rs"
[dependencies] [dependencies]
# termwiz = { git = "https://github.com/wez/wezterm", features = ["widgets"] } # termwiz = { git = "https://github.com/wez/wezterm", features = ["widgets"] }
# termwiz = { path = "../../wezterm/termwiz", default-features = false, 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 helix_core::commands::{self, Command};
use std::collections::HashMap; use std::collections::HashMap;
@ -97,20 +97,20 @@ type Keymap = HashMap<Key, Command>;
fn default() -> Keymap { fn default() -> Keymap {
hashmap!( hashmap!(
Key { Key {
code: "h", code: KeyCode::Char('h'),
modifiers: Modifiers::NONE modifiers: Modifiers::NONE
} => commands::move_char_left, } => commands::move_char_left as Command,
Key { Key {
code: "j", code: KeyCode::Char('j'),
modifiers: Modifiers::NONE modifiers: Modifiers::NONE
} => commands::move_line_down, } => commands::move_line_down as Command,
Key { Key {
code: "k", code: KeyCode::Char('k'),
modifiers: Modifiers::NONE modifiers: Modifiers::NONE
} => commands::move_line_up, } => commands::move_line_up as Command,
Key { Key {
code: "l", code: KeyCode::Char('l'),
modifiers: Modifiers::NONE modifiers: Modifiers::NONE
} => commands::move_char_right, } => commands::move_char_right as Command,
); )
} }

Loading…
Cancel
Save