summaryrefslogtreecommitdiff
path: root/src/plugins/clangcodemodel
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@theqtcompany.com>2015-08-07 10:58:17 +0200
committerMarco Bubke <marco.bubke@theqtcompany.com>2015-08-10 09:35:01 +0000
commit64d8ac488069a54381f0c3483d4dfd8f0430490f (patch)
treeb2946ef08d4e68610079619ca5ad312cad26aa25 /src/plugins/clangcodemodel
parentc4fe977e7c2ea10a41da710121dcf6e2d4c64df3 (diff)
downloadqt-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.cpp5
-rw-r--r--src/plugins/clangcodemodel/test/clangcodecompletion_test.cpp32
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
}