From b1f1ecb1b5ff44ed56137d3031b879dee9847287 Mon Sep 17 00:00:00 2001 From: Tom Praschan <13141438+tom-anders@users.noreply.github.com> Date: Tue, 26 Jan 2021 18:15:03 +0100 Subject: [PATCH] FakeVim: Fix dot command for pasting Fixes: QTCREATORBUG-25281 Change-Id: Ic36b87672889442520941bcefa0f5ee14b77fbc6 Reviewed-by: Lukas Holecek Reviewed-by: hjk --- src/plugins/fakevim/fakevim_test.cpp | 9 +++++++++ src/plugins/fakevim/fakevimhandler.cpp | 2 ++ 2 files changed, 11 insertions(+) diff --git a/src/plugins/fakevim/fakevim_test.cpp b/src/plugins/fakevim/fakevim_test.cpp index 81eee1973f0..7e5a43a01e9 100644 --- a/src/plugins/fakevim/fakevim_test.cpp +++ b/src/plugins/fakevim/fakevim_test.cpp @@ -2526,6 +2526,15 @@ void FakeVimPlugin::test_vim_copy_paste() KEYS("gg\"yP", X "def" N "abc" N "abc" N "def" N "ghi"); KEYS("\"xP", X "abc" N "def" N "abc" N "abc" N "def" N "ghi"); + // QTCREATORBUG-25281 + data.setText(X "abc" N "def" N "ghi"); + KEYS("\"xyy", X "abc" N "def" N "ghi"); + KEYS("\"xp", "abc" N X "abc" N "def" N "ghi"); + KEYS("j", "abc" N "abc" N X "def" N "ghi"); + KEYS("yy", "abc" N "abc" N X "def" N "ghi"); + KEYS("\"xp", "abc" N "abc" N "def" N X "abc" N "ghi"); + KEYS(".", "abc" N "abc" N "def" N "abc" N X "abc" N "ghi"); + // delete to black hole register data.setText("aaa bbb ccc"); KEYS("yiww\"_diwP", "aaa aaa ccc"); diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp index e4147e55806..b3b547c00e6 100644 --- a/src/plugins/fakevim/fakevimhandler.cpp +++ b/src/plugins/fakevim/fakevimhandler.cpp @@ -4520,6 +4520,8 @@ bool FakeVimHandler::Private::handleNoSubMode(const Input &input) } else if (input.isControl('o')) { jump(-count()); } else if (input.is('p') || input.is('P') || input.isShift(Qt::Key_Insert)) { + dotCommand = QString("\"%1%2p").arg(QChar(m_register)).arg(count()); + pasteText(!input.is('P')); setTargetColumn(); finishMovement();