mirror of
https://github.com/l0ng-ai/openidea.git
synced 2026-11-08 08:52:12 +00:00
* fix(lsp): drop language servers whose workspace root was deleted (#1726) A per-root server (e.g. a vtsls rooted at a nested tsconfig dir) is spawned with its root as the process working directory. On Windows, once that directory is deleted every spawn fails with os error 267 and the crash backoff keeps respawning it, leaving a permanently 'Crashed' entry in the Language Servers panel and a process tree that can never work again. - ensure_started: skip starting a server whose root no longer exists. - on_instance_closed: after a crash, if the root is gone, drop the server (LanguageServerRemoved) instead of retrying forever. - restart: return a clear error when the panel restart is pressed for a server whose root vanished. - open_for_file_op: skip sampled candidates already deleted on disk. Fixes #1726 * fix(lsp): drop dead-root servers claimed by ensure_started A crash with the root still alive enters the restart backoff; if the root is deleted during that sleep (or an open-file request arrives later), ensure_started used to return early and leave a permanently "Crashed" entry: no instance, no watcher, nothing re-arming it. Claim the Idle server first (begin_start never claims a live one), then drop it when its root is gone, mirroring on_instance_closed. Adds root_deleted_during_crash_backoff_drops_the_server, which fails on the previous code (server never removed) and passes with this fix.