Commit message (Collapse) | Author | Age | |
---|---|---|---|
* | Drain pending requests on language server termination (#4852) | Michael Davis | 2022-11-24 |
| | | | | | | | | | This prevents a freeze while shutting down when using `efm-langserver`. `efm-langserver` exits immediately after seeing a shutdown request, without responding to the request. We block awaiting the reply to the shutdown request which will never come, so we time out. This change responds to any pending requests with `Err` saying that the stream has been closed. | ||
* | Handle language server termination (#4797) | Michael Davis | 2022-11-19 |
| | | | | | | | | | | | | | This change handles a language server exiting. This was a UX sore-spot: if a language server crashed, Helix did not recognize the exit and continued to send requests to it. All requests would timeout since they would not receive responses. This would also hold-up Helix closing itself down since it would try to gracefully shutdown the server which is implemented in the LSP spec as a request. We could attempt to automatically restart the language server on crash. I left this for future work since that change will need to be slightly complicated: it will need to cover the case of a language server repeatedly crashing. | ||
* | embed jsonrpc types from jsonrpc-core crate (#2801) | Michael Davis | 2022-06-18 |
| | | | | | | | | | | | | | | We should not depend on jsonrpc-core anymore: * The project just announced it's no longer actively maintained[^1], preferring their new implementation in `jsonrpsee`. * The types are too strict: we would benefit from removing some `#[serde(deny_unknown_fields)]` annotations to allow language servers that disrespect the spec[^2]. * We don't use much of the project. Just the types out of core. These are easy to embed directly into the `helix-lsp` crate. [^1]: https://github.com/paritytech/jsonrpc/pull/674 [^2]: https://github.com/helix-editor/helix/issues/2786 | ||
* | prevent panic when handling an LSP response with no request (#2475) | Michael Davis | 2022-05-17 |
| | | | | | | | | | | | A language server may push a response which doesn't belong to any request. With this change, we discard the response rather than crashing. In the case of #2474, the language server sends an error message with a null request ID which should not ever exist in the `pending_requests` HashMap. closes #2474 | ||
* | lsp: This doesn't need to be a mutable reference | Blaž Hrastnik | 2021-09-06 |
| | |||
* | lsp: Don't send notifications until initialize completes | Blaž Hrastnik | 2021-09-06 |
| | | | | Then send open events for all documents with the LSP attached. | ||
* | lsp: Delay requests & notifications until initialization is complete | Blaž Hrastnik | 2021-09-06 |
| | |||
* | fix: lsp: Terminate transport on EOF | Blaž Hrastnik | 2021-09-06 |
| | | | | If stdout/stderr is closed, read_line will return 0 indicating EOF. | ||
* | fix: Work around crashes on LSPs that don't just emit JSON-RPC | Blaž Hrastnik | 2021-08-29 |
| | |||
* | lsp: slightly refactor header parsing, add more logging | Blaž Hrastnik | 2021-08-29 |
| | |||
* | don't panic on defunct lsp process (#583) | Timothy DeHerrera | 2021-08-23 |
| | |||
* | lsp: Refactor duplex to avoid issues with select! + read_exact | Blaž Hrastnik | 2021-08-07 |
| | | | | | | read_exact isn't cancellation safe. Fixes #504 | ||
* | Fix unwraps in lsp::transport | wojciechkepka | 2021-06-19 |
| | |||
* | Add unique id to each lsp client/server pair | wojciechkepka | 2021-06-18 |
| | |||
* | Derive debug without feature | Ivan Tham | 2021-06-10 |
| | | | | Note that this also removed those `finish_non_exhaustive()`. | ||
* | Implement Debug for data structure as a feature | notoria | 2021-06-10 |
| | |||
* | helix-lsp cleanup | Egor Karavaev | 2021-06-08 |
| | |||
* | clippy lint | Blaž Hrastnik | 2021-05-06 |
| | |||
* | Tokio migration. | Blaž Hrastnik | 2021-05-06 |
| | |||
* | clippy lint | Blaž Hrastnik | 2021-03-31 |
| | |||
* | minor: Simplify some code. | Blaž Hrastnik | 2021-02-24 |
| | |||
* | lsp: Handle responses being returned after request timed out. | Blaž Hrastnik | 2021-02-22 |
| | |||
* | Increase the log level in LSP and log server errors. | Blaž Hrastnik | 2021-02-16 |
| | |||
* | Address clippy lints. | Blaž Hrastnik | 2021-01-08 |
| | |||
* | lsp: Fix pos_to_lsp_pos calculation. | Blaž Hrastnik | 2020-12-25 |
| | |||
* | lsp: generate_transaction_from_text_edits | Blaž Hrastnik | 2020-12-23 |
| | |||
* | wip: Move to new rendering structure. | Blaž Hrastnik | 2020-12-13 |
| | |||
* | Text change generation, RPC call handling. | Blaž Hrastnik | 2020-12-03 |
| | |||
* | Configure logging (-vv for debug level logs) | Blaž Hrastnik | 2020-12-03 |
| | |||
* | clippy lint | Blaž Hrastnik | 2020-12-03 |
| | |||
* | Improve error typing. | Blaž Hrastnik | 2020-12-03 |
| | |||
* | Reroute LSP notification events into the main app event loop. | Blaž Hrastnik | 2020-12-03 |
| | |||
* | wip: Fetching diagnostics, parsing notifications. | Blaž Hrastnik | 2020-12-03 |