summaryrefslogtreecommitdiff
path: root/src/plugins/fakevim/fakevim_test.cpp
diff options
context:
space:
mode:
authorhluk <hluk@email.cz>2013-09-15 16:19:05 +0200
committerhjk <hjk121@nokiamail.com>2013-09-19 12:17:37 +0200
commita636a933d0a1f4dfd5a021c94c057f14d3a6bbf8 (patch)
treeb341c44bf64c6da4ccd91721f06f2997adbbd79e /src/plugins/fakevim/fakevim_test.cpp
parent8c7a9a51ec588b1ecb981b561c1dd2ae40052525 (diff)
downloadqt-creator-a636a933d0a1f4dfd5a021c94c057f14d3a6bbf8.tar.gz
FakeVim: Fix searching in visual mode and with commands
Search in visual mode should select text up to matched position. Using commands should work with search movement; e.g. 'd2/needle<CR>'. Commands should be also properly canceled if search movement fails. Change-Id: Ic695dccaf3f36ccae2f2b1a93f888d5ba9805a78 Reviewed-by: hjk <hjk121@nokiamail.com>
Diffstat (limited to 'src/plugins/fakevim/fakevim_test.cpp')
-rw-r--r--src/plugins/fakevim/fakevim_test.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/plugins/fakevim/fakevim_test.cpp b/src/plugins/fakevim/fakevim_test.cpp
index 2e20323d98..6b9144da5d 100644
--- a/src/plugins/fakevim/fakevim_test.cpp
+++ b/src/plugins/fakevim/fakevim_test.cpp
@@ -1472,6 +1472,32 @@ void FakeVimPlugin::test_vim_search()
KEYS("N", "abc" N X "def" N "ghi");
KEYS("N", X "abc" N "def" N "ghi");
KEYS("2n2N", X "abc" N "def" N "ghi");
+
+ // delete to match
+ data.setText("abc" N "def" N "abc" N "ghi abc jkl" N "xyz");
+ KEYS("2l" "d/ghi<CR>", "ab" X "ghi abc jkl" N "xyz");
+
+ data.setText("abc" N "def" N "abc" N "ghi abc jkl" N "xyz");
+ KEYS("l" "d2/abc<CR>", "a" X "abc jkl" N "xyz");
+
+ data.setText("abc" N "def" N "abc" N "ghi abc jkl" N "xyz");
+ KEYS("d/abc<CR>", X "abc" N "ghi abc jkl" N "xyz");
+ KEYS(".", "abc jkl" N "xyz");
+
+ data.setText("abc" N "def" N "abc" N "ghi abc jkl" N "xyz");
+ KEYS("/abc<CR>" "l" "dn", "abc" N "def" N "a" X "abc jkl" N "xyz");
+
+ data.setText("abc" N "def" N "abc" N "ghi abc jkl" N "xyz");
+ KEYS("2/abc<CR>" "h" "dN", "abc" N "def" N X " abc jkl" N "xyz");
+ KEYS("c/xxx<CR><ESC>" "h" "dN", "abc" N "def" N X " abc jkl" N "xyz");
+
+ data.setText("abc" N "def" N "abc" N "ghi abc jkl" N "xyz");
+ KEYS("l" "v2/abc<CR>" "x", "abc jkl" N "xyz");
+
+ // don't leave visual mode after search failed or is cancelled
+ data.setText("abc" N "def" N "abc" N "ghi abc jkl" N "xyz");
+ KEYS("vj" "/abc<ESC>" "x", X "ef" N "abc" N "ghi abc jkl" N "xyz");
+ KEYS("vj" "/xxx<CR>" "x", X "bc" N "ghi abc jkl" N "xyz");
}
void FakeVimPlugin::test_vim_indent()