ClangCodeModel: Ignore boolean and pointer literals

... when doing semantic highlighting. The syntax highlighter already
handles these.

Change-Id: I048e033eda5b72d2e6eafaaccdb66040a00afe6a
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Christian Kandeler
2023-01-31 18:02:08 +01:00
parent f952918390
commit c31522731c
4 changed files with 16 additions and 7 deletions

View File

@@ -597,11 +597,11 @@ void ExtraHighlightingResultsCollector::collectFromNode(const ClangdAstNode &nod
if (node.kind() == "UserDefinedLiteral")
return;
if (node.kind().endsWith("Literal")) {
const bool isKeyword = node.kind() == "CXXBoolLiteral"
|| node.kind() == "CXXNullPtrLiteral";
if (!isKeyword && (node.kind().startsWith("String") || node.kind().startsWith("Character")))
if (node.kind() == "CXXBoolLiteral" || node.kind() == "CXXNullPtrLiteral")
return;
insertResult(node, isKeyword ? C_KEYWORD : C_NUMBER);
if (node.kind().startsWith("String") || node.kind().startsWith("Character"))
return;
insertResult(node, C_NUMBER);
return;
}
if (node.role() == "type" && node.kind() == "Builtin") {

View File

@@ -1259,9 +1259,6 @@ void ClangdTestHighlighting::test_data()
<< QList<int>{C_FIELD} << 0;
QTest::newRow("member initialization: member (built-in type)") << 911 << 23 << 911 << 27
<< QList<int>{C_FIELD} << 0;
QTest::newRow("keywords: true") << 920 << 15 << 920 << 19 << QList<int>{C_KEYWORD} << 0;
QTest::newRow("keywords: false") << 921 << 15 << 921 << 20 << QList<int>{C_KEYWORD} << 0;
QTest::newRow("keywords: nullptr") << 922 << 15 << 922 << 22 << QList<int>{C_KEYWORD} << 0;
QTest::newRow("operator<<") << 934 << 10 << 934 << 14 << QList<int>{C_GLOBAL} << 0;
QTest::newRow("operator>>") << 936 << 10 << 936 << 13 << QList<int>{C_GLOBAL} << 0;
QTest::newRow("operator>>") << 936 << 17 << 936 << 18 << QList<int>{C_LOCAL} << 0;