diff options
author | David Schulz <david.schulz@qt.io> | 2019-04-05 10:05:25 +0200 |
---|---|---|
committer | David Schulz <david.schulz@qt.io> | 2019-04-30 05:19:31 +0000 |
commit | 69e880c050bd5afa7930600cab30370c202c11fd (patch) | |
tree | 75143aac9a0a964897f58009314016b649cb02b3 /src/plugins/languageclient/languageclientmanager.cpp | |
parent | ac91f6f4528c3f2ac34d3caeb0d65abb8167db3b (diff) |
LanguageClient: add current document locator filter
Change-Id: I20442a254e4e016088b2da845d87af6e9f836731
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Diffstat (limited to 'src/plugins/languageclient/languageclientmanager.cpp')
-rw-r--r-- | src/plugins/languageclient/languageclientmanager.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/plugins/languageclient/languageclientmanager.cpp b/src/plugins/languageclient/languageclientmanager.cpp index 75fae98545b..789e5758f5c 100644 --- a/src/plugins/languageclient/languageclientmanager.cpp +++ b/src/plugins/languageclient/languageclientmanager.cpp @@ -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); |