LanguageClient: additional log output for the semantic highlighter

Change-Id: Idc4d71bd988b9a23a6718932b4102a00fb94488e
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
David Schulz
2021-10-29 11:34:45 +02:00
parent 91605c3613
commit 3b62755061

View File

@@ -412,12 +412,20 @@ void SemanticTokenSupport::handleSemanticTokensDelta(
auto it = data.begin(); auto it = data.begin();
const auto end = data.end(); const auto end = data.end();
qCDebug(LOGLSPHIGHLIGHT) << "Edit Tokens for " << filePath;
qCDebug(LOGLSPHIGHLIGHT) << "Data before edit " << data;
for (const SemanticTokensEdit &edit : qAsConst(edits)) { for (const SemanticTokensEdit &edit : qAsConst(edits)) {
if (edit.start() > data.size()) // prevent edits after the previously reported data if (edit.start() > data.size()) // prevent edits after the previously reported data
return; return;
for (const auto start = data.begin() + edit.start(); it < start; ++it) for (const auto start = data.begin() + edit.start(); it < start; ++it)
newData.append(*it); newData.append(*it);
newData.append(edit.data().value_or(QList<int>())); const Utils::optional<QList<int>> editData = edit.data();
if (editData.has_value()) {
newData.append(editData.value());
qCDebug(LOGLSPHIGHLIGHT) << edit.start() << edit.deleteCount() << editData.value();
} else {
qCDebug(LOGLSPHIGHLIGHT) << edit.start() << edit.deleteCount();
}
int deleteCount = edit.deleteCount(); int deleteCount = edit.deleteCount();
if (deleteCount > std::distance(it, end)) { if (deleteCount > std::distance(it, end)) {
qCDebug(LOGLSPHIGHLIGHT) qCDebug(LOGLSPHIGHLIGHT)
@@ -434,6 +442,7 @@ void SemanticTokenSupport::handleSemanticTokensDelta(
for (; it != end; ++it) for (; it != end; ++it)
newData.append(*it); newData.append(*it);
qCDebug(LOGLSPHIGHLIGHT) << "New Data " << newData;
tokens.setData(newData); tokens.setData(newData);
tokens.setResultId(tokensDelta->resultId()); tokens.setResultId(tokensDelta->resultId());
} else { } else {
@@ -478,6 +487,14 @@ void SemanticTokenSupport::highlight(const Utils::FilePath &filePath)
expandedToken.length = token.length; expandedToken.length = token.length;
expandedTokens << expandedToken; expandedTokens << expandedToken;
}; };
if (LOGLSPHIGHLIGHT().isDebugEnabled()) {
qCDebug(LOGLSPHIGHLIGHT) << "Expanded Tokens for " << filePath;
for (const ExpandedSemanticToken &token : qAsConst(expandedTokens)) {
qCDebug(LOGLSPHIGHLIGHT)
<< token.line << token.column << token.length << token.type << token.modifiers;
}
}
m_tokensHandler(doc, expandedTokens, versionedTokens.version); m_tokensHandler(doc, expandedTokens, versionedTokens.version);
return; return;
} }