LSP: support WorkDoneProgressOptions in server capabilities

These options indicate whether a server provides extra messages to track
the status of specific requests.

Change-Id: I3fb78f7fa7144a5a9418b32cb5b33d55b668c484
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
David Schulz
2021-02-02 07:34:15 +01:00
parent aec908180d
commit 7521334261
9 changed files with 270 additions and 68 deletions

View File

@@ -84,8 +84,13 @@ QFutureWatcher<ChangeSet> *LanguageClientFormatter::format(
&& !option.filterApplies(filePath, Utils::mimeTypeForName(m_document->mimeType()))) {
return nullptr;
}
} else if (!m_client->capabilities().documentRangeFormattingProvider().value_or(false)) {
return nullptr;
} else {
const Utils::optional<Utils::variant<bool, WorkDoneProgressOptions>> &provider
= m_client->capabilities().documentRangeFormattingProvider();
if (!provider.has_value())
return nullptr;
if (Utils::holds_alternative<bool>(*provider) && !Utils::get<bool>(*provider))
return nullptr;
}
DocumentRangeFormattingParams params;
const DocumentUri uri = DocumentUri::fromFilePath(filePath);