From b19a564c9fe002babf678f8018cb936f4080f38c Mon Sep 17 00:00:00 2001 From: Michael Panchenko Date: Sun, 6 Apr 2025 13:32:25 +0200 Subject: [PATCH] LS: stop no longer raises if LS is not running --- src/multilspy/language_server.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/multilspy/language_server.py b/src/multilspy/language_server.py index 61d2072a..6f225403 100644 --- a/src/multilspy/language_server.py +++ b/src/multilspy/language_server.py @@ -1847,11 +1847,14 @@ class SyncLanguageServer: def stop(self) -> None: """ Shuts down the language server process and cleans up resources. - Must be called after start(). + + If the language server is not running, this method will log a warning and do nothing. """ - if not self.loop or not self.loop_thread: - raise MultilspyException("Language Server not started") - + if not self.is_running(): + self.language_server.logger.log("Language server not running, skipping shutdown.", logging.INFO) + return + + assert self.loop asyncio.run_coroutine_threadsafe(self._server_context.__aexit__(None, None, None), loop=self.loop).result() self.loop.call_soon_threadsafe(self.loop.stop) self.loop_thread.join()