diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp index 985d4db096d9972d238a455fc3bbf25a382843ec..b42c4d011e1357b8edbe72196fbc53885d41356a 100644 --- a/src/plugins/fakevim/fakevimhandler.cpp +++ b/src/plugins/fakevim/fakevimhandler.cpp @@ -1512,6 +1512,9 @@ EventResult FakeVimHandler::Private::handleInsertMode(int key, int, if (leftText.simplified().isEmpty()) indentRegion(text.at(0)); } + + if (text.at(0) == '.' || text.at(0) == '>') + emit q->completionRequested(); } else { return EventUnhandled; } diff --git a/src/plugins/fakevim/fakevimhandler.h b/src/plugins/fakevim/fakevimhandler.h index d7d978c9d8a90b5c7824f5ecaf79b222bb3d7660..7b5b183cf341af61ddecee3fb43caeb5d98bdfc8 100644 --- a/src/plugins/fakevim/fakevimhandler.h +++ b/src/plugins/fakevim/fakevimhandler.h @@ -77,6 +77,7 @@ signals: const QString &fileName, const QString &contents); void moveToMatchingParenthesis(bool *moved, bool *forward, QTextCursor *cursor); void indentRegion(int *amount, int beginLine, int endLine, QChar typedChar); + void completionRequested(); private: bool eventFilter(QObject *ob, QEvent *ev); diff --git a/src/plugins/fakevim/fakevimplugin.cpp b/src/plugins/fakevim/fakevimplugin.cpp index ee632a1acba1ca83cc1f80359d9256cf1a984aad..8ece7de87249704273db4969c320fb9dc9780d1f 100644 --- a/src/plugins/fakevim/fakevimplugin.cpp +++ b/src/plugins/fakevim/fakevimplugin.cpp @@ -116,6 +116,7 @@ private slots: void installHandlerOnCurrentEditor(); void installHandler(Core::IEditor *editor); void removeHandler(); + void triggerCompletions(); void showCommandBuffer(const QString &contents); void showExtraInformation(const QString &msg); @@ -208,6 +209,8 @@ void FakeVimPluginPrivate::installHandler(Core::IEditor *editor) this, SLOT(moveToMatchingParenthesis(bool*,bool*,QTextCursor*))); connect(handler, SIGNAL(indentRegion(int*,int,int,QChar)), this, SLOT(indentRegion(int*,int,int,QChar))); + connect(handler, SIGNAL(completionRequested()), + this, SLOT(triggerCompletions())); handler->setupWidget(); handler->setExtraData(editor); @@ -235,6 +238,15 @@ void FakeVimPluginPrivate::installHandlerOnCurrentEditor() installHandler(EditorManager::instance()->currentEditor()); } +void FakeVimPluginPrivate::triggerCompletions() +{ + FakeVimHandler *handler = qobject_cast<FakeVimHandler *>(sender()); + if (!handler) + return; + if (BaseTextEditor *bt = qobject_cast<BaseTextEditor *>(handler->widget())) + bt->triggerCompletions(); +} + void FakeVimPluginPrivate::writeFile(bool *handled, const QString &fileName, const QString &contents) {