diff --git a/src/plugins/cpptools/cppcodecompletion.cpp b/src/plugins/cpptools/cppcodecompletion.cpp index 35b751104d39882b6c8d21426f3f2734b0eb1da0..1be7e4100126411a5ddd1a5ee725e88fe66736ba 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 53de9ee66e1dee79c833953bb2413b6d6a9fd3e6..2e456193ad52f2af57952a6667f6e3a63f885ea7 100644 --- a/src/plugins/texteditor/completionsupport.cpp +++ b/src/plugins/texteditor/completionsupport.cpp @@ -186,6 +186,8 @@ QList<CompletionItem> 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 c8c035802e4e0c83f305b07c6f05421427cd39f7..49d70f182883b2302cd16c1203b2216b3a39d749 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; };