forked from qt-creator/qt-creator
Editor: consider all providers with matching activation chars
Amends 45317da25a
Change-Id: I6bc748f2be54f47c0e23788352f74cecdd5d730f
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -59,7 +59,7 @@ public:
|
|||||||
QVariant userData() const;
|
QVariant userData() const;
|
||||||
void setUserData(const QVariant &data);
|
void setUserData(const QVariant &data);
|
||||||
|
|
||||||
CompletionAssistProvider *identifyActivationSequence();
|
QList<CompletionAssistProvider *> identifyActivationSequence();
|
||||||
|
|
||||||
void stopAutomaticProposalTimer();
|
void stopAutomaticProposalTimer();
|
||||||
void startAutomaticProposalTimer();
|
void startAutomaticProposalTimer();
|
||||||
@@ -149,9 +149,10 @@ bool CodeAssistantPrivate::requestActivationCharProposal()
|
|||||||
if (m_editorWidget->multiTextCursor().hasMultipleCursors())
|
if (m_editorWidget->multiTextCursor().hasMultipleCursors())
|
||||||
return false;
|
return false;
|
||||||
if (m_assistKind == Completion && m_settings.m_completionTrigger != ManualCompletion) {
|
if (m_assistKind == Completion && m_settings.m_completionTrigger != ManualCompletion) {
|
||||||
if (CompletionAssistProvider *provider = identifyActivationSequence()) {
|
for (CompletionAssistProvider *provider : identifyActivationSequence()) {
|
||||||
requestProposal(ActivationCharacter, Completion, provider);
|
requestProposal(ActivationCharacter, Completion, provider);
|
||||||
return true;
|
if (isDisplayingProposal() || isWaitingForProposal())
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
@@ -433,7 +434,7 @@ void CodeAssistantPrivate::invalidateCurrentRequestData()
|
|||||||
m_receivedContentWhileWaiting = false;
|
m_receivedContentWhileWaiting = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
CompletionAssistProvider *CodeAssistantPrivate::identifyActivationSequence()
|
QList<CompletionAssistProvider *> CodeAssistantPrivate::identifyActivationSequence()
|
||||||
{
|
{
|
||||||
auto checkActivationSequence = [this](CompletionAssistProvider *provider) {
|
auto checkActivationSequence = [this](CompletionAssistProvider *provider) {
|
||||||
if (!provider)
|
if (!provider)
|
||||||
@@ -452,11 +453,11 @@ CompletionAssistProvider *CodeAssistantPrivate::identifyActivationSequence()
|
|||||||
return provider->isActivationCharSequence(sequence);
|
return provider->isActivationCharSequence(sequence);
|
||||||
};
|
};
|
||||||
|
|
||||||
auto provider = {
|
QList<CompletionAssistProvider *> provider = {
|
||||||
m_editorWidget->textDocument()->completionAssistProvider(),
|
m_editorWidget->textDocument()->completionAssistProvider(),
|
||||||
m_editorWidget->textDocument()->functionHintAssistProvider()
|
m_editorWidget->textDocument()->functionHintAssistProvider()
|
||||||
};
|
};
|
||||||
return Utils::findOrDefault(provider, checkActivationSequence);
|
return Utils::filtered(provider, checkActivationSequence);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CodeAssistantPrivate::notifyChange()
|
void CodeAssistantPrivate::notifyChange()
|
||||||
|
|||||||
Reference in New Issue
Block a user