aboutsummaryrefslogtreecommitdiff
path: root/helix-lsp/src
Commit message (Collapse)AuthorAge
* 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
* Passing extra formatting options to LSPs (#2635)farwyler2022-06-05
| | | | | | | | | | | | | * allows passing extra formatting options to LSPs - adds optional field 'format' to [[language]] sections in 'languages.toml' - passes specified options the LSPs via FormattingOptions * cleaner conversion of formatting properties * move formatting options inside lsp::Client * cleans up formatting properties merge
* fix: lsp: Sort edits by start range, Omnisharp sends them in reverseBlaž Hrastnik2022-06-02
|
* 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
* Don't panic on LSP parsing errorsBlaž Hrastnik2022-05-11
| | | | | | This made sense initially when the implementation was still new (so we got user reports more frequently), but a parsing error now generally signifies a language server isn't properly implementing the spec.
* configurable lsp request timeout (#2405)EmmChriss2022-05-11
|
* fix typos (#2304)chunghha2022-04-27
|
* register publish_diagnostics client capability (#2241)matt rice2022-04-25
|
* chore(lsp): check rename capabilities before send rename action (#2203)ttys32022-04-23
|
* prevent panic when receiving malformed LSP PublishDiagnostic (#2160)Michael Davis2022-04-18
| | | | | | | | | | | Instead of panicing we can discard the malformed diagnostic. This `.parse()` fails commonly when a non-conformant language server gives a diagnostic with a location that breaks the spec: { "character": 0, "line": -1 } can currently be returned by ElixirLS and the python LS. Other messages in this block are discarded but this one feels special enough to log.
* Send active diagnostics to LSP when requesting code actions. (#2005)Robin Jadoul2022-04-17
| | | | | | | | | | | * Send active diagnostics to LSP when requesting code actions. This allows for e.g. clangd to properly send the quickfix code actions corresponding to those diagnostics as options. The LSP spec v3.16.0 introduced an opaque `data` member that would allow the server to persist arbitrary data between the diagnostic and the code actions request, but this is not supported yet by this commit. * Reuse existing range_to_lsp_range functionality
* Fixes #1991 LSP Auto-import (#2088)Andrey Tkachenko2022-04-16
|
* lsp: Implement support for workspace_folders (currently just one)Blaž Hrastnik2022-04-01
| | | | Refs #1898
* fix: Some LSPs still want rootPath, so provide itBlaž Hrastnik2022-03-31
| | | | Refs #1898
* Implement LSP `workspace/configuration` and ↵Triton1712022-02-28
| | | | | | | | | | | | | `workspace/didChangeConfiguration` (#1684) * Implement LSP `workspace/configuration` request * Implement LSP `workspace/didChangeConfiguration` notification. * Simplify retrieval of LSP configuration * Implement suggestions from PR discussion Co-authored-by: Triton171 <triton0171@gmail.com>
* Use which to resolve lsp/dap binariesBlaž Hrastnik2022-02-24
| | | | This resolves the following issue: https://github.com/helix-editor/helix/discussions/962#discussioncomment-1580046
* Replace tendril with smartstringBlaž Hrastnik2022-02-10
| | | | Slightly smaller API surface, less dependencies.
* Optimize lsp_pos_to_pos (#1423)Kirawi2022-01-03
| | | lines().count() is slow compared to len_lines()
* Detect workspace root using language markers (#1370)Alexis Mousset2021-12-31
| | | | | | | | | | | | | | | | * Detect workspace root using language markers * Avoid allocating root_markers * Update helix-core/src/lib.rs Co-authored-by: Blaž Hrastnik <blaz@mxxn.io> * Update helix-core/src/lib.rs Co-authored-by: Kirawi <67773714+kirawi@users.noreply.github.com> Co-authored-by: Blaž Hrastnik <blaz@mxxn.io> Co-authored-by: Kirawi <67773714+kirawi@users.noreply.github.com>
* Resolve completion item (#1315)Gabriel Berto2021-12-25
| | | Co-authored-by: Gabriel Berto <gabriel.berto@pottencial.com.br>
* LSP code action commands (#1304)Matouš Dzivjak2021-12-21
| | | | | | | | | * feat(lsp): codeAction commands * Don't block on command call * Fix lifetime of command execution * Fix lint issues
* lsp: Don't panic if init failsBlaž Hrastnik2021-12-03
| | | | | | We correctly filter out the language server inside Document to ignore it if the capabilities are missing, so this way it'll simply ignore the errored out LSP rather than panicking.
* Add LSP rename_symbol (space-r) (#1011)CossonLeo2021-11-08
| | | improve apply_workspace_edit
* Bump lsp-types to 0.91.0 (#932)Ivan Tham2021-10-29
|
* Allow `language.config` (in languages.toml) to be passed in as a toml object ↵Midnight Exigent2021-10-08
| | | | | | | | | | | | | (#807) * allow language.config (in languages.toml) to be passed in as a toml object * Change config field for languages from json string to toml object * remove indents on languages.toml config * fix: remove patch version from serde_json import in helix-core * Use same tree-sitter-zig as upstream/master
* log errors produced when trying to initialize the LSP (#746)Kirawi2021-09-15
|
* fix: Fix regression where formatting would fail on null responseBlaž Hrastnik2021-09-09
|
* lsp: This doesn't need to be a mutable referenceBlaž Hrastnik2021-09-06
|
* lsp: doc.language_server() is None until initialize completesBlaž 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: SyncKind::Full: we need to send the whole document on each changeBlaž Hrastnik2021-09-06
|
* lsp: Outdated commentBlaž Hrastnik2021-09-06
|
* ls: Refactor textDocument/didSave in a similar veinBlaž Hrastnik2021-09-06
|
* lsp: refactor format so we stop cloning the language_serverBlaž Hrastnik2021-09-06
|
* wipBlaž Hrastnik2021-09-06
|
* lsp: Delay requests & notifications until initialization is completeBlaž Hrastnik2021-09-06
|
* lsp: Refactor capabilities as an async OnceCellBlaž Hrastnik2021-09-06
| | | | First step in making LSP init asynchronous
* fix: lsp: Terminate transport on EOFBlaž Hrastnik2021-09-06
| | | | If stdout/stderr is closed, read_line will return 0 indicating EOF.
* fix: lsp: Don't consume \n\n as a single newlineBlaž Hrastnik2021-09-06
|
* lsp: Improve line ending handling when generating TextEditBlaž Hrastnik2021-09-06
|
* 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
* feat: code actions - document edits (#478)Grzegorz Baranski2021-07-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * wip: Code actions * fix(term): use current macro instead Context::context * feat(lsp): set code_action capabilities * feat(term): set SPC-a to code_action * feat(term): wip on applying code actions * deps: `cargo update` * feat(term): applying code actions edits * fix(term): cleanup of apply_edit * fix(term): applying edits as a whole thing instead one by one * refactor(term): move apply_edits below * fix(term): improve unimplemented messages for further investigation * fix(term): change code action command comment Co-authored-by: Ivan Tham <pickfire@riseup.net> * fix(term): add matching `}` * fix(term): cleanup, todo!() on workspace edit * fix(term): remove unrelated workspace_symbol_picker * fix(term): apply cargo-clippy suggestions * fix(term): replace todo!'s with editor.set_error Co-authored-by: Blaž Hrastnik <blaz@mxxn.io> Co-authored-by: Ivan Tham <pickfire@riseup.net>
* Added option to provide a custom config file to the lsp. (#460)Cor Peters2021-07-18
| | | | | | | | | | | | | | | | | * Added option to provide a custom config file to the lsp. * Simplified lsp loading routine with anyhow * Moved config to language.toml * Fixed test case * Cargo fmt * Revert now-useless changes * Renamed custom_config to config Co-authored-by: Cor <prive@corpeters.nl>
* Make formatting happen asynchronously.Joe Neeman2021-06-30
|
* Address nightly clippy warningsBlaž Hrastnik2021-06-27
|
* Merge pull request #224 from helix-editor/line_ending_detectionBlaž Hrastnik2021-06-22
|\ | | | | Line ending detection
| * Work on moving code over to LineEnding instead of assuming '\n'.Nathan Vegdahl2021-06-20
| | | | | | | | Also some general cleanup and some minor fixes along the way.