LanguageClient: add workspace configuration project settings

Change-Id: I9876773550f3dc566dec05b78f818ca49c930da1
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
David Schulz
2023-08-22 15:28:19 +02:00
parent 2adebd0eb4
commit 2b72ba66ce
5 changed files with 116 additions and 1 deletions

View File

@@ -116,6 +116,13 @@ void LanguageClient::LanguageClientManager::addClient(Client *client)
for (QList<Client *> &clients : managerInstance->m_clientsForSetting)
QTC_CHECK(clients.removeAll(client) == 0);
});
ProjectExplorer::Project *project = client->project();
if (!project)
project = ProjectExplorer::ProjectManager::startupProject();
if (project)
client->updateConfiguration(ProjectSettings(project).workspaceConfiguration());
emit managerInstance->clientAdded(client);
}
@@ -390,6 +397,16 @@ const BaseSettings *LanguageClientManager::settingForClient(Client *client)
return nullptr;
}
void LanguageClientManager::updateWorkspaceConfiguration(const ProjectExplorer::Project *project,
const QJsonValue &json)
{
for (Client *client : managerInstance->m_clients) {
ProjectExplorer::Project *clientProject = client->project();
if (!clientProject || clientProject == project)
client->updateConfiguration(json);
}
}
Client *LanguageClientManager::clientForDocument(TextEditor::TextDocument *document)
{
QTC_ASSERT(managerInstance, return nullptr);