Commit message (Collapse) | Author | Age | |
---|---|---|---|
* | 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 |