diff options
author | Blaž Hrastnik | 2021-04-14 06:30:15 +0000 |
---|---|---|
committer | Blaž Hrastnik | 2021-04-14 06:39:31 +0000 |
commit | 3e5f24a9d5cec26697a75e515bff46de418b32da (patch) | |
tree | de3cf4a3be699798d3797f5af2d52a1e58227155 /helix-term/src/application.rs | |
parent | 811f952a41177242f7dfa4d66f2b16157f918718 (diff) |
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.
Diffstat (limited to 'helix-term/src/application.rs')
-rw-r--r-- | helix-term/src/application.rs | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/helix-term/src/application.rs b/helix-term/src/application.rs index 71c6fba1..b3ddbe15 100644 --- a/helix-term/src/application.rs +++ b/helix-term/src/application.rs @@ -175,8 +175,20 @@ impl Application { }; use helix_lsp::{lsp, util::lsp_pos_to_pos}; use lsp::DiagnosticSeverity; - let start = lsp_pos_to_pos(text, diagnostic.range.start); - let end = lsp_pos_to_pos(text, diagnostic.range.end); + + let language_server = doc.language_server().unwrap(); + + // TODO: convert inside server + let start = lsp_pos_to_pos( + text, + diagnostic.range.start, + language_server.offset_encoding(), + ); + let end = lsp_pos_to_pos( + text, + diagnostic.range.end, + language_server.offset_encoding(), + ); Diagnostic { range: Range { start, end }, |