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
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
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
3 years ago
EmmChriss
807cdc60bf
configurable lsp request timeout ( #2405 )
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
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
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
Blaž Hrastnik
f88c077f99
Replace tendril with smartstring
...
Slightly smaller API surface, less dependencies.
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
CossonLeo
29e6849413
Add LSP rename_symbol (space-r) ( #1011 )
...
improve apply_workspace_edit
3 years ago
Ivan Tham
49f6c2623f
Bump lsp-types to 0.91.0 ( #932 )
3 years ago
Blaž Hrastnik
bb47a9a0b8
fix: Fix regression where formatting would fail on null response
3 years ago
Blaž Hrastnik
37606bad47
lsp: doc.language_server() is None until initialize completes
3 years ago
Blaž Hrastnik
2793ff3832
lsp: SyncKind::Full: we need to send the whole document on each change
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
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
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
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
c2aad859b1
Handle language server shutdown with timeout
4 years ago
wojciechkepka
d095ec15d4
Reenable `work_done_progress` capability
4 years ago
wojciechkepka
38cb934d8f
Add unique id to each lsp client/server pair
4 years ago
wojciechkepka
80b4a69053
Update `client::reply` to be non async
4 years ago
wojciechkepka
a6d39585d8
Add `work_done_token` as parameter to lsp methods
4 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
4 years ago
Blaž Hrastnik
a8a5bcd13d
Temporarily disable workDone
...
Blows up on gopls because we don't handle receiving window/workDoneProgress/create method calls
4 years ago
Wojciech Kępka
098806ce2a
lsp: Display LSP progress messages ( #216 )
4 years ago
Ivan Tham
7cc13fefe9
Derive debug without feature
...
Note that this also removed those `finish_non_exhaustive()`.
4 years ago
notoria
1a3a924634
Implement Debug for data structure as a feature
4 years ago
Egor Karavaev
ea6667070f
helix-lsp cleanup
4 years ago
Egor Karavaev
960bc9f134
Don't panic on LSP not starting
4 years ago
Blaž Hrastnik
8d6fad4cac
lsp: Provide workspace root on client.initialize()
4 years ago
Blaž Hrastnik
fd4fd12fa3
clippy lint
4 years ago
Blaž Hrastnik
ba97005495
Work around the rest of the blocking issues.
4 years ago
Blaž Hrastnik
d00414f81a
Start moving more LSP calls into callbacks/futures without capturing self
4 years ago
Blaž Hrastnik
355ad3cb82
Tokio migration.
4 years ago
Blaž Hrastnik
3e5f24a9d5
lsp: support both utf-8 and utf-16 offsets.
...
Still need to implement the clangd encoding negotiation, but it's
a start. Should also manually override to utf8 for pyls.
4 years ago