forked from qt-creator/qt-creator
ClangCodeModel: Ignore number literals
... in the semantic highlighter. The syntax highlighter already handles these. Change-Id: I26f6bca06c4fc648ffe59bd9e3639d81d2265755 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:
@@ -594,16 +594,9 @@ void ExtraHighlightingResultsCollector::setResultPosFromRange(HighlightingResult
|
||||
|
||||
void ExtraHighlightingResultsCollector::collectFromNode(const ClangdAstNode &node)
|
||||
{
|
||||
if (node.kind() == "UserDefinedLiteral")
|
||||
if (node.kind().endsWith("Literal"))
|
||||
return;
|
||||
if (node.kind().endsWith("Literal")) {
|
||||
if (node.kind() == "CXXBoolLiteral" || node.kind() == "CXXNullPtrLiteral")
|
||||
return;
|
||||
if (node.kind().startsWith("String") || node.kind().startsWith("Character"))
|
||||
return;
|
||||
insertResult(node, C_NUMBER);
|
||||
return;
|
||||
}
|
||||
|
||||
if (node.role() == "type" && node.kind() == "Builtin") {
|
||||
insertResult(node, C_PRIMITIVE_TYPE);
|
||||
return;
|
||||
|
@@ -693,8 +693,6 @@ void ClangdTestHighlighting::test_data()
|
||||
QTest::addColumn<QList<int>>("expectedStyles");
|
||||
QTest::addColumn<int>("expectedKind");
|
||||
|
||||
QTest::newRow("integer literal") << 23 << 24 << 23 << 25 << QList<int>{C_NUMBER} << 0;
|
||||
QTest::newRow("float literal") << 24 << 24 << 24 << 28 << QList<int>{C_NUMBER} << 0;
|
||||
QTest::newRow("function definition") << 45 << 5 << 45 << 13
|
||||
<< QList<int>{C_FUNCTION, C_FUNCTION_DEFINITION, C_DECLARATION} << 0;
|
||||
QTest::newRow("member function definition") << 52 << 10 << 52 << 24
|
||||
@@ -797,15 +795,12 @@ void ClangdTestHighlighting::test_data()
|
||||
<< QList<int>{C_PUNCTUATION, C_OPERATOR, C_OVERLOADED_OPERATOR, C_DECLARATION} << 0;
|
||||
QTest::newRow("operator<<= call") << 629 << 12 << 629 << 15
|
||||
<< QList<int>{C_PUNCTUATION, C_OPERATOR, C_OVERLOADED_OPERATOR} << 0;
|
||||
QTest::newRow("integer literal 2") << 629 << 16 << 629 << 17 << QList<int>{C_NUMBER} << 0;
|
||||
QTest::newRow("operator(int) member declaration (opening paren") << 619 << 19 << 619 << 20
|
||||
<< QList<int>{C_PUNCTUATION, C_OPERATOR, C_OVERLOADED_OPERATOR, C_DECLARATION} << 0;
|
||||
QTest::newRow("operator(int) member declaration (closing paren") << 619 << 20 << 619 << 21
|
||||
<< QList<int>{C_PUNCTUATION, C_OPERATOR, C_OVERLOADED_OPERATOR, C_DECLARATION} << 0;
|
||||
QTest::newRow("operator(int) call (opening parenthesis)") << 632 << 12 << 632 << 13
|
||||
<< QList<int>{C_PUNCTUATION, C_OPERATOR, C_OVERLOADED_OPERATOR} << 0;
|
||||
QTest::newRow("operator(int) call (argument)") << 632 << 13 << 632 << 14
|
||||
<< QList<int>{C_NUMBER} << 0;
|
||||
QTest::newRow("operator(int) call (closing parenthesis)") << 632 << 14 << 632 << 15
|
||||
<< QList<int>{C_PUNCTUATION, C_OPERATOR, C_OVERLOADED_OPERATOR} << 0;
|
||||
QTest::newRow("operator[] member declaration (opening bracket") << 620 << 18 << 620 << 19
|
||||
@@ -814,8 +809,6 @@ void ClangdTestHighlighting::test_data()
|
||||
<< QList<int>{C_PUNCTUATION, C_OPERATOR, C_OVERLOADED_OPERATOR, C_DECLARATION} << 0;
|
||||
QTest::newRow("operator[] call (opening bracket)") << 633 << 12 << 633 << 13
|
||||
<< QList<int>{C_PUNCTUATION, C_OPERATOR, C_OVERLOADED_OPERATOR} << 0;
|
||||
QTest::newRow("operator[] call (argument)") << 633 << 13 << 633 << 14
|
||||
<< QList<int>{C_NUMBER} << 0;
|
||||
QTest::newRow("operator[] call (closing bracket)") << 633 << 14 << 633 << 15
|
||||
<< QList<int>{C_PUNCTUATION, C_OPERATOR, C_OVERLOADED_OPERATOR} << 0;
|
||||
QTest::newRow("operator new member declaration") << 621 << 20 << 621 << 23
|
||||
@@ -834,8 +827,6 @@ void ClangdTestHighlighting::test_data()
|
||||
<< QList<int>{C_KEYWORD, C_OPERATOR, C_OVERLOADED_OPERATOR} << 0;
|
||||
QTest::newRow("operator new[] member call (type argument)") << 637 << 23 << 637 << 28
|
||||
<< QList<int>{C_TYPE} << 0;
|
||||
QTest::newRow("operator new[] member call (size argument)") << 637 << 29 << 637 << 31
|
||||
<< QList<int>{C_NUMBER} << 0;
|
||||
QTest::newRow("operator delete[] member declaration (keyword)") << 624 << 19 << 624 << 25
|
||||
<< QList<int>{C_KEYWORD, C_OPERATOR, C_OVERLOADED_OPERATOR, C_DECLARATION} << 0;
|
||||
QTest::newRow("operator delete[] member call (keyword") << 638 << 5 << 638 << 11
|
||||
@@ -878,10 +869,6 @@ void ClangdTestHighlighting::test_data()
|
||||
<< QList<int>{C_MACRO, C_DECLARATION} << 0;
|
||||
QTest::newRow("function-like macro call") << 236 << 5 << 236 << 20
|
||||
<< QList<int>{C_MACRO} << 0;
|
||||
QTest::newRow("function-like macro call argument 1") << 236 << 21 << 236 << 22
|
||||
<< QList<int>{C_NUMBER} << 0;
|
||||
QTest::newRow("function-like macro call argument 2") << 236 << 24 << 236 << 25
|
||||
<< QList<int>{C_NUMBER} << 0;
|
||||
QTest::newRow("function template call") << 254 << 5 << 254 << 21 << QList<int>{C_FUNCTION} << 0;
|
||||
QTest::newRow("template type parameter") << 265 << 17 << 265 << 38
|
||||
<< QList<int>{C_TYPE, C_DECLARATION} << 0;
|
||||
@@ -889,8 +876,6 @@ void ClangdTestHighlighting::test_data()
|
||||
<< QList<int>{C_TYPE} << 0;
|
||||
QTest::newRow("template non-type parameter") << 265 << 50 << 265 << 74
|
||||
<< QList<int>{C_PARAMETER, C_DECLARATION} << 0;
|
||||
QTest::newRow("template non-type parameter default argument") << 265 << 77 << 265 << 78
|
||||
<< QList<int>{C_NUMBER} << 0;
|
||||
QTest::newRow("template template parameter") << 265 << 103 << 265 << 128
|
||||
<< QList<int>{C_TYPE, C_DECLARATION} << 0;
|
||||
QTest::newRow("template template parameter default argument") << 265 << 131 << 265 << 142
|
||||
|
@@ -481,7 +481,7 @@ void CppHighlighterTest::test_data()
|
||||
QTest::addColumn<int>("lastColumn");
|
||||
QTest::addColumn<TextStyle>("style");
|
||||
|
||||
QTest::newRow("auto") << 1 << 1 << 1 << 4 << C_KEYWORD;
|
||||
QTest::newRow("auto return type") << 1 << 1 << 1 << 4 << C_KEYWORD;
|
||||
QTest::newRow("opening brace") << 2 << 1 << 2 << 1 << C_PUNCTUATION;
|
||||
QTest::newRow("return") << 3 << 5 << 3 << 10 << C_KEYWORD;
|
||||
QTest::newRow("raw string prefix") << 3 << 12 << 3 << 14 << C_KEYWORD;
|
||||
@@ -501,6 +501,15 @@ void CppHighlighterTest::test_data()
|
||||
QTest::newRow("true") << 11 << 15 << 11 << 18 << C_KEYWORD;
|
||||
QTest::newRow("false") << 12 << 15 << 12 << 19 << C_KEYWORD;
|
||||
QTest::newRow("nullptr") << 13 << 15 << 13 << 21 << C_KEYWORD;
|
||||
QTest::newRow("auto var type") << 18 << 15 << 18 << 8 << C_KEYWORD;
|
||||
QTest::newRow("integer literal") << 18 << 28 << 18 << 28 << C_NUMBER;
|
||||
QTest::newRow("floating-point literal 1") << 19 << 28 << 19 << 31 << C_NUMBER;
|
||||
QTest::newRow("floating-point literal 2") << 20 << 28 << 20 << 30 << C_NUMBER;
|
||||
QTest::newRow("template keyword") << 23 << 1 << 23 << 8 << C_KEYWORD;
|
||||
QTest::newRow("type in template type parameter") << 23 << 10 << 23 << 12 << C_PRIMITIVE_TYPE;
|
||||
QTest::newRow("integer literal as non-type template parameter default value")
|
||||
<< 23 << 18 << 23 << 18 << C_NUMBER;
|
||||
QTest::newRow("class keyword") << 23 << 21 << 23 << 25 << C_KEYWORD;
|
||||
}
|
||||
|
||||
void CppHighlighterTest::test()
|
||||
|
@@ -12,3 +12,12 @@ void keywords()
|
||||
bool b2 = false;
|
||||
void *p = nullptr;
|
||||
}
|
||||
|
||||
void numberLiterals()
|
||||
{
|
||||
auto integer = 1;
|
||||
auto numFloat1 = 1.2f;
|
||||
auto numFloat2 = 1.2;
|
||||
}
|
||||
|
||||
template<int n = 5> class C;
|
||||
|
Reference in New Issue
Block a user