diff --git a/src/plugins/clangcodemodel/clangdclient.cpp b/src/plugins/clangcodemodel/clangdclient.cpp index f8145206ff7..e9212b3d765 100644 --- a/src/plugins/clangcodemodel/clangdclient.cpp +++ b/src/plugins/clangcodemodel/clangdclient.cpp @@ -1968,6 +1968,14 @@ static void collectExtraResults(QFutureInterface insert(result); continue; } + if (node.role() == "attribute" && (node.kind() == "Override" || node.kind() == "Final")) { + TextEditor::HighlightingResult result; + result.useTextSyles = true; + result.textStyles.mainStyle = TextEditor::C_KEYWORD; + setFromRange(result, node.range()); + insert(result); + continue; + } const bool isExpression = node.role() == "expression"; const bool isDeclaration = node.role() == "declaration"; diff --git a/src/plugins/clangcodemodel/test/clangdtests.cpp b/src/plugins/clangcodemodel/test/clangdtests.cpp index c7a33f2be6e..f1da00e0770 100644 --- a/src/plugins/clangcodemodel/test/clangdtests.cpp +++ b/src/plugins/clangcodemodel/test/clangdtests.cpp @@ -1236,6 +1236,8 @@ void ClangdTestHighlighting::test_data() << QList{C_LOCAL} << 0; QTest::newRow("static function call (argument)") << 819 << 18 << 819 << 19 << QList{C_LOCAL, C_OUTPUT_ARGUMENT} << 0; + QTest::newRow("override attribute") << 186 << 28 << 186 << 36 << QList{C_KEYWORD} << 0; + QTest::newRow("final attribute") << 187 << 33 << 187 << 38 << QList{C_KEYWORD} << 0; } void ClangdTestHighlighting::test()