@@ -158,6 +158,9 @@ impl Command {
158 move_next_word_start,
158 move_next_word_start,
159 move_prev_word_start,
159 move_prev_word_start,
160 move_next_word_end,
160 move_next_word_end,
161+ move_next_long_word_start,
162+ move_prev_long_word_start,
163+ move_next_long_word_end,
161 move_file_start,
164 move_file_start,
162 move_file_end,
165 move_file_end,
163 extend_next_word_start,
166 extend_next_word_start,
@@ -434,6 +437,42 @@ fn move_next_word_end(cx: &mut Context) {
434 doc.set_selection(view.id, selection);
437 doc.set_selection(view.id, selection);
440+fn move_next_long_word_start(cx: &mut Context) {
441+ let count = cx.count();
442+ let (view, doc) = current!(cx.editor);
443+ let text = doc.text().slice(..);
447+ .transform(|range| movement::move_next_long_word_start(text, range, count));
449+ doc.set_selection(view.id, selection);
452+fn move_prev_long_word_start(cx: &mut Context) {
453+ let count = cx.count();
454+ let (view, doc) = current!(cx.editor);
455+ let text = doc.text().slice(..);
459+ .transform(|range| movement::move_prev_long_word_start(text, range, count));
461+ doc.set_selection(view.id, selection);
464+fn move_next_long_word_end(cx: &mut Context) {
465+ let count = cx.count();
466+ let (view, doc) = current!(cx.editor);
467+ let text = doc.text().slice(..);
471+ .transform(|range| movement::move_next_long_word_end(text, range, count));
473+ doc.set_selection(view.id, selection);
437fn move_file_start(cx: &mut Context) {
476fn move_file_start(cx: &mut Context) {
438 push_jump(cx.editor);
477 push_jump(cx.editor);
439 let (view, doc) = current!(cx.editor);
478 let (view, doc) = current!(cx.editor);