From 63a8218680c6f909208cddfa18d92d734cc40df8 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Thu, 10 Nov 2022 15:10:12 +0100 Subject: [PATCH] Editor: consider all providers with matching activation chars Amends 45317da25a3ff4872c193fc59e6f8576fbb477ed Change-Id: I6bc748f2be54f47c0e23788352f74cecdd5d730f Reviewed-by: Christian Kandeler --- src/plugins/texteditor/codeassist/codeassistant.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/plugins/texteditor/codeassist/codeassistant.cpp b/src/plugins/texteditor/codeassist/codeassistant.cpp index 4a7c9cf0ea1..819a68d64aa 100644 --- a/src/plugins/texteditor/codeassist/codeassistant.cpp +++ b/src/plugins/texteditor/codeassist/codeassistant.cpp @@ -59,7 +59,7 @@ public: QVariant userData() const; void setUserData(const QVariant &data); - CompletionAssistProvider *identifyActivationSequence(); + QList identifyActivationSequence(); void stopAutomaticProposalTimer(); void startAutomaticProposalTimer(); @@ -149,9 +149,10 @@ bool CodeAssistantPrivate::requestActivationCharProposal() if (m_editorWidget->multiTextCursor().hasMultipleCursors()) return false; if (m_assistKind == Completion && m_settings.m_completionTrigger != ManualCompletion) { - if (CompletionAssistProvider *provider = identifyActivationSequence()) { + for (CompletionAssistProvider *provider : identifyActivationSequence()) { requestProposal(ActivationCharacter, Completion, provider); - return true; + if (isDisplayingProposal() || isWaitingForProposal()) + return true; } } return false; @@ -433,7 +434,7 @@ void CodeAssistantPrivate::invalidateCurrentRequestData() m_receivedContentWhileWaiting = false; } -CompletionAssistProvider *CodeAssistantPrivate::identifyActivationSequence() +QList CodeAssistantPrivate::identifyActivationSequence() { auto checkActivationSequence = [this](CompletionAssistProvider *provider) { if (!provider) @@ -452,11 +453,11 @@ CompletionAssistProvider *CodeAssistantPrivate::identifyActivationSequence() return provider->isActivationCharSequence(sequence); }; - auto provider = { + QList provider = { m_editorWidget->textDocument()->completionAssistProvider(), m_editorWidget->textDocument()->functionHintAssistProvider() }; - return Utils::findOrDefault(provider, checkActivationSequence); + return Utils::filtered(provider, checkActivationSequence); } void CodeAssistantPrivate::notifyChange()