diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp index b42c4d011e1357b8edbe72196fbc53885d41356a..743abdb1f2a4e9991857d015fdd1c20b46ff473b 100644 --- a/src/plugins/fakevim/fakevimhandler.cpp +++ b/src/plugins/fakevim/fakevimhandler.cpp @@ -358,6 +358,7 @@ public: // extra data for '.' QString m_dotCommand; + bool m_inReplay; // true if we are executing a '.' // extra data for ';' QString m_semicolonCount; @@ -424,8 +425,9 @@ FakeVimHandler::Private::Private(FakeVimHandler *parent, QWidget *widget) m_anchor = 0; m_savedYankPosition = 0; m_cursorWidth = EDITOR(cursorWidth()); + m_inReplay = false; -#if 1 +#if 0 // Plain m_config[ConfigStartOfLine] = ConfigOn; m_config[ConfigHlSearch] = ConfigOn; @@ -1012,9 +1014,11 @@ EventResult FakeVimHandler::Private::handleCommandMode(int key, int unmodified, qDebug() << "REPEATING" << m_dotCommand; QString savedCommand = m_dotCommand; m_dotCommand.clear(); + m_inReplay = true; for (int i = count(); --i >= 0; ) foreach (QChar c, savedCommand) handleKey(c.unicode(), c.unicode(), QString(c)); + m_inReplay = false; enterCommandMode(); m_dotCommand = savedCommand; } else if (key == '<' && m_visualMode == NoVisualMode) { @@ -1512,8 +1516,8 @@ EventResult FakeVimHandler::Private::handleInsertMode(int key, int, if (leftText.simplified().isEmpty()) indentRegion(text.at(0)); } - - if (text.at(0) == '.' || text.at(0) == '>') + + if (!m_inReplay) emit q->completionRequested(); } else { return EventUnhandled; diff --git a/src/plugins/fakevim/fakevimplugin.cpp b/src/plugins/fakevim/fakevimplugin.cpp index 8ece7de87249704273db4969c320fb9dc9780d1f..65e907cdd8f2e44432fab5798f2c9301a0249bd0 100644 --- a/src/plugins/fakevim/fakevimplugin.cpp +++ b/src/plugins/fakevim/fakevimplugin.cpp @@ -47,6 +47,7 @@ #include <texteditor/basetexteditor.h> #include <texteditor/basetextmark.h> +#include <texteditor/completionsupport.h> #include <texteditor/itexteditor.h> #include <texteditor/texteditorconstants.h> #include <texteditor/interactionsettings.h> @@ -244,7 +245,9 @@ void FakeVimPluginPrivate::triggerCompletions() if (!handler) return; if (BaseTextEditor *bt = qobject_cast<BaseTextEditor *>(handler->widget())) - bt->triggerCompletions(); + TextEditor::Internal::CompletionSupport::instance()-> + autoComplete(bt->editableInterface(), false); + // bt->triggerCompletions(); } void FakeVimPluginPrivate::writeFile(bool *handled, diff --git a/tests/manual/gdbdebugger/simple/app.cpp b/tests/manual/gdbdebugger/simple/app.cpp index 4115a49a50853b155ed20815b97609922075f05b..6ab3cd96901caadc6e28da0bee8b5d94a042b7f5 100644 --- a/tests/manual/gdbdebugger/simple/app.cpp +++ b/tests/manual/gdbdebugger/simple/app.cpp @@ -710,6 +710,7 @@ void testQString() str += " World "; str += " World "; str += " World "; + str.append(s); } void testQString3()