aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa Closes https://linear.app/zed-industries/issue/Z-665/add-a-mechanism-for-detecting-and-fixing-broken-language-server Fixes https://github.com/zed-industries/community/issues/1671 Fixes https://github.com/zed-industries/community/issues/1691 Fixes https://github.com/zed-industries/community/issues/1524 Fixes https://github.com/zed-industries/community/issues/1352 Fixes https://github.com/zed-industries/community/issues/1109 Fixes https://github.com/zed-industries/community/issues/996 Fixes https://github.com/zed-industries/community/issues/782 Things this PR does: - Updates our elixir-ls fetching to use new release name format - Detect when a server fails to launch - If the adapter claims to be reinstallable, get a test binary - If the test binary fails to launch or returns a failure error code - Clear container dir and reinstall - Detect/fix broken Node Things it does not do: - Restart server on failure, I have most of the stuff for this already so it should be a fast follow up - Detect/fix broken Copilot Node and Copilot shouldn't be too bad, they are handled via different mechanisms. Originally I put effort into detecting failure of the server during normal operation post launch, but that's not really needed. If the server gets borked while running then we'll catch that on next startup. Realizing that allowed for pruning a bunch of the work I did and made the overall system a lot nicer Copilot is nominally a language server but does not have an adapter and does not run through the same mechanism in the project. We're going to have an issue with multiple language server instances in different projects once we add a "Reinstall Language Server" action, which is why it's not in this PR. Each project has its own list of server instances and is currently vaguely responsible for managing the installations which means they can step on each others toes. This should change, probably Release Notes: - Added a mechanism to detect and reinstall broken language servers ([#1691](https://github.com/zed-industries/community/issues/1691)) ([#1524](https://github.com/zed-industries/community/issues/1524)) ([#1352](https://github.com/zed-industries/community/issues/1352)) ([#1109](https://github.com/zed-industries/community/issues/1109)) ([#996](https://github.com/zed-industries/community/issues/996)) ([#782](https://github.com/zed-industries/community/issues/782)).
23 files changedLine totals unavailable