forked from qt-creator/qt-creator
ClangCodeModel: Do not traverse the AST in the semantic highlighter
... with clangd >= 17. We do not need to look at AST nodes anymore; everything comes from the server. Change-Id: I46eb91f26515e31b752020edbc32f1b23c1d79c7 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:
@@ -1468,6 +1468,9 @@ void ClangdClient::Private::handleSemanticTokens(TextDocument *doc,
|
|||||||
data.highlighter->setHighlightingRunner(runner);
|
data.highlighter->setHighlightingRunner(runner);
|
||||||
data.highlighter->run();
|
data.highlighter->run();
|
||||||
};
|
};
|
||||||
|
if (q->versionNumber().majorVersion() >= 17)
|
||||||
|
astHandler({}, {});
|
||||||
|
else
|
||||||
getAndHandleAst(doc, astHandler, AstCallbackMode::SyncIfPossible);
|
getAndHandleAst(doc, astHandler, AstCallbackMode::SyncIfPossible);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -461,6 +461,7 @@ void ExtraHighlightingResultsCollector::collect()
|
|||||||
|
|
||||||
if (!m_ast.isValid())
|
if (!m_ast.isValid())
|
||||||
return;
|
return;
|
||||||
|
QTC_ASSERT(m_clangdVersion < 17, return);
|
||||||
visitNode(m_ast);
|
visitNode(m_ast);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -656,7 +657,6 @@ void ExtraHighlightingResultsCollector::collectFromNode(const ClangdAstNode &nod
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_clangdVersion < 17) {
|
|
||||||
if (isDeclaration && (node.kind() == "FunctionTemplate" || node.kind() == "ClassTemplate")) {
|
if (isDeclaration && (node.kind() == "FunctionTemplate" || node.kind() == "ClassTemplate")) {
|
||||||
// The child nodes are the template parameters and and the function or class.
|
// The child nodes are the template parameters and and the function or class.
|
||||||
// The opening angle bracket is before the first child node, the closing angle
|
// The opening angle bracket is before the first child node, the closing angle
|
||||||
@@ -776,7 +776,6 @@ void ExtraHighlightingResultsCollector::collectFromNode(const ClangdAstNode &nod
|
|||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (!isExpression && !isDeclaration)
|
if (!isExpression && !isDeclaration)
|
||||||
return;
|
return;
|
||||||
|
Reference in New Issue
Block a user