diff options
Diffstat (limited to 'src/plugins/fakevim')
-rw-r--r-- | src/plugins/fakevim/fakevimhandler.cpp | 8 | ||||
-rw-r--r-- | src/plugins/fakevim/fakevimhandler.h | 1 | ||||
-rw-r--r-- | src/plugins/fakevim/fakevimplugin.cpp | 5 |
3 files changed, 14 insertions, 0 deletions
diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp index 68239650654..7403f9e454b 100644 --- a/src/plugins/fakevim/fakevimhandler.cpp +++ b/src/plugins/fakevim/fakevimhandler.cpp @@ -5197,6 +5197,7 @@ void FakeVimHandler::Private::handleReplaceMode(const Input &input) moveDown(); } else if (input.isKey(Key_Insert)) { g.mode = InsertMode; + q->modeChanged(); } else if (input.isControl('o')) { enterCommandMode(ReplaceMode); } else { @@ -5394,6 +5395,7 @@ void FakeVimHandler::Private::handleInsertMode(const Input &input) removeText(range); } else if (input.isKey(Key_Insert)) { g.mode = ReplaceMode; + q->modeChanged(); } else if (input.isKey(Key_Left)) { moveLeft(); } else if (input.isShift(Key_Left) || input.isControl(Key_Left)) { @@ -8575,6 +8577,8 @@ void FakeVimHandler::Private::enterInsertOrReplaceMode(Mode mode) g.returnToMode = mode; clearLastInsertion(); } + + q->modeChanged(); } void FakeVimHandler::Private::enterVisualInsertMode(QChar command) @@ -8650,6 +8654,8 @@ void FakeVimHandler::Private::enterCommandMode(Mode returnToMode) g.returnToMode = returnToMode; m_positionPastEnd = false; m_anchorPastEnd = false; + + q->modeChanged(); } void FakeVimHandler::Private::enterExMode(const QString &contents) @@ -8664,6 +8670,8 @@ void FakeVimHandler::Private::enterExMode(const QString &contents) g.submode = NoSubMode; g.subsubmode = NoSubSubMode; unfocus(); + + q->modeChanged(); } void FakeVimHandler::Private::recordJump(int position) diff --git a/src/plugins/fakevim/fakevimhandler.h b/src/plugins/fakevim/fakevimhandler.h index 57955cd2cbd..1d13fe301ad 100644 --- a/src/plugins/fakevim/fakevimhandler.h +++ b/src/plugins/fakevim/fakevimhandler.h @@ -157,6 +157,7 @@ public: Signal<void()> completionRequested; Signal<void()> tabPreviousRequested; Signal<void()> tabNextRequested; + Signal<void()> modeChanged; public: class Private; diff --git a/src/plugins/fakevim/fakevimplugin.cpp b/src/plugins/fakevim/fakevimplugin.cpp index d71c0376457..4d3ec87ed6c 100644 --- a/src/plugins/fakevim/fakevimplugin.cpp +++ b/src/plugins/fakevim/fakevimplugin.cpp @@ -1591,6 +1591,11 @@ void FakeVimPluginPrivate::editorOpened(IEditor *editor) tew->setExtraSelections(TextEditorWidget::FakeVimSelection, selection); }); + handler->modeChanged.connect([tew]() { + if (tew) + tew->clearSuggestion(); + }); + handler->highlightMatches.connect([](const QString &needle) { for (IEditor *editor : EditorManager::visibleEditors()) { QWidget *w = editor->widget(); |