helix/helix-lsp/src
Pascal Kuthe b1f7528090 fix snippet bugs and multicursor completion edgecases
Multicursor completions may overlap and therefore overlapping
completions must be dropped to avoid crashes. Furthermore, multicursor
edits might simply be out of range if the word before/after the cursor
is shorter. This currently leads to crashes, instead these selections
are now also removed for completions.

This commit also significantly refactors snippet transaction generation
so that tabstops behave correctly with the above rules. Furthermore,
snippet tabstops need to be carefully mapped to ensure their position
is correct and consistent with our selection semantics. Finally,
we now keep a partially updated Rope while creating snippet
transactions so that we can fill information into snippets that
depends on the position in the document.
2023-03-10 16:54:17 +09:00
..
client.rs LSP: Support textDocument/prepareRename (#6103) 2023-03-08 11:11:43 +09:00
jsonrpc.rs LSP: Add request ID to request timeout message (#6010) 2023-02-16 10:16:25 +09:00
lib.rs fix snippet bugs and multicursor completion edgecases 2023-03-10 16:54:17 +09:00
snippet.rs avoid allocations during snippet rendering 2023-03-10 16:54:17 +09:00
transport.rs Drain pending requests on language server termination (#4852) 2022-11-24 11:07:42 +09:00