aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/languageclient/lualanguageclient
diff options
context:
space:
mode:
authorAndrii Batyiev <[email protected]>2024-11-08 09:26:44 +0200
committerAndrii Batyiev <[email protected]>2024-11-08 07:46:11 +0000
commitee0779ac80f02bebb50e27ee660c5b02a426a30d (patch)
treebb7701c33b17337908e732288ed28d8125751538 /src/plugins/languageclient/lualanguageclient
parent73b0875498b662128c18f794fa9b7e477b0571de (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.cpp7
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)