aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/fakevim
diff options
context:
space:
mode:
authorTom Praschan <13141438+tom-anders@users.noreply.github.com>2021-01-26 18:15:03 +0100
committerTom Praschan <tom@praschan.de>2021-02-03 17:58:02 +0000
commitb1f1ecb1b5ff44ed56137d3031b879dee9847287 (patch)
tree2f1e306000e0baeec4edd5a0acbe8575ebd6a89d /src/plugins/fakevim
parentbcde1ead55328b060a09a814e5a365bd03ade5bf (diff)
FakeVim: Fix dot command for pasting
Fixes: QTCREATORBUG-25281 Change-Id: Ic36b87672889442520941bcefa0f5ee14b77fbc6 Reviewed-by: Lukas Holecek <hluk@email.cz> Reviewed-by: hjk <hjk@qt.io>
Diffstat (limited to 'src/plugins/fakevim')
-rw-r--r--src/plugins/fakevim/fakevim_test.cpp9
-rw-r--r--src/plugins/fakevim/fakevimhandler.cpp2
2 files changed, 11 insertions, 0 deletions
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();