sigmaSd
4960c41f18
feat(lsp): add support for lsp Diagnostic{}.data ( #4935 )
2 years ago
Michael Davis
e6dad960cf
Drain pending requests on language server termination ( #4852 )
...
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.
2 years ago
dependabot[bot]
642a961c03
build(deps): bump tokio from 1.21.2 to 1.22.0 ( #4846 )
...
Bumps [tokio](https://github.com/tokio-rs/tokio ) from 1.21.2 to 1.22.0.
- [Release notes](https://github.com/tokio-rs/tokio/releases )
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.21.2...tokio-1.22.0 )
---
updated-dependencies:
- dependency-name: tokio
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years ago
Michael Davis
9059c65a53
lsp: Check server provider capabilities ( #3554 )
...
Language Servers may signal that they do not support a method in
the initialization result (server capabilities). We can check these
when making LSP requests and hint in the status line when a method
is not supported by the server. This can also prevent crashes in
servers which assume that clients do not send requests for methods
which are disabled in the server capabilities.
There is an existing pattern the LSP client module where a method
returns `Option<impl Future<Output = Result<_>>>` with `None` signaling
no support in the server. This change extends this pattern to the rest
of the client functions. And we log an error to the statusline for
manually triggered LSP calls which return `None`.
2 years ago
Michael Davis
8be2d1dcbf
Handle language server termination ( #4797 )
...
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.
2 years ago
Michael Davis
89efb4f711
lsp: Resolve completion item asynchronously on idle-timeout ( #4781 )
...
d7d0d5ffb7
resolves completion items on
the idle-timeout event. The `Completion::resolve_completion_item`
function blocks on the LSP request though, which blocks the compositor
and in turn blocks the event loop. So until the language server returns
the resolved completion item, Helix is unable to respond to keypresses
or other LSP messages.
This is typically ok since the resolution request is fast but for some
language servers this can be problematic, and ideally we shouldn't be
blocking like this anyways.
When receiving a `completionItem/resolve` request, the Volar server
sends a `workspace/configuration` request to Helix and blocks itself
on the response, leading to a deadlock. Eventually the resolve request
times out within Helix but Helix is locked up and unresponsive in that
window.
This change resolves the completion item without blocking the
compositor.
2 years ago
Matthias Deiml
dee5b2a983
Add LSP workspace command picker ( #3140 )
...
* Add workspace command picker
* Make command typable
* Add optional argument to lsp-workspace-command
2 years ago
Blaž Hrastnik
13126823f8
lsp: Support insertReplace
...
Fixes #4473
2 years ago
Blaž Hrastnik
c2c1280f02
Resolve a bunch of upcoming clippy lints
2 years ago
dependabot[bot]
414214f883
build(deps): bump tokio-stream from 0.1.10 to 0.1.11 ( #4341 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years ago
ath3
7c9809eeb2
Find workspace from document path ( #3553 )
2 years ago
Alexis Kalabura
b9ff5d0e0a
[lsp-restart]: call the force_shutdown method for the old_client ( #3972 )
...
* [lsp-restart]: call the shutdown_and_exit method for the old_client
* change shutdown_and_exit to force_shutdown
* remove extra log
2 years ago
Kirawi
8c2cc43017
diff full-doc LSP edits ( #4041 )
...
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
2 years ago
dependabot[bot]
d2bb7f5a09
build(deps): bump tokio-stream from 0.1.9 to 0.1.10 ( #3988 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years ago
Riccardo Binetti
888f4fef6f
Split helix_core::find_root and helix_loader::find_local_config_dirs ( #3929 )
...
* Split helix_core::find_root and helix_loader::find_local_config_dirs
The documentation of find_root described the following priority for
detecting a project root:
- Top-most folder containing a root marker in current git repository
- Git repository root if no marker detected
- Top-most folder containing a root marker if not git repository detected
- Current working directory as fallback
The commit contained in https://github.com/helix-editor/helix/pull/1249
extracted and changed the implementation of find_root in find_root_impl,
actually reversing its result order (since that is the order that made
sense for the local configuration merge, from innermost to outermost
ancestors).
Since the two uses of find_root_impl have different requirements (and
it's not a matter of reversing the order of results since, e.g., the top
repository dir should be used by find_root only if there's not marker in
other dirs), this PR splits the two implementations in two different
specialized functions.
In doing so, find_root_impl is removed and the implementation is moved
back in find_root, moving it closer to the documented behaviour thus
making it easier to verify it's actually correct
* helix-core: remove Option from find_root return type
It always returns some result, so Option is not needed
2 years ago
Filipe Azevedo
385ccdfc9c
add :lsp-restart command ( #3435 )
2 years ago
Blaž Hrastnik
1df32c917c
diagnostics: Use Vec<Tag> instead of Option<Vec<Tag>>
2 years ago
Luke Cycon
64b0745413
Track source and tags in diagnostics ( #3898 )
2 years ago
Blaž Hrastnik
a123fb6057
Remove LspNotDefined, instead return an Option<>
2 years ago
dependabot[bot]
f7c216d497
build(deps): bump tokio from 1.20.1 to 1.21.0 ( #3716 )
...
Bumps [tokio](https://github.com/tokio-rs/tokio ) from 1.20.1 to 1.21.0.
- [Release notes](https://github.com/tokio-rs/tokio/releases )
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.20.1...tokio-1.21.0 )
---
updated-dependencies:
- dependency-name: tokio
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years ago
Blaž Hrastnik
1caba2d3e8
lsp: Don't log "LSP not defined" errors in the logfile
2 years ago
Michael Davis
672ea98b05
Advertise WorkspaceSymbolClientCapabilities support ( #3361 )
2 years ago
PiergiorgioZagaria
219d2c2515
Change default formatter for any language ( #2942 )
...
* Change default formatter for any language
* Fix clippy error
* Close stdin for Stdio formatters
* Better indentation and pattern matching
* Return Result<Option<...>> for fn format instead of Option
* Remove unwrap for stdin
* Handle FormatterErrors instead of Result<Option<...>>
* Use Transaction instead of LspFormatting
* Use Transaction directly in Document::format
* Perform stdin type formatting asynchronously
* Rename formatter.type values to kebab-case
* Debug format for displaying io::ErrorKind (msrv fix)
* Solve conflict?
* Use only stdio type formatters
* Remove FormatterType enum
* Remove old comment
* Check if the formatter exited correctly
* Add formatter configuration to the book
* Avoid allocations when writing to stdin and formatting errors
* Remove unused import
Co-authored-by: Gokul Soumya <gokulps15@gmail.com>
2 years ago
Erasin
42115d02bc
Suport diagnostic code ( #3096 )
...
* add code for diagnostic.
This PR provides a solution to resolve #2994 . missing Code Actions for lsp
* remote unused import
2 years ago
Gokul Soumya
791bf7e50a
Add lsp signature help ( #1755 )
...
* Add lsp signature help
* Do not move signature help popup on multiple triggers
* Highlight current parameter in signature help
* Auto close signature help
* Position signature help above to not block completion
* Update signature help on backspace/insert mode delete
* Add lsp.auto-signature-help config option
* Add serde default annotation for LspConfig
* Show LSP inactive message only if signature help is invoked manually
* Do not assume valid signature help response from LSP
Malformed LSP responses are common, and these should not crash the
editor.
* Check signature help capability before sending request
* Reuse Open enum for PositionBias in popup
* Close signature popup and exit insert mode on escape
* Add config to control signature help docs display
* Use new Margin api in signature help
* Invoke signature help on changing to insert mode
2 years ago
Gokul Soumya
21b66ba068
lsp: Add workspace/applyEdit to client capabilites ( #3012 )
...
The functionality already existed, but the capability wasn't being
reported correctly to the server:
230ba264bf/helix-term/src/application.rs (L716-L728)
2 years ago
lazytanuki
096abdd19b
feat: highlight / select symbol under cursor using LSP textDocument/documentHighlight ( #2738 )
...
* feat: highlight symbol under cursor using LSP textDocument/documentHighlight
* fix: please clippy
* fix: shorter description and code style
2 years ago
Blaž Hrastnik
425de09d21
Fix tests again
2 years ago
Blaž Hrastnik
24f03097e3
Remove some more unwraps
2 years ago
Michael Davis
45ce1ebdb6
embed jsonrpc types from jsonrpc-core crate ( #2801 )
...
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
2 years ago
dependabot[bot]
9f8df05d96
build(deps): bump tokio-stream from 0.1.8 to 0.1.9 ( #2690 )
...
Bumps [tokio-stream](https://github.com/tokio-rs/tokio ) from 0.1.8 to 0.1.9.
- [Release notes](https://github.com/tokio-rs/tokio/releases )
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-stream-0.1.8...tokio-stream-0.1.9 )
---
updated-dependencies:
- dependency-name: tokio-stream
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years ago
dependabot[bot]
5c7d9d6027
build(deps): bump tokio from 1.18.2 to 1.19.2 ( #2691 )
...
Bumps [tokio](https://github.com/tokio-rs/tokio ) from 1.18.2 to 1.19.2.
- [Release notes](https://github.com/tokio-rs/tokio/releases )
- [Commits](https://github.com/tokio-rs/tokio/commits )
---
updated-dependencies:
- dependency-name: tokio
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years ago
farwyler
f92a25a856
Passing extra formatting options to LSPs ( #2635 )
...
* 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
2 years ago
Blaž Hrastnik
3d91c99c3e
fix: lsp: Sort edits by start range, Omnisharp sends them in reverse
2 years ago
Michael Davis
50dd11985c
prevent panic when handling an LSP response with no request ( #2475 )
...
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
3 years ago
Blaž Hrastnik
7ae6cad52e
Don't panic on LSP parsing errors
...
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.
3 years ago
EmmChriss
807cdc60bf
configurable lsp request timeout ( #2405 )
3 years ago
dependabot[bot]
fc35791af9
build(deps): bump tokio from 1.17.0 to 1.18.1 ( #2373 )
...
Bumps [tokio](https://github.com/tokio-rs/tokio ) from 1.17.0 to 1.18.1.
- [Release notes](https://github.com/tokio-rs/tokio/releases )
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.17.0...tokio-1.18.1 )
---
updated-dependencies:
- dependency-name: tokio
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
3 years ago
chunghha
3a398eec56
fix typos ( #2304 )
3 years ago
matt rice
db47761154
register publish_diagnostics client capability ( #2241 )
3 years ago
ttys3
19d042dde6
chore(lsp): check rename capabilities before send rename action ( #2203 )
3 years ago
Michael Davis
449d1dfdfb
prevent panic when receiving malformed LSP PublishDiagnostic ( #2160 )
...
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.
3 years ago
Robin Jadoul
33b7483db5
Send active diagnostics to LSP when requesting code actions. ( #2005 )
...
* 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
3 years ago
Andrey Tkachenko
dc8fef5dd3
Fixes #1991 LSP Auto-import ( #2088 )
3 years ago
dependabot[bot]
f3dcb4034f
build(deps): bump lsp-types from 0.92.1 to 0.93.0 ( #2084 )
...
Bumps [lsp-types](https://github.com/gluon-lang/lsp-types ) from 0.92.1 to 0.93.0.
- [Release notes](https://github.com/gluon-lang/lsp-types/releases )
- [Changelog](https://github.com/gluon-lang/lsp-types/blob/master/CHANGELOG.md )
- [Commits](https://github.com/gluon-lang/lsp-types/compare/v0.92.1...v0.93.0 )
---
updated-dependencies:
- dependency-name: lsp-types
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
3 years ago
Blaž Hrastnik
8adf0c1b3a
lsp: Implement support for workspace_folders (currently just one)
...
Refs #1898
3 years ago
Blaž Hrastnik
84e799f0e4
fix: Some LSPs still want rootPath, so provide it
...
Refs #1898
3 years ago
Triton171
f044059a2a
Implement LSP `workspace/configuration` and `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>
3 years ago
Blaž Hrastnik
9712bbb23b
Use which to resolve lsp/dap binaries
...
This resolves the following issue: https://github.com/helix-editor/helix/discussions/962#discussioncomment-1580046
3 years ago
dependabot[bot]
806cc1c3b1
build(deps): bump tokio from 1.16.1 to 1.17.0 ( #1691 )
...
Bumps [tokio](https://github.com/tokio-rs/tokio ) from 1.16.1 to 1.17.0.
- [Release notes](https://github.com/tokio-rs/tokio/releases )
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.16.1...tokio-1.17.0 )
---
updated-dependencies:
- dependency-name: tokio
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
3 years ago
Blaž Hrastnik
bd549d8a20
Merge remote-tracking branch 'origin/master' into debug
3 years ago
Blaž Hrastnik
f88c077f99
Replace tendril with smartstring
...
Slightly smaller API surface, less dependencies.
3 years ago
dependabot[bot]
828d39e736
build(deps): bump lsp-types from 0.91.1 to 0.92.0 ( #1631 )
...
Bumps [lsp-types](https://github.com/gluon-lang/lsp-types ) from 0.91.1 to 0.92.0.
- [Release notes](https://github.com/gluon-lang/lsp-types/releases )
- [Changelog](https://github.com/gluon-lang/lsp-types/blob/master/CHANGELOG.md )
- [Commits](https://github.com/gluon-lang/lsp-types/compare/v0.91.1...v0.92.0 )
---
updated-dependencies:
- dependency-name: lsp-types
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
3 years ago
dependabot[bot]
983a53bfb4
build(deps): bump tokio from 1.15.0 to 1.16.1 ( #1610 )
...
Bumps [tokio](https://github.com/tokio-rs/tokio ) from 1.15.0 to 1.16.1.
- [Release notes](https://github.com/tokio-rs/tokio/releases )
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.15.0...tokio-1.16.1 )
---
updated-dependencies:
- dependency-name: tokio
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
3 years ago
Blaž Hrastnik
efaac6c5d3
Release 0.6
3 years ago
Kirawi
ea095ca5fb
Optimize lsp_pos_to_pos ( #1423 )
...
lines().count() is slow compared to len_lines()
3 years ago
Alexis Mousset
8a019b423f
Detect workspace root using language markers ( #1370 )
...
* 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>
3 years ago
Gabriel Berto
5d7b5db8ab
Resolve completion item ( #1315 )
...
Co-authored-by: Gabriel Berto <gabriel.berto@pottencial.com.br>
3 years ago
Matouš Dzivjak
75a8b789d2
LSP code action commands ( #1304 )
...
* feat(lsp): codeAction commands
* Don't block on command call
* Fix lifetime of command execution
* Fix lint issues
3 years ago
dependabot[bot]
614e0e0026
build(deps): bump tokio from 1.14.0 to 1.15.0 ( #1321 )
...
Bumps [tokio](https://github.com/tokio-rs/tokio ) from 1.14.0 to 1.15.0.
- [Release notes](https://github.com/tokio-rs/tokio/releases )
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.14.0...tokio-1.15.0 )
---
updated-dependencies:
- dependency-name: tokio
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
3 years ago
Blaž Hrastnik
d31bef7fea
lsp: Don't panic if init fails
...
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.
3 years ago
Blaž Hrastnik
9ed930b233
Merge remote-tracking branch 'origin/master' into debug
3 years ago
dependabot[bot]
f24e5a3c41
build(deps): bump tokio from 1.13.1 to 1.14.0 ( #1146 )
...
Bumps [tokio](https://github.com/tokio-rs/tokio ) from 1.13.1 to 1.14.0.
- [Release notes](https://github.com/tokio-rs/tokio/releases )
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.13.1...tokio-1.14.0 )
---
updated-dependencies:
- dependency-name: tokio
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
3 years ago
Blaž Hrastnik
d1854d8e6a
Merge remote-tracking branch 'origin/master' into debug
3 years ago
CossonLeo
29e6849413
Add LSP rename_symbol (space-r) ( #1011 )
...
improve apply_workspace_edit
3 years ago
Blaž Hrastnik
f2b709a3c3
Merge branch 'master' into debug
3 years ago
dependabot[bot]
44ff597841
build(deps): bump tokio-stream from 0.1.7 to 0.1.8 ( #953 )
...
Bumps [tokio-stream](https://github.com/tokio-rs/tokio ) from 0.1.7 to 0.1.8.
- [Release notes](https://github.com/tokio-rs/tokio/releases )
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-stream-0.1.7...tokio-stream-0.1.8 )
---
updated-dependencies:
- dependency-name: tokio-stream
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
3 years ago
dependabot[bot]
a13af476c1
build(deps): bump tokio from 1.12.0 to 1.13.0 ( #955 )
...
Bumps [tokio](https://github.com/tokio-rs/tokio ) from 1.12.0 to 1.13.0.
- [Release notes](https://github.com/tokio-rs/tokio/releases )
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.12.0...tokio-1.13.0 )
---
updated-dependencies:
- dependency-name: tokio
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
3 years ago
Ivan Tham
49f6c2623f
Bump lsp-types to 0.91.0 ( #932 )
3 years ago
Blaž Hrastnik
a1b7f003a6
Include the missing dependency bump
3 years ago
Blaž Hrastnik
f3c7f20dbc
Release v0.5.0
3 years ago
Blaž Hrastnik
182a59b552
Update to rust 1.56 + 2021 edition
3 years ago
Blaž Hrastnik
0a6b60085a
Merge branch 'master' into debug
3 years ago
Dmitry Sharshakov
48cb81eff1
Merge branch 'master' into debug
3 years ago
Midnight Exigent
eedcea7e6b
Allow `language.config` (in languages.toml) to be passed in as a toml object ( #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
3 years ago
dependabot[bot]
d68cff837f
build(deps): bump lsp-types from 0.89.2 to 0.90.0
...
Bumps [lsp-types](https://github.com/gluon-lang/lsp-types ) from 0.89.2 to 0.90.0.
- [Release notes](https://github.com/gluon-lang/lsp-types/releases )
- [Changelog](https://github.com/gluon-lang/lsp-types/blob/master/CHANGELOG.md )
- [Commits](https://github.com/gluon-lang/lsp-types/compare/v0.89.2...v0.90.0 )
---
updated-dependencies:
- dependency-name: lsp-types
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
3 years ago
dependabot[bot]
466e69bbb9
build(deps): bump tokio from 1.11.0 to 1.12.0
...
Bumps [tokio](https://github.com/tokio-rs/tokio ) from 1.11.0 to 1.12.0.
- [Release notes](https://github.com/tokio-rs/tokio/releases )
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.11.0...tokio-1.12.0 )
---
updated-dependencies:
- dependency-name: tokio
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
3 years ago
Dmitry Sharshakov
bf53aff27d
Merge branch 'master' into debug
3 years ago
Kirawi
ef532e0c0d
log errors produced when trying to initialize the LSP ( #746 )
3 years ago
Blaž Hrastnik
bb47a9a0b8
fix: Fix regression where formatting would fail on null response
3 years ago
Blaž Hrastnik
fd36fbdebf
Merge branch 'lsp-async-init'
3 years ago
dependabot[bot]
fde0a84bba
build(deps): bump tokio from 1.10.1 to 1.11.0 ( #723 )
...
Bumps [tokio](https://github.com/tokio-rs/tokio ) from 1.10.1 to 1.11.0.
- [Release notes](https://github.com/tokio-rs/tokio/releases )
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.10.1...tokio-1.11.0 )
---
updated-dependencies:
- dependency-name: tokio
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
3 years ago
Blaž Hrastnik
be81f40df8
lsp: This doesn't need to be a mutable reference
3 years ago
Blaž Hrastnik
37606bad47
lsp: doc.language_server() is None until initialize completes
3 years ago
Blaž Hrastnik
46f3c69f06
lsp: Don't send notifications until initialize completes
...
Then send open events for all documents with the LSP attached.
3 years ago
Blaž Hrastnik
2793ff3832
lsp: SyncKind::Full: we need to send the whole document on each change
3 years ago
Blaž Hrastnik
48fd4843fc
lsp: Outdated comment
3 years ago
Blaž Hrastnik
800d79b584
ls: Refactor textDocument/didSave in a similar vein
3 years ago
Blaž Hrastnik
184637c55a
lsp: refactor format so we stop cloning the language_server
3 years ago
Blaž Hrastnik
8744f367bd
wip
3 years ago
Blaž Hrastnik
5a558e0d8e
lsp: Delay requests & notifications until initialization is complete
3 years ago
Blaž Hrastnik
c3a58cdadd
lsp: Refactor capabilities as an async OnceCell
...
First step in making LSP init asynchronous
3 years ago
Blaž Hrastnik
41f1e8e4fb
fix: lsp: Terminate transport on EOF
...
If stdout/stderr is closed, read_line will return 0 indicating EOF.
3 years ago
Blaž Hrastnik
fe17b99ab3
fix: lsp: Don't consume \n\n as a single newline
3 years ago
Blaž Hrastnik
57ed5180e0
lsp: Improve line ending handling when generating TextEdit
3 years ago
Dmitry Sharshakov
5b20f6020a
Merge remote-tracking branch 'origin/master' into debug
...
Contains type fix on helix-term/src/ui/editor.rs:752:13
3 years ago
dependabot[bot]
9d83a4483d
build(deps): bump tokio from 1.10.0 to 1.10.1
...
Bumps [tokio](https://github.com/tokio-rs/tokio ) from 1.10.0 to 1.10.1.
- [Release notes](https://github.com/tokio-rs/tokio/releases )
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.10.0...tokio-1.10.1 )
---
updated-dependencies:
- dependency-name: tokio
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
3 years ago
Blaž Hrastnik
847d1fa496
fix: Work around crashes on LSPs that don't just emit JSON-RPC
3 years ago
Blaž Hrastnik
7eff905680
lsp: slightly refactor header parsing, add more logging
3 years ago
Dmitry Sharshakov
c7759a5aa0
Merge remote-tracking branch 'origin/master' into debug
3 years ago
Timothy DeHerrera
ed8c3e6574
don't panic on defunct lsp process ( #583 )
3 years ago
Blaž Hrastnik
d39baa3b4e
Start integrating into the editor's event loop
3 years ago
Blaž Hrastnik
3f62799656
Get cargo check to pass in the subcrate
3 years ago
Blaž Hrastnik
1caedc18ca
Release v0.4.1
3 years ago
Blaž Hrastnik
3de40de0a9
fix build...
3 years ago
Blaž Hrastnik
733ee06b7b
Release v0.4.0
3 years ago
Blaž Hrastnik
385a6b5a1a
lsp: Refactor duplex to avoid issues with select! + read_exact
...
read_exact isn't cancellation safe.
Fixes #504
3 years ago
Ivan Tham
821565e4ef
Add ctrl-z to suspend
3 years ago
dependabot[bot]
a6aad3122d
Bump tokio from 1.8.2 to 1.9.0
...
Bumps [tokio](https://github.com/tokio-rs/tokio ) from 1.8.2 to 1.9.0.
- [Release notes](https://github.com/tokio-rs/tokio/releases )
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.8.2...tokio-1.9.0 )
---
updated-dependencies:
- dependency-name: tokio
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
3 years ago
dependabot[bot]
b581c185ba
Bump jsonrpc-core from 17.1.0 to 18.0.0
...
Bumps [jsonrpc-core](https://github.com/paritytech/jsonrpc ) from 17.1.0 to 18.0.0.
- [Release notes](https://github.com/paritytech/jsonrpc/releases )
- [Commits](https://github.com/paritytech/jsonrpc/compare/jsonrpc-core-17.1.0...v18.0.0 )
---
updated-dependencies:
- dependency-name: jsonrpc-core
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
3 years ago
Grzegorz Baranski
48e344a2a8
feat: code actions - document edits ( #478 )
...
* 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>
3 years ago
Cor Peters
0aa43902ca
Added option to provide a custom config file to the lsp. ( #460 )
...
* 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>
3 years ago
dependabot[bot]
c74198a3bf
Bump tokio-stream from 0.1.6 to 0.1.7
...
Bumps [tokio-stream](https://github.com/tokio-rs/tokio ) from 0.1.6 to 0.1.7.
- [Release notes](https://github.com/tokio-rs/tokio/releases )
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-stream-0.1.6...tokio-stream-0.1.7 )
---
updated-dependencies:
- dependency-name: tokio-stream
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
3 years ago
dependabot[bot]
47a6882738
Bump tokio from 1.7.1 to 1.8.0
...
Bumps [tokio](https://github.com/tokio-rs/tokio ) from 1.7.1 to 1.8.0.
- [Release notes](https://github.com/tokio-rs/tokio/releases )
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.7.1...tokio-1.8.0 )
---
updated-dependencies:
- dependency-name: tokio
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
3 years ago
Joe Neeman
c9be480bf8
Make formatting happen asynchronously.
3 years ago
Blaž Hrastnik
44566ea812
Release 0.3.0
3 years ago
Blaž Hrastnik
cad14c6b46
Address nightly clippy warnings
3 years ago
Blaž Hrastnik
a70de6e980
Merge pull request #224 from helix-editor/line_ending_detection
...
Line ending detection
3 years ago
dependabot[bot]
c704970fd7
Bump tokio from 1.6.1 to 1.7.1
...
Bumps [tokio](https://github.com/tokio-rs/tokio ) from 1.6.1 to 1.7.1.
- [Release notes](https://github.com/tokio-rs/tokio/releases )
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.6.1...tokio-1.7.1 )
---
updated-dependencies:
- dependency-name: tokio
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
3 years ago
wojciechkepka
cc357d5096
Add progress spinners to status line
3 years ago
Nathan Vegdahl
4efd6713c5
Work on moving code over to LineEnding instead of assuming '\n'.
...
Also some general cleanup and some minor fixes along the way.
3 years ago
wojciechkepka
dd0af78079
Fix unwraps in lsp::transport
3 years ago
wojciechkepka
c2aad859b1
Handle language server shutdown with timeout
3 years ago
Benoît CORTIER
03d1ca7b0a
cargo: add more metadata to manifests
3 years ago
Benoît CORTIER
b48054f3ee
cargo: add version to local dependencies
...
First step towards enabling us to publish on crates.io.
See: https://github.com/helix-editor/helix/issues/42
3 years ago
wojciechkepka
d095ec15d4
Reenable `work_done_progress` capability
3 years ago
wojciechkepka
38cb934d8f
Add unique id to each lsp client/server pair
3 years ago
wojciechkepka
80b4a69053
Update `client::reply` to be non async
3 years ago
wojciechkepka
a6d39585d8
Add `work_done_token` as parameter to lsp methods
3 years ago
wojciechkepka
52fb90b81e
Add `MethodCall`, `ProgressStatus`, `LspProgressMap`
3 years ago
Blaž Hrastnik
ae5ecfdf66
Release v0.2.0
3 years ago
Robin
9baf1ecc90
add symbol picker ( #230 )
...
* add symbol picker
use the lsp document_symbol request
* fix errors from merging in master
* add docs for symbol picker
3 years ago
Wojciech Kępka
c754df12b3
lsp: Check bounds when converting lsp positions ( #204 )
...
* lsp: Make position conversion funcs return `Option`
* Add tests
* Fixes
* Revert pos_to_lsp_pos to panic
3 years ago
Blaž Hrastnik
a8a5bcd13d
Temporarily disable workDone
...
Blows up on gopls because we don't handle receiving window/workDoneProgress/create method calls
3 years ago
Wojciech Kępka
098806ce2a
lsp: Display LSP progress messages ( #216 )
3 years ago
Ivan Tham
7cc13fefe9
Derive debug without feature
...
Note that this also removed those `finish_non_exhaustive()`.
3 years ago
notoria
1a3a924634
Implement Debug for data structure as a feature
3 years ago
Egor Karavaev
ea6667070f
helix-lsp cleanup
3 years ago
Egor Karavaev
960bc9f134
Don't panic on LSP not starting
3 years ago
Blaž Hrastnik
d5de9183ef
Use upstream jsonrpc again
3 years ago
Blaž Hrastnik
8d6fad4cac
lsp: Provide workspace root on client.initialize()
3 years ago
Blaž Hrastnik
f48a60b8e2
Release 0.0.10
4 years ago
Ethan Bodzioney
843c2cdebd
Install instructions and version number corrections ( #148 )
...
* Add MacOS install instructions
* Change version name argument
When using the -V command to get the version you are given 'helix-term x.x.x', I changed this to just helix as it makes more sense.
* Fixed version number
* Fixed version number
* Fixed version number
* Fixed version number
* Fixed version number
* Fixed version number
4 years ago
Egor Karavaev
d55419604c
Remove select_all implementation
4 years ago
Blaž Hrastnik
e4ff75b4d4
Add :fmt (formats the whole file).
4 years ago
Blaž Hrastnik
5cbb4efa6d
Add the LICENSE file.
4 years ago
Blaž Hrastnik
6c705f09e8
Lint
4 years ago
Blaž Hrastnik
caf4349925
Remove some of the panics, just log instead.
4 years ago
Blaž Hrastnik
8a949fb011
Drop shellexpand.
4 years ago
Blaž Hrastnik
570c253ffb
Disable default features on futures-util to drop proc macros.
4 years ago