LanguageClient: support semanticTokens/refresh

Fixes: QTCREATORBUG-26499
Change-Id: Icd5879609bb856797fa223394357a1f15554d2cf
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This commit is contained in:
David Schulz
2021-11-02 14:21:50 +01:00
parent d3345320c7
commit 426fde79d6
9 changed files with 74 additions and 3 deletions

View File

@@ -170,6 +170,9 @@ static ClientCapabilities generateClientCapabilities()
workspaceCapabilities.setDidChangeConfiguration(allowDynamicRegistration);
workspaceCapabilities.setExecuteCommand(allowDynamicRegistration);
workspaceCapabilities.setConfiguration(true);
SemanticTokensWorkspaceClientCapabilities semanticTokensWorkspaceClientCapabilities;
semanticTokensWorkspaceClientCapabilities.setRefreshSupport(true);
workspaceCapabilities.setSemanticTokens(semanticTokensWorkspaceClientCapabilities);
capabilities.setWorkspace(workspaceCapabilities);
TextDocumentClientCapabilities documentCapabilities;
@@ -1363,6 +1366,11 @@ void Client::handleMethod(const QString &method, const MessageId &id, const ICon
dynamic_cast<const WorkDoneProgressCreateRequest *>(content)->id());
response.setResult(nullptr);
sendContent(response);
} else if (method == SemanticTokensRefreshRequest::methodName) {
m_tokenSupport.refresh();
Response<std::nullptr_t, JsonObject> response(id);
response.setResult(nullptr);
sendContent(response);
} else if (method == ProgressNotification::methodName) {
if (Utils::optional<ProgressParams> params
= dynamic_cast<const ProgressNotification *>(content)->params()) {