aboutsummaryrefslogtreecommitdiff
path: root/helix-core/src/commands.rs
diff options
context:
space:
mode:
authorBlaž Hrastnik2020-09-12 14:52:38 +0000
committerBlaž Hrastnik2020-09-12 14:52:38 +0000
commitf098166571fd8fc2046d49355dffc0d2aad29e50 (patch)
tree59df40d5a6541f6102c6ab8d10deb04f863312e4 /helix-core/src/commands.rs
parentf9348d77ec4e128799ca407a1612aa61691f05a5 (diff)
Get rid of a bunch of clones.
Diffstat (limited to 'helix-core/src/commands.rs')
-rw-r--r--helix-core/src/commands.rs35
1 files changed, 5 insertions, 30 deletions
diff --git a/helix-core/src/commands.rs b/helix-core/src/commands.rs
index 37d59946..fdb3fab6 100644
--- a/helix-core/src/commands.rs
+++ b/helix-core/src/commands.rs
@@ -10,47 +10,23 @@ pub type Command = fn(state: &mut State, count: usize);
pub fn move_char_left(state: &mut State, count: usize) {
// TODO: use a transaction
- let selection = state.move_selection(
- // TODO: remove the clone here
- state.selection.clone(),
- Direction::Backward,
- Granularity::Character,
- count,
- );
+ let selection = state.move_selection(Direction::Backward, Granularity::Character, count);
state.selection = selection;
}
pub fn move_char_right(state: &mut State, count: usize) {
// TODO: use a transaction
- state.selection = state.move_selection(
- // TODO: remove the clone here
- state.selection.clone(),
- Direction::Forward,
- Granularity::Character,
- count,
- );
+ state.selection = state.move_selection(Direction::Forward, Granularity::Character, count);
}
pub fn move_line_up(state: &mut State, count: usize) {
// TODO: use a transaction
- state.selection = state.move_selection(
- // TODO: remove the clone here
- state.selection.clone(),
- Direction::Backward,
- Granularity::Line,
- count,
- );
+ state.selection = state.move_selection(Direction::Backward, Granularity::Line, count);
}
pub fn move_line_down(state: &mut State, count: usize) {
// TODO: use a transaction
- state.selection = state.move_selection(
- // TODO: remove the clone here
- state.selection.clone(),
- Direction::Forward,
- Granularity::Line,
- count,
- );
+ state.selection = state.move_selection(Direction::Forward, Granularity::Line, count);
}
// avoid select by default by having a visual mode switch that makes movements into selects
@@ -66,7 +42,6 @@ pub fn insert_mode(state: &mut State, _count: usize) {
state.selection = state
.selection
- .clone()
.transform(|range| Range::new(range.to(), range.from()))
}
@@ -76,7 +51,7 @@ pub fn append_mode(state: &mut State, _count: usize) {
// TODO: as transaction
let text = &state.doc.slice(..);
- state.selection = state.selection.clone().transform(|range| {
+ state.selection = state.selection.transform(|range| {
// TODO: to() + next char
Range::new(range.from(), next_grapheme_boundary(text, range.to()))
})