LanguageClient: always send the full list of workspaces at startup

Change-Id: I74203b7bc71982b0e6e347b004d48531a07069dc
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
David Schulz
2022-01-07 08:46:21 +01:00
parent 48076ce617
commit 97e81d35df

View File

@@ -292,13 +292,18 @@ void Client::initialize()
InitializeParams params; InitializeParams params;
params.setCapabilities(m_clientCapabilities); params.setCapabilities(m_clientCapabilities);
params.setInitializationOptions(m_initializationOptions); params.setInitializationOptions(m_initializationOptions);
if (m_project) { if (m_project)
params.setRootUri(DocumentUri::fromFilePath(m_project->projectDirectory())); params.setRootUri(DocumentUri::fromFilePath(m_project->projectDirectory()));
params.setWorkSpaceFolders(Utils::transform(SessionManager::projects(), [](Project *pro) {
return WorkSpaceFolder(DocumentUri::fromFilePath(pro->projectDirectory()), const QList<WorkSpaceFolder> workspaces
pro->displayName()); = 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); InitializeRequest initRequest(params);
initRequest.setResponseCallback([this](const InitializeRequest::Response &initResponse){ initRequest.setResponseCallback([this](const InitializeRequest::Response &initResponse){
initializeCallback(initResponse); initializeCallback(initResponse);