Add paragraph to last motion (#1956)

Fix #1954
This commit is contained in:
Ivan Tham 2022-04-05 08:43:04 +08:00 committed by GitHub
parent d3c8286ea0
commit e7beb32fd7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -905,22 +905,26 @@ fn move_next_long_word_end(cx: &mut Context) {
fn move_para_impl<F>(cx: &mut Context, move_fn: F)
where
F: Fn(RopeSlice, Range, usize, Movement) -> Range,
F: Fn(RopeSlice, Range, usize, Movement) -> Range + 'static,
{
let count = cx.count();
let (view, doc) = current!(cx.editor);
let text = doc.text().slice(..);
let behavior = if doc.mode == Mode::Select {
Movement::Extend
} else {
Movement::Move
};
let motion = move |editor: &mut Editor| {
let (view, doc) = current!(editor);
let text = doc.text().slice(..);
let behavior = if doc.mode == Mode::Select {
Movement::Extend
} else {
Movement::Move
};
let selection = doc
.selection(view.id)
.clone()
.transform(|range| move_fn(text, range, count, behavior));
doc.set_selection(view.id, selection);
let selection = doc
.selection(view.id)
.clone()
.transform(|range| move_fn(text, range, count, behavior));
doc.set_selection(view.id, selection);
};
motion(cx.editor);
cx.editor.last_motion = Some(Motion(Box::new(motion)));
}
fn move_prev_paragraph(cx: &mut Context) {