diff --git a/src/plugins/clangcodemodel/clangcompletionassistprocessor.cpp b/src/plugins/clangcodemodel/clangcompletionassistprocessor.cpp index bff0c4577e7..eadb4a37ce2 100644 --- a/src/plugins/clangcodemodel/clangcompletionassistprocessor.cpp +++ b/src/plugins/clangcodemodel/clangcompletionassistprocessor.cpp @@ -100,10 +100,7 @@ QList toAssistProposalItems(const CodeCompletions &complet items.insert(name, item); item->setText(name); item->setOrder(ccr.priority()); - - if (ccr.completionKind() == CodeCompletion::KeywordCompletionKind) - item->setDetail(CompletionChunksToTextConverter::convertToToolTip(ccr.chunks())); - + item->setDetail(CompletionChunksToTextConverter::convertToToolTip(ccr.chunks())); item->setCodeCompletion(ccr); } diff --git a/src/plugins/clangcodemodel/test/clangcodecompletion_test.cpp b/src/plugins/clangcodemodel/test/clangcodecompletion_test.cpp index 215c434d69c..5c30f4a0c7b 100644 --- a/src/plugins/clangcodemodel/test/clangcodecompletion_test.cpp +++ b/src/plugins/clangcodemodel/test/clangcodecompletion_test.cpp @@ -623,15 +623,33 @@ public: ProposalModel proposal; }; -bool hasItem(ProposalModel model, const QByteArray &text) +int indexOfItemWithText(ProposalModel model, const QByteArray &text) { if (!model) - return false; + return -1; for (int i = 0, size = model->size(); i < size; ++i) { const QString itemText = model->text(i); if (itemText == QString::fromUtf8(text)) - return true; + return i; + } + + return -1; +} + +bool hasItem(ProposalModel model, const QByteArray &text) +{ + return indexOfItemWithText(model, text) != -1; +} + +bool hasItem(ProposalModel model, const QByteArray &text, const QByteArray &detail) +{ + const int index = indexOfItemWithText(model, text); + if (index != -1 && index < model->size()) { + TextEditor::IAssistProposalModel *imodel = model.data(); + const auto genericModel = static_cast(imodel); + const auto itemDetail = genericModel->detail(index); + return itemDetail == QString::fromUtf8(detail); } return false; @@ -844,10 +862,10 @@ void ClangCodeCompletionTest::testCompleteGlobals() { ProjectLessCompletionTest t("globalCompletion.cpp"); - QVERIFY(hasItem(t.proposal, "globalVariable")); - QVERIFY(hasItem(t.proposal, "globalFunction")); - QVERIFY(hasItem(t.proposal, "GlobalClass")); - QVERIFY(hasItem(t.proposal, "class")); // Keyword + QVERIFY(hasItem(t.proposal, "globalVariable", "int globalVariable")); + QVERIFY(hasItem(t.proposal, "globalFunction", "void globalFunction ()")); + QVERIFY(hasItem(t.proposal, "GlobalClass", "GlobalClass")); + QVERIFY(hasItem(t.proposal, "class", "class")); // Keyword QVERIFY(hasSnippet(t.proposal, "class")); // Snippet }