From a066a0d290f2e48d67dba2e4ac3600a0cb65bcde Mon Sep 17 00:00:00 2001 From: David Schulz Date: Mon, 21 Aug 2023 15:55:44 +0200 Subject: [PATCH] LanguageClient: Fix ConfigurationItem scopeUri type 'scopeUri' should contain a DocumentUri and not a QString according to the protocol (https://microsoft.github.io/language-server-protocol/ specifications/lsp/3.17/specification/#configurationItem). Change-Id: Ibdec5f22cdce4dc1b5e3e0ef264cdc0458c124f1 Reviewed-by: Christian Stenger Reviewed-by: --- src/libs/languageserverprotocol/workspace.cpp | 7 +++++++ src/libs/languageserverprotocol/workspace.h | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/libs/languageserverprotocol/workspace.cpp b/src/libs/languageserverprotocol/workspace.cpp index c9d2aeb4130..2d49be2d5ff 100644 --- a/src/libs/languageserverprotocol/workspace.cpp +++ b/src/libs/languageserverprotocol/workspace.cpp @@ -72,4 +72,11 @@ LanguageServerProtocol::WorkSpaceFolderResult::operator const QJsonValue() const return array; } +std::optional ConfigurationParams::ConfigurationItem::scopeUri() const +{ + if (const std::optional optionalScope = optionalValue(scopeUriKey)) + return std::make_optional(DocumentUri::fromProtocol(*optionalScope)); + return std::nullopt; +} + } // namespace LanguageServerProtocol diff --git a/src/libs/languageserverprotocol/workspace.h b/src/libs/languageserverprotocol/workspace.h index f99dded8386..69c3ef9bd4f 100644 --- a/src/libs/languageserverprotocol/workspace.h +++ b/src/libs/languageserverprotocol/workspace.h @@ -92,8 +92,8 @@ public: public: using JsonObject::JsonObject; - std::optional scopeUri() const { return optionalValue(scopeUriKey); } - void setScopeUri(const QString &scopeUri) { insert(scopeUriKey, scopeUri); } + std::optional scopeUri() const; + void setScopeUri(const DocumentUri &scopeUri) { insert(scopeUriKey, scopeUri); } void clearScopeUri() { remove(scopeUriKey); } std::optional section() const { return optionalValue(sectionKey); }