diff --git a/src/plugins/clangcodemodel/clangdsemantichighlighting.cpp b/src/plugins/clangcodemodel/clangdsemantichighlighting.cpp index 14746f5ac79..cff8253de62 100644 --- a/src/plugins/clangcodemodel/clangdsemantichighlighting.cpp +++ b/src/plugins/clangcodemodel/clangdsemantichighlighting.cpp @@ -328,7 +328,7 @@ void doSemanticHighlighting( styles.mainStyle = C_PARAMETER; } else if (token.type == "macro") { styles.mainStyle = C_MACRO; - } else if (token.type == "type") { + } else if (token.type == "type" || token.type == "concept") { styles.mainStyle = C_TYPE; } else if (token.type == "modifier") { styles.mainStyle = C_KEYWORD; diff --git a/src/plugins/clangcodemodel/test/clangdtests.cpp b/src/plugins/clangcodemodel/test/clangdtests.cpp index cf94865098c..b5103d3552d 100644 --- a/src/plugins/clangcodemodel/test/clangdtests.cpp +++ b/src/plugins/clangcodemodel/test/clangdtests.cpp @@ -1280,6 +1280,9 @@ void ClangdTestHighlighting::test_data() << QList{C_FIELD} << 0; QTest::newRow("fake operator method call") << 1050 << 8 << 1050 << 22 << QList{C_FUNCTION} << 0; + QTest::newRow("concept definition") << 1053 << 30 << 1053 << 42 + << QList{C_TYPE, C_DECLARATION} << 0; + QTest::newRow("concept use") << 1054 << 29 << 1054 << 41 << QList{C_TYPE} << 0; } void ClangdTestHighlighting::test() diff --git a/src/plugins/clangcodemodel/test/data/highlighting/highlighting.cpp b/src/plugins/clangcodemodel/test/data/highlighting/highlighting.cpp index 9d1ba0d5e74..e8f7768ff34 100644 --- a/src/plugins/clangcodemodel/test/data/highlighting/highlighting.cpp +++ b/src/plugins/clangcodemodel/test/data/highlighting/highlighting.cpp @@ -1049,3 +1049,6 @@ void useStrangeStruct(StructWithMisleadingMemberNames *s) { s->operatormember = 5; s->operatorMethod(); } + +template concept NoConstraint = true; +static void constrainedFunc(NoConstraint auto t) {} diff --git a/src/plugins/clangcodemodel/test/data/highlighting/highlighting.pro b/src/plugins/clangcodemodel/test/data/highlighting/highlighting.pro index 33722d7d67b..8010375acd0 100644 --- a/src/plugins/clangcodemodel/test/data/highlighting/highlighting.pro +++ b/src/plugins/clangcodemodel/test/data/highlighting/highlighting.pro @@ -1,4 +1,5 @@ TEMPLATE = app CONFIG -= qt +CONFIG += c++2a SOURCES = highlighting.cpp QMAKE_CXXFLAGS += -broken