Skip to content
Snippets Groups Projects
Commit 1113097c authored by Nikolai Kosjar's avatar Nikolai Kosjar
Browse files

TextEditor/CodeAssist: Limit automatic proposals only to completions


...since it does not make sense for TextEditor::QuickFix and
TextEditor::FollowSymbol.

Regarding the bug:
- The bug was exposed by having "Active completion" set to *not*
  "Manual" in Options > Text Editor > Completion.
- After choosing one item from the overrides list the cursor was
  positioned just right before the beginning of a function name, which
  is a valid activation sequence (see CodeAssistantPrivate::process()))
  As a consequence, a new proposal was requested.

Task-number: QTCREATORBUG-10345
Change-Id: Ib0d10192863fb33c0958a9afbf76ca8e7de772f8
Reviewed-by: default avatarErik Verbruggen <erik.verbruggen@digia.com>
parent b99f965c
No related branches found
No related tags found
No related merge requests found
...@@ -149,6 +149,7 @@ CodeAssistantPrivate::CodeAssistantPrivate(CodeAssistant *assistant) ...@@ -149,6 +149,7 @@ CodeAssistantPrivate::CodeAssistantPrivate(CodeAssistant *assistant)
, m_completionProvider(0) , m_completionProvider(0)
, m_requestRunner(0) , m_requestRunner(0)
, m_requestProvider(0) , m_requestProvider(0)
, m_assistKind(TextEditor::Completion)
, m_proposalWidget(0) , m_proposalWidget(0)
, m_receivedContentWhileWaiting(false) , m_receivedContentWhileWaiting(false)
, m_settings(TextEditorSettings::completionSettings()) , m_settings(TextEditorSettings::completionSettings())
...@@ -223,16 +224,20 @@ void CodeAssistantPrivate::process() ...@@ -223,16 +224,20 @@ void CodeAssistantPrivate::process()
stopAutomaticProposalTimer(); stopAutomaticProposalTimer();
if (m_settings.m_completionTrigger != ManualCompletion) { if (m_assistKind == TextEditor::Completion) {
if (CompletionAssistProvider *provider = identifyActivationSequence()) { if (m_settings.m_completionTrigger != ManualCompletion) {
if (isWaitingForProposal()) if (CompletionAssistProvider *provider = identifyActivationSequence()) {
cancelCurrentRequest(); if (isWaitingForProposal())
requestProposal(ActivationCharacter, Completion, provider); cancelCurrentRequest();
return; requestProposal(ActivationCharacter, Completion, provider);
return;
}
} }
}
startAutomaticProposalTimer(); startAutomaticProposalTimer();
} else {
m_assistKind = TextEditor::Completion;
}
} }
void CodeAssistantPrivate::requestProposal(AssistReason reason, void CodeAssistantPrivate::requestProposal(AssistReason reason,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment