diff options
author | Andrii Batyiev <[email protected]> | 2024-11-08 09:26:44 +0200 |
---|---|---|
committer | Andrii Batyiev <[email protected]> | 2024-11-08 07:46:11 +0000 |
commit | ee0779ac80f02bebb50e27ee660c5b02a426a30d (patch) | |
tree | bb7701c33b17337908e732288ed28d8125751538 /src/plugins/languageclient/lualanguageclient | |
parent | 73b0875498b662128c18f794fa9b7e477b0571de (diff) |
LuaLS: filter out stale clients
Clients on the list could be already in shutdown phase,
so filter them out.
Change-Id: I30768f63a89418279af02076550f408749ad04a9
Reviewed-by: Marcus Tillmanns <[email protected]>
Diffstat (limited to 'src/plugins/languageclient/lualanguageclient')
-rw-r--r-- | src/plugins/languageclient/lualanguageclient/lualanguageclient.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/plugins/languageclient/lualanguageclient/lualanguageclient.cpp b/src/plugins/languageclient/lualanguageclient/lualanguageclient.cpp index 54b32cc574f..a4c56154f1d 100644 --- a/src/plugins/languageclient/lualanguageclient/lualanguageclient.cpp +++ b/src/plugins/languageclient/lualanguageclient/lualanguageclient.cpp @@ -425,15 +425,18 @@ public: QList<Client *> clientsForDocument(Core::IDocument *document) { + QList<Client *> result; if (m_startBehavior == BaseSettings::RequiresProject) { Project *project = ProjectManager::projectForFile(document->filePath()); const auto clients = LanguageClientManager::clientsForSettingId(m_clientSettingsId); - return Utils::filtered(clients, [project](Client *c) { + result = Utils::filtered(clients, [project](Client *c) { return c && c->project() == project; }); } + else + result = LanguageClientManager::clientsForSettingId(m_clientSettingsId); - return LanguageClientManager::clientsForSettingId(m_clientSettingsId); + return Utils::filtered(result, [](Client *c) { return c->reachable(); }); } void sendMessageForDocument(Core::IDocument *document, const sol::table &message) |