aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/languageclient/lualanguageclient
diff options
context:
space:
mode:
authorAndrii Batyiev <[email protected]>2024-11-08 09:26:44 +0200
committerMarcus Tillmanns <[email protected]>2024-11-13 08:05:26 +0000
commitc24377259e2e5476401cabc07a02ceecaa6010a6 (patch)
tree44d247ef6b34181928e0683ef180f42f99e6510c /src/plugins/languageclient/lualanguageclient
parent48a4ca754b7e107be7c8ea8e94d8ad9671764f68 (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]> (cherry picked from commit ee0779ac80f02bebb50e27ee660c5b02a426a30d) Reviewed-by: hjk <[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 fe54ac72688..27e684b6fc9 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)