diff options
author | Jarek Kobus <[email protected]> | 2023-08-17 11:49:12 +0200 |
---|---|---|
committer | Jarek Kobus <[email protected]> | 2023-08-17 11:04:58 +0000 |
commit | 0ffc4ac89ebe57eb3130a9ab10f60ff3f7e1cc07 (patch) | |
tree | 0130b0ddd6e6a87444f6d83038ff57884eab2b77 /src/plugins/languageclient/clientrequest.cpp | |
parent | 5b8600fd376334fbf3e3e1734a46af8fad7f7fb1 (diff) |
LanguageClient: Rename clientrequesttask.{cpp,h} -> clientrequest.{cpp,h}
Change-Id: Ia6a1b65564795c8f2931efb1030d7a189a18d68b
Reviewed-by: David Schulz <[email protected]>
Diffstat (limited to 'src/plugins/languageclient/clientrequest.cpp')
-rw-r--r-- | src/plugins/languageclient/clientrequest.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/plugins/languageclient/clientrequest.cpp b/src/plugins/languageclient/clientrequest.cpp new file mode 100644 index 00000000000..630a1b01940 --- /dev/null +++ b/src/plugins/languageclient/clientrequest.cpp @@ -0,0 +1,37 @@ +// Copyright (C) 2023 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "clientrequest.h" + +using namespace LanguageServerProtocol; + +namespace LanguageClient { + +ClientWorkspaceSymbolRequestTaskAdapter::ClientWorkspaceSymbolRequestTaskAdapter() +{ + task()->setResponseCallback([this](const WorkspaceSymbolRequest::Response &response){ + emit done(response.result().has_value()); + }); +} + +void ClientWorkspaceSymbolRequestTaskAdapter::start() +{ + task()->start(); +} + +bool ClientWorkspaceSymbolRequest::preStartCheck() +{ + if (!ClientRequest::preStartCheck()) + return false; + + const std::optional<std::variant<bool, WorkDoneProgressOptions>> capability + = client()->capabilities().workspaceSymbolProvider(); + if (!capability.has_value()) + return false; + if (std::holds_alternative<bool>(*capability) && !std::get<bool>(*capability)) + return false; + + return true; +} + +} // namespace LanguageClient |