mirror of
https://github.com/helix-editor/helix.git
synced 2025-01-31 10:34:04 +04:00
Fix build.
This commit is contained in:
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…
x
Reference in New Issue
Block a user