Extract a common function for paste_before/_after

This commit is contained in:
Blaž Hrastnik 2022-03-03 17:06:14 +09:00
parent 376d99a51d
commit 737282d0e9
No known key found for this signature in database
GPG Key ID: 1238B9C4AD889640

View File

@ -4682,7 +4682,7 @@ fn replace_selections_with_primary_clipboard(cx: &mut Context) {
let _ = replace_selections_with_clipboard_impl(cx.editor, ClipboardType::Selection, cx.count());
}
fn paste_after(cx: &mut Context) {
fn paste(cx: &mut Context, pos: Paste) {
let count = cx.count();
let reg_name = cx.register.unwrap_or('"');
let (view, doc) = current!(cx.editor);
@ -4690,24 +4690,18 @@ fn paste_after(cx: &mut Context) {
if let Some(transaction) = registers
.read(reg_name)
.and_then(|values| paste_impl(values, doc, view, Paste::After, count))
.and_then(|values| paste_impl(values, doc, view, pos, count))
{
doc.apply(&transaction, view.id);
}
}
fn paste_before(cx: &mut Context) {
let count = cx.count();
let reg_name = cx.register.unwrap_or('"');
let (view, doc) = current!(cx.editor);
let registers = &mut cx.editor.registers;
fn paste_after(cx: &mut Context) {
paste(cx, Paste::After)
}
if let Some(transaction) = registers
.read(reg_name)
.and_then(|values| paste_impl(values, doc, view, Paste::Before, count))
{
doc.apply(&transaction, view.id);
}
fn paste_before(cx: &mut Context) {
paste(cx, Paste::Before)
}
fn get_lines(doc: &Document, view_id: ViewId) -> Vec<usize> {