forked from qt-creator/qt-creator
LanguageClient: add current document locator filter
Change-Id: I20442a254e4e016088b2da845d87af6e9f836731 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -110,6 +110,11 @@ void LanguageClientManager::startClient(Client *client)
|
||||
client->initialize();
|
||||
else
|
||||
managerInstance->clientFinished(client);
|
||||
|
||||
connect(client,
|
||||
&Client::initialized,
|
||||
&managerInstance->m_currentDocumentLocatorFilter,
|
||||
&DocumentLocatorFilter::updateCurrentClient);
|
||||
}
|
||||
|
||||
void LanguageClientManager::startClient(BaseSettings *setting, ProjectExplorer::Project *project)
|
||||
@@ -275,6 +280,20 @@ const BaseSettings *LanguageClientManager::settingForClient(Client *client)
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
Client *LanguageClientManager::clientForEditor(Core::IEditor *iEditor)
|
||||
{
|
||||
QTC_ASSERT(managerInstance, return nullptr);
|
||||
|
||||
auto editor = qobject_cast<TextEditor::BaseTextEditor *>(iEditor);
|
||||
if (!editor)
|
||||
return nullptr;
|
||||
|
||||
return Utils::findOrDefault(managerInstance->reachableClients(),
|
||||
[doc = editor->textDocument()](Client *client) {
|
||||
return client->documentOpen(doc);
|
||||
});
|
||||
}
|
||||
|
||||
QVector<Client *> LanguageClientManager::reachableClients()
|
||||
{
|
||||
return Utils::filtered(m_clients, &Client::reachable);
|
||||
|
||||
Reference in New Issue
Block a user