aboutsummaryrefslogtreecommitdiff
path: root/helix-term/src/application.rs
diff options
context:
space:
mode:
authorBlaž Hrastnik2021-04-14 06:30:15 +0000
committerBlaž Hrastnik2021-04-14 06:39:31 +0000
commit3e5f24a9d5cec26697a75e515bff46de418b32da (patch)
treede3cf4a3be699798d3797f5af2d52a1e58227155 /helix-term/src/application.rs
parent811f952a41177242f7dfa4d66f2b16157f918718 (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.rs16
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 },