fakevim: Star and hash search with g

Added g* and g# commands to search without \<, \>.

Change-Id: I74f010f2415e4d493be9925ab047a1c06f35d7a9
Reviewed-by: hjk <qthjk@ovi.com>
This commit is contained in:
Lukas Holecek
2012-10-01 17:37:34 +02:00
committed by hjk
parent f357502984
commit d2bf853ca1
2 changed files with 17 additions and 1 deletions

View File

@@ -502,6 +502,19 @@ void FakeVimPlugin::test_vim_search()
data.setText("abc" N "def" N "ab" X "c" N "ghi abc jkl");
KEYS("#", X "abc" N "def" N "abc" N "ghi abc jkl");
// search with g* and g#
data.doCommand("set nows");
data.setText("bc" N "abc" N "abcd" N "bc" N "b");
KEYS("g*", "bc" N "a" X "bc" N "abcd" N "bc" N "b");
KEYS("n", "bc" N "abc" N "a" X "bcd" N "bc" N "b");
KEYS("n", "bc" N "abc" N "abcd" N X "bc" N "b");
KEYS("n", "bc" N "abc" N "abcd" N X "bc" N "b");
KEYS("g#", "bc" N "abc" N "a" X "bcd" N "bc" N "b");
KEYS("n", "bc" N "a" X "bc" N "abcd" N "bc" N "b");
KEYS("N", "bc" N "abc" N "a" X "bcd" N "bc" N "b");
KEYS("3n", "bc" N "abc" N "a" X "bcd" N "bc" N "b");
KEYS("2n", X "bc" N "abc" N "abcd" N "bc" N "b");
/* QTCREATORBUG-7251 */
data.setText("abc abc abc abc");
KEYS("$?abc<CR>", "abc abc abc " X "abc");

View File

@@ -2774,6 +2774,9 @@ EventResult FakeVimHandler::Private::handleCommandMode1(const Input &input)
QString needle;
QTextCursor tc = cursor();
tc.select(QTextCursor::WordUnderCursor);
if (m_gflag)
needle = tc.selection().toPlainText();
else
needle = "\\<" + tc.selection().toPlainText() + "\\>";
setAnchorAndPosition(tc.position(), tc.anchor());
g.searchBuffer.historyPush(needle);