From 8c59160792cd9d1ef4a2273cd6058ad105b92ea5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thorbj=C3=B8rn=20Lindeijer?= <thorbjorn.lindeijer@nokia.com> Date: Mon, 26 Jan 2009 15:51:14 +0100 Subject: [PATCH] Fix SIGNAL/SLOT completion with spaces after opening brace Spaces after the opening brace would cause SIGNAL/SLOT completion to be disabled along with function completion. Now function completion is checked at a later stage. --- src/plugins/cpptools/cppcodecompletion.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/plugins/cpptools/cppcodecompletion.cpp b/src/plugins/cpptools/cppcodecompletion.cpp index 573c9a25466..824b7b4b1cb 100644 --- a/src/plugins/cpptools/cppcodecompletion.cpp +++ b/src/plugins/cpptools/cppcodecompletion.cpp @@ -435,15 +435,15 @@ int CppCodeCompletion::startCompletion(TextEditor::ITextEditable *editor) m_startPosition = findStartOfName(editor); m_completionOperator = T_EOF_SYMBOL; - int endOfExpression = m_startPosition; + int endOfOperator = m_startPosition; // Skip whitespace preceding this position - while (editor->characterAt(endOfExpression - 1).isSpace()) - --endOfExpression; + while (editor->characterAt(endOfOperator - 1).isSpace()) + --endOfOperator; - endOfExpression = startOfOperator(editor, endOfExpression, - &m_completionOperator, - /*want function call =*/ editor->position() == endOfExpression); + int endOfExpression = startOfOperator(editor, endOfOperator, + &m_completionOperator, + /*want function call =*/ true); Core::IFile *file = editor->file(); QString fileName = file->fileName(); @@ -464,6 +464,11 @@ int CppCodeCompletion::startCompletion(TextEditor::ITextEditable *editor) m_completionOperator = T_SIGNAL; else if (expression.endsWith(QLatin1String("SLOT"))) m_completionOperator = T_SLOT; + else if (editor->position() != endOfOperator) { + // We don't want a function completion when the cursor isn't at the opening brace + expression.clear(); + m_completionOperator = T_EOF_SYMBOL; + } } } -- GitLab