Commit Graph

280 Commits (05a4d05646544fe0039ea37ad404de46f6e7d02d)

Author SHA1 Message Date
wojciechkepka 38cb934d8f Add unique id to each lsp client/server pair 2021-06-18 17:42:38 +09:00
wojciechkepka 80b4a69053 Update `client::reply` to be non async 2021-06-18 17:42:38 +09:00
wojciechkepka a6d39585d8 Add `work_done_token` as parameter to lsp methods 2021-06-18 17:42:38 +09:00
wojciechkepka 52fb90b81e Add `MethodCall`, `ProgressStatus`, `LspProgressMap` 2021-06-18 17:42:38 +09:00
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
2021-06-12 21:45:21 +09:00
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
2021-06-12 16:04:30 +09:00
Blaž Hrastnik a8a5bcd13d
Temporarily disable workDone
Blows up on gopls because we don't handle receiving window/workDoneProgress/create method calls
2021-06-11 13:30:21 +09:00
Wojciech Kępka 098806ce2a
lsp: Display LSP progress messages (#216) 2021-06-11 12:42:16 +09:00
Ivan Tham 7cc13fefe9 Derive debug without feature
Note that this also removed those `finish_non_exhaustive()`.
2021-06-10 22:00:08 +09:00
notoria 1a3a924634 Implement Debug for data structure as a feature 2021-06-10 22:00:08 +09:00
Egor Karavaev ea6667070f helix-lsp cleanup 2021-06-08 10:56:46 +09:00
Egor Karavaev 960bc9f134 Don't panic on LSP not starting 2021-06-08 10:02:41 +09:00
Blaž Hrastnik 8d6fad4cac lsp: Provide workspace root on client.initialize() 2021-06-07 21:32:01 +09:00
Egor Karavaev d55419604c Remove select_all implementation 2021-06-04 09:25:30 +09:00
Blaž Hrastnik e4ff75b4d4 Add :fmt (formats the whole file). 2021-05-12 17:24:55 +09:00
Blaž Hrastnik 6c705f09e8 Lint 2021-05-09 17:13:59 +09:00
Blaž Hrastnik caf4349925 Remove some of the panics, just log instead. 2021-05-08 18:17:13 +09:00
Blaž Hrastnik fd4fd12fa3 clippy lint 2021-05-06 17:20:00 +09:00
Blaž Hrastnik ba97005495 Work around the rest of the blocking issues. 2021-05-06 17:15:49 +09:00
Blaž Hrastnik d00414f81a Start moving more LSP calls into callbacks/futures without capturing self 2021-05-06 15:08:59 +09:00
Blaž Hrastnik 355ad3cb82 Tokio migration. 2021-05-06 13:56:34 +09:00
Blaž Hrastnik 3b90317060 Add window/showMessage / logMessage stubs so gopls fully starts. 2021-04-15 17:34:38 +09:00
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.
2021-04-14 15:39:31 +09:00
Blaž Hrastnik 5aed1f3c00 lsp: Gracefully fail if binary doesn't exist. 2021-04-07 13:38:24 +09:00
Blaž Hrastnik 0e9ecccfc1 clippy: Drop or-patterns for now because they're not on stable rust yet 2021-04-06 19:51:15 +09:00
Blaž Hrastnik ceea5eacd8 clippy lint 2021-03-31 23:42:16 +09:00
Blaž Hrastnik 2a3910c1d9 wip: Async async. Delay response handling with a callback. 2021-03-26 17:12:45 +09:00
Blaž Hrastnik e3c4edae32 Add the machinery to load syntax config from TOML.
It's embedded into the binary at build time for now, but it's progress.
2021-03-25 15:26:25 +09:00
Blaž Hrastnik 9a36d2c2a8 wip: Hooks & trigger characters for completion/signature_help. 2021-03-24 18:17:00 +09:00
Blaž Hrastnik cbcacb1063 Merge some imports. 2021-03-22 12:40:07 +09:00
Blaž Hrastnik e9bd9e72c3 Pos conversions always operate on whole documents. 2021-03-18 15:23:42 +09:00
Blaž Hrastnik 5237084d98 Don't publicly re-export once_cell in lsp. 2021-03-18 14:29:38 +09:00
Blaž Hrastnik 59e6024186 Remove State from a few more signatures. 2021-03-18 14:17:32 +09:00
Blaž Hrastnik 8eaf9a432d Make Transaction::change only rely on the rope. 2021-03-18 13:39:56 +09:00
Blaž Hrastnik 15f142bc4b lsp: Use into_iter->map->collect instead of manual loop. 2021-03-16 23:03:29 +09:00
Blaž Hrastnik 4240f757c0 lsp: Fix compilation errors. 2021-03-16 23:03:10 +09:00
Jan Hrastnik a5f9080a9c goto_request wip 2021-03-16 23:03:10 +09:00
Jan Hrastnik b738ae1bc7 more goto lsp functions 2021-03-16 23:03:10 +09:00
Jan Hrastnik 0322c28e6b gd now works for singular definition 2021-03-16 23:03:10 +09:00
Jan Hrastnik 8a68a04340 gotodefiniton now runs but doesnt return anything 2021-03-16 23:03:10 +09:00
Jan Hrastnik d3ddc8dea6 wip 2021-03-16 23:03:10 +09:00
Blaž Hrastnik eca2a73ad0 lsp: Pass through language_id on didOpenTextDocument. 2021-03-16 16:13:41 +09:00
Blaž Hrastnik 143cfe13e0 minor: TODO comment cleanup 2021-03-16 15:41:42 +09:00
Blaž Hrastnik 87e3cd3df2 ui: Render diagnostic errors in sideline. 2021-03-15 16:19:31 +09:00
Blaž Hrastnik bb87b08fc9 Configure language servers via LanguageConfiguration. 2021-03-14 17:14:34 +09:00
Blaž Hrastnik 6cbfb050e2 lsp: Emit didSave notifications. 2021-03-12 16:25:12 +09:00
Blaž Hrastnik 4102992c46 Bump deps. 2021-03-01 14:33:02 +09:00
Blaž Hrastnik 1ae7c43391 commands: = as range formatting (via lsp) 2021-02-26 15:52:43 +09:00
Blaž Hrastnik 7162632eb7 lsp: Hover documentation draft. 2021-02-25 18:07:47 +09:00
Blaž Hrastnik 87a6d4e736 minor: Simplify some code. 2021-02-24 16:07:39 +09:00
Blaž Hrastnik 61ce2c9cfe lsp: Disable snippet_support until we implement it. 2021-02-22 14:42:12 +09:00
Blaž Hrastnik 004a4f37a7 lsp: Handle responses being returned after request timed out. 2021-02-22 12:44:36 +09:00
Blaž Hrastnik c9dd1c930e treewide: &RopeSlice -> RopeSlice. It's Copy so no reason to pass by ref 2021-02-18 18:34:22 +09:00
Blaž Hrastnik d5f9622e2e lsp: edit events change ranges need to affect each other. 2021-02-17 17:28:55 +09:00
Blaž Hrastnik 48ef6598db Increase the log level in LSP and log server errors. 2021-02-16 18:18:35 +09:00
Blaž Hrastnik b7da7f83c3 lsp: Test changeset_to_changes. 2021-02-16 15:45:46 +09:00
Blaž Hrastnik 0541fbb85f Adjust LSP changeset generation too: insert now always preceedes delete. 2021-02-16 11:08:06 +09:00
Blaž Hrastnik 05c7fb98df Refactoring: move language_servers into Editor, proper load for doc. 2021-01-21 16:55:46 +09:00
Blaž Hrastnik 777a80917d Address clippy lints. 2021-01-08 16:37:36 +09:00
Blaž Hrastnik 941c34a7fc lsp: Move timeouts into client.request 2021-01-06 17:48:14 +09:00
Blaž Hrastnik 3cbab20908 lsp: Fix pos_to_lsp_pos calculation. 2020-12-25 17:42:50 +09:00
Blaž Hrastnik 2ab069bb3f lsp: Work on syncing the state with the language server. 2020-12-25 17:20:09 +09:00
Blaž Hrastnik cd16df19c1 lsp: generate_transaction_from_text_edits 2020-12-23 18:16:17 +09:00
Blaž Hrastnik 56f2193811 Retrieve completion options on ctrl-x. 2020-12-23 16:20:49 +09:00
Blaž Hrastnik 955cb81687 Init lsp through the registry. 2020-12-23 15:50:16 +09:00
Blaž Hrastnik 8695415fbf wip: Move to new rendering structure. 2020-12-13 12:23:50 +09:00
Blaž Hrastnik 39bf1ca825 Update deps. 2020-12-03 13:12:07 +09:00
Blaž Hrastnik a7869c728c wip 2020-12-03 13:12:07 +09:00
Blaž Hrastnik ae8a9e5bac lsp: Make base request methods take &self instead of &mut self. 2020-12-03 13:10:35 +09:00
Blaž Hrastnik cc6bdf8f66 Text change generation, RPC call handling. 2020-12-03 13:10:35 +09:00
Blaž Hrastnik af1924404a Configure logging (-vv for debug level logs) 2020-12-03 13:10:35 +09:00
Blaž Hrastnik eff6fac9ec clippy lint 2020-12-03 13:10:35 +09:00
Blaž Hrastnik b39849dde1 Refactor: Document type as a wrapper around barebones State. 2020-12-03 13:10:35 +09:00
Blaž Hrastnik 81ccca0c6a Improve error typing. 2020-12-03 13:10:35 +09:00
Blaž Hrastnik ef5e5f9296 state.version tracking 2020-12-03 13:10:34 +09:00
Blaž Hrastnik 49254d7180 Total mess but it works: diagnostic marking. 2020-12-03 13:10:34 +09:00
Blaž Hrastnik f9bfba4d96 Reroute LSP notification events into the main app event loop. 2020-12-03 13:10:32 +09:00
Blaž Hrastnik 13cb442850 wip: Fetching diagnostics, parsing notifications. 2020-12-03 13:04:42 +09:00
Blaž Hrastnik f03830b047 wip: Basic LSP lifecycle requests/notifications. 2020-12-03 13:04:42 +09:00
Blaž Hrastnik 8adcf5083f wip 2020-12-03 13:04:42 +09:00