aboutsummaryrefslogtreecommitdiff
path: root/helix-term/src/commands.rs
diff options
context:
space:
mode:
Diffstat (limited to 'helix-term/src/commands.rs')
-rw-r--r--helix-term/src/commands.rs39
1 files changed, 39 insertions, 0 deletions
diff --git a/helix-term/src/commands.rs b/helix-term/src/commands.rs
index f6511ba5..c3f0f392 100644
--- a/helix-term/src/commands.rs
+++ b/helix-term/src/commands.rs
@@ -158,6 +158,9 @@ impl Command {
move_next_word_start,
move_prev_word_start,
move_next_word_end,
+ move_next_long_word_start,
+ move_prev_long_word_start,
+ move_next_long_word_end,
move_file_start,
move_file_end,
extend_next_word_start,
@@ -434,6 +437,42 @@ fn move_next_word_end(cx: &mut Context) {
doc.set_selection(view.id, selection);
}
+fn move_next_long_word_start(cx: &mut Context) {
+ let count = cx.count();
+ let (view, doc) = current!(cx.editor);
+ let text = doc.text().slice(..);
+
+ let selection = doc
+ .selection(view.id)
+ .transform(|range| movement::move_next_long_word_start(text, range, count));
+
+ doc.set_selection(view.id, selection);
+}
+
+fn move_prev_long_word_start(cx: &mut Context) {
+ let count = cx.count();
+ let (view, doc) = current!(cx.editor);
+ let text = doc.text().slice(..);
+
+ let selection = doc
+ .selection(view.id)
+ .transform(|range| movement::move_prev_long_word_start(text, range, count));
+
+ doc.set_selection(view.id, selection);
+}
+
+fn move_next_long_word_end(cx: &mut Context) {
+ let count = cx.count();
+ let (view, doc) = current!(cx.editor);
+ let text = doc.text().slice(..);
+
+ let selection = doc
+ .selection(view.id)
+ .transform(|range| movement::move_next_long_word_end(text, range, count));
+
+ doc.set_selection(view.id, selection);
+}
+
fn move_file_start(cx: &mut Context) {
push_jump(cx.editor);
let (view, doc) = current!(cx.editor);