From 97e81d35df609925476b17bb9394c42317367ce7 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Fri, 7 Jan 2022 08:46:21 +0100 Subject: [PATCH] LanguageClient: always send the full list of workspaces at startup Change-Id: I74203b7bc71982b0e6e347b004d48531a07069dc Reviewed-by: Christian Stenger Reviewed-by: --- src/plugins/languageclient/client.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/plugins/languageclient/client.cpp b/src/plugins/languageclient/client.cpp index 11283dbe0e2..f2956e7a905 100644 --- a/src/plugins/languageclient/client.cpp +++ b/src/plugins/languageclient/client.cpp @@ -292,13 +292,18 @@ void Client::initialize() InitializeParams params; params.setCapabilities(m_clientCapabilities); params.setInitializationOptions(m_initializationOptions); - if (m_project) { + if (m_project) params.setRootUri(DocumentUri::fromFilePath(m_project->projectDirectory())); - params.setWorkSpaceFolders(Utils::transform(SessionManager::projects(), [](Project *pro) { - return WorkSpaceFolder(DocumentUri::fromFilePath(pro->projectDirectory()), - pro->displayName()); - })); - } + + const QList workspaces + = Utils::transform(SessionManager::projects(), [](Project *pro) { + return WorkSpaceFolder(DocumentUri::fromFilePath(pro->projectDirectory()), + pro->displayName()); + }); + if (workspaces.isEmpty()) + params.setWorkSpaceFolders(nullptr); + else + params.setWorkSpaceFolders(workspaces); InitializeRequest initRequest(params); initRequest.setResponseCallback([this](const InitializeRequest::Response &initResponse){ initializeCallback(initResponse);