aboutsummaryrefslogtreecommitdiff
path: root/helix-lsp/src/transport.rs
Commit message (Collapse)AuthorAge
* Handle language server termination (#4797)Michael Davis2022-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 Davis2022-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 Davis2022-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 referenceBlaž Hrastnik2021-09-06
|
* lsp: Don't send notifications until initialize completesBlaž Hrastnik2021-09-06
| | | | Then send open events for all documents with the LSP attached.
* lsp: Delay requests & notifications until initialization is completeBlaž Hrastnik2021-09-06
|
* fix: lsp: Terminate transport on EOFBlaž Hrastnik2021-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-RPCBlaž Hrastnik2021-08-29
|
* lsp: slightly refactor header parsing, add more loggingBlaž Hrastnik2021-08-29
|
* don't panic on defunct lsp process (#583)Timothy DeHerrera2021-08-23
|
* lsp: Refactor duplex to avoid issues with select! + read_exactBlaž Hrastnik2021-08-07
| | | | | | read_exact isn't cancellation safe. Fixes #504
* Fix unwraps in lsp::transportwojciechkepka2021-06-19
|
* Add unique id to each lsp client/server pairwojciechkepka2021-06-18
|
* Derive debug without featureIvan Tham2021-06-10
| | | | Note that this also removed those `finish_non_exhaustive()`.
* Implement Debug for data structure as a featurenotoria2021-06-10
|
* helix-lsp cleanupEgor Karavaev2021-06-08
|
* clippy lintBlaž Hrastnik2021-05-06
|
* Tokio migration.Blaž Hrastnik2021-05-06
|
* clippy lintBlaž Hrastnik2021-03-31
|
* minor: Simplify some code.Blaž Hrastnik2021-02-24
|
* lsp: Handle responses being returned after request timed out.Blaž Hrastnik2021-02-22
|
* Increase the log level in LSP and log server errors.Blaž Hrastnik2021-02-16
|
* Address clippy lints.Blaž Hrastnik2021-01-08
|
* lsp: Fix pos_to_lsp_pos calculation.Blaž Hrastnik2020-12-25
|
* lsp: generate_transaction_from_text_editsBlaž Hrastnik2020-12-23
|
* wip: Move to new rendering structure.Blaž Hrastnik2020-12-13
|
* Text change generation, RPC call handling.Blaž Hrastnik2020-12-03
|
* Configure logging (-vv for debug level logs)Blaž Hrastnik2020-12-03
|
* clippy lintBlaž Hrastnik2020-12-03
|
* Improve error typing.Blaž Hrastnik2020-12-03
|
* Reroute LSP notification events into the main app event loop.Blaž Hrastnik2020-12-03
|
* wip: Fetching diagnostics, parsing notifications.Blaž Hrastnik2020-12-03