diff options
author | Nikolai Kosjar <nikolai.kosjar@theqtcompany.com> | 2015-08-07 10:58:17 +0200 |
---|---|---|
committer | Marco Bubke <marco.bubke@theqtcompany.com> | 2015-08-10 09:35:01 +0000 |
commit | 64d8ac488069a54381f0c3483d4dfd8f0430490f (patch) | |
tree | b2946ef08d4e68610079619ca5ad312cad26aa25 /src/plugins/clangcodemodel | |
parent | c4fe977e7c2ea10a41da710121dcf6e2d4c64df3 (diff) | |
download | qt-creator-64d8ac488069a54381f0c3483d4dfd8f0430490f.tar.gz |
Clang: Fix showing signature tooltips for functions
...and others in the generic completion widget.
Task-number: QTCREATORBUG-14874
Change-Id: I75122eaf364d740b0a64ca514b31a26c5c8ea673
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
Diffstat (limited to 'src/plugins/clangcodemodel')
-rw-r--r-- | src/plugins/clangcodemodel/clangcompletionassistprocessor.cpp | 5 | ||||
-rw-r--r-- | src/plugins/clangcodemodel/test/clangcodecompletion_test.cpp | 32 |
2 files changed, 26 insertions, 11 deletions
diff --git a/src/plugins/clangcodemodel/clangcompletionassistprocessor.cpp b/src/plugins/clangcodemodel/clangcompletionassistprocessor.cpp index bff0c4577e..eadb4a37ce 100644 --- a/src/plugins/clangcodemodel/clangcompletionassistprocessor.cpp +++ b/src/plugins/clangcodemodel/clangcompletionassistprocessor.cpp @@ -100,10 +100,7 @@ QList<AssistProposalItem *> 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 215c434d69..5c30f4a0c7 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<TextEditor::GenericProposalModel *>(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 } |