diff --git a/src/plugins/clangcodemodel/clangdclient.cpp b/src/plugins/clangcodemodel/clangdclient.cpp index fddf22e0096..46c85f06cdf 100644 --- a/src/plugins/clangcodemodel/clangdclient.cpp +++ b/src/plugins/clangcodemodel/clangdclient.cpp @@ -2453,6 +2453,8 @@ static void semanticHighlighter(QFutureInterface &future, return true; } + if (it->kind() == "Lambda") + return false; if (it->kind().endsWith("Cast") && it->hasConstType()) return false; if (it->kind() == "Member" && it->arcanaContains("(") diff --git a/src/plugins/clangcodemodel/test/clangdtests.cpp b/src/plugins/clangcodemodel/test/clangdtests.cpp index 82e63d49835..cc532cfda03 100644 --- a/src/plugins/clangcodemodel/test/clangdtests.cpp +++ b/src/plugins/clangcodemodel/test/clangdtests.cpp @@ -1250,6 +1250,8 @@ void ClangdTestHighlighting::test_data() << QList{C_LOCAL} << 0; QTest::newRow("simple assignment") << 835 << 5 << 835 << 6 << QList{C_LOCAL} << 0; QTest::newRow("simple return") << 841 << 12 << 841 << 15 << QList{C_LOCAL} << 0; + QTest::newRow("lambda parameter") << 847 << 49 << 847 << 52 + << QList{C_PARAMETER, C_DECLARATION} << 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 7f8faa1edc0..7f0db946955 100644 --- a/src/plugins/clangcodemodel/test/data/highlighting/highlighting.cpp +++ b/src/plugins/clangcodemodel/test/data/highlighting/highlighting.cpp @@ -840,3 +840,9 @@ FooPtrVector returnTest() { FooPtrVector foo; return foo; } + +template inline void useContainer(const Container &, Func) {} +void testConstRefAutoLambdaArgs() +{ + useContainer(FooPtrVector(), [](const auto &arg) {}); +}