diff --git a/src/plugins/cpptools/cppcodecompletion.cpp b/src/plugins/cpptools/cppcodecompletion.cpp index 35b751104d3..1be7e410012 100644 --- a/src/plugins/cpptools/cppcodecompletion.cpp +++ b/src/plugins/cpptools/cppcodecompletion.cpp @@ -1224,8 +1224,9 @@ void CppCodeCompletion::complete(const TextEditor::CompletionItem &item) extraChars += QLatin1Char('('); // If the function takes no arguments, automatically place the closing parenthesis - if (function->argumentCount() == 0 || (function->argumentCount() == 1 && - function->argumentAt(0)->type()->isVoidType())) { + if (item.m_duplicateCount == 0 && (function->argumentCount() == 0 || + (function->argumentCount() == 1 && + function->argumentAt(0)->type()->isVoidType()))) { extraChars += QLatin1Char(')'); // If the function doesn't return anything, automatically place the semicolon, diff --git a/src/plugins/texteditor/completionsupport.cpp b/src/plugins/texteditor/completionsupport.cpp index 53de9ee66e1..2e456193ad5 100644 --- a/src/plugins/texteditor/completionsupport.cpp +++ b/src/plugins/texteditor/completionsupport.cpp @@ -186,6 +186,8 @@ QList CompletionSupport::getCompletions() const if (item.m_text != lastKey) { uniquelist.append(item); lastKey = item.m_text; + } else { + uniquelist.last().m_duplicateCount++; } } diff --git a/src/plugins/texteditor/icompletioncollector.h b/src/plugins/texteditor/icompletioncollector.h index c8c035802e4..49d70f18288 100644 --- a/src/plugins/texteditor/icompletioncollector.h +++ b/src/plugins/texteditor/icompletioncollector.h @@ -46,6 +46,7 @@ struct CompletionItem { CompletionItem(ICompletionCollector *collector = 0) : m_relevance(0), + m_duplicateCount(0), m_collector(collector) { } @@ -60,6 +61,7 @@ struct CompletionItem QIcon m_icon; QVariant m_data; int m_relevance; + int m_duplicateCount; ICompletionCollector *m_collector; };