fakevim: Ignore user mappings with 'r' and other commands

Task-number: QTCREATORBUG-7913
Change-Id: Ic9efd579556acc78736d7562c46adee83e971074
Reviewed-by: hjk <qthjk@ovi.com>
This commit is contained in:
Lukas Holecek
2012-10-20 11:26:29 +02:00
committed by hjk
parent 1586737596
commit ba86ddcc44
2 changed files with 11 additions and 2 deletions

View File

@@ -1306,6 +1306,13 @@ void FakeVimPlugin::test_map()
KEYS("<c-r>", "abc" N "def" X "xxx" N "yyy" N "ghi"); KEYS("<c-r>", "abc" N "def" X "xxx" N "yyy" N "ghi");
data.doCommand("unmap X"); data.doCommand("unmap X");
/* QTCREATORBUG-7913 */
data.setText("");
data.doCommand("noremap l k|noremap k j|noremap j h");
KEYS("ikkk<esc>", "kk" X "k");
KEYS("rj", "kk" X "j");
data.doCommand("unmap l k|unmap k j|unmap j h");
NOT_IMPLEMENTED NOT_IMPLEMENTED
// <C-o> // <C-o>
data.setText("abc def"); data.setText("abc def");

View File

@@ -2675,7 +2675,7 @@ EventResult FakeVimHandler::Private::handleCommandMode(const Input &input)
endEditBlock(); endEditBlock();
} else { } else {
replaceText(range, QString(count(), input.asChar())); replaceText(range, QString(count(), input.asChar()));
moveLeft(); moveRight(count() - 1);
} }
setTargetColumn(); setTargetColumn();
setDotCommand("%1r" + input.text(), count()); setDotCommand("%1r" + input.text(), count());
@@ -5798,7 +5798,9 @@ void FakeVimHandler::Private::endEditBlock()
char FakeVimHandler::Private::currentModeCode() const char FakeVimHandler::Private::currentModeCode() const
{ {
if (m_mode == ExMode) if (m_submode != NoSubMode)
return ' ';
else if (m_mode == ExMode)
return 'c'; return 'c';
else if (isVisualMode()) else if (isVisualMode())
return 'v'; return 'v';