@@ -1,6 +1,6 @@
11use helix_lsp::{
22 block_on, lsp,
3− util::{lsp_pos_to_pos, lsp_range_to_range, pos_to_lsp_pos, range_to_lsp_range},
3+ util::{lsp_pos_to_pos, lsp_range_to_range, range_to_lsp_range},
44 OffsetEncoding,
55};
66
@@ -495,13 +495,7 @@ pub fn goto_definition(cx: &mut Context) {
495495 let language_server = language_server!(doc);
496496 let offset_encoding = language_server.offset_encoding();
497497
498− let pos = pos_to_lsp_pos(
499− doc.text(),
500− doc.selection(view.id)
501− .primary()
502− .cursor(doc.text().slice(..)),
503− offset_encoding,
504− );
498+ let pos = doc.position(view.id, offset_encoding);
505499
506500 let future = language_server.goto_definition(doc.identifier(), pos, None);
507501
@@ -519,13 +513,7 @@ pub fn goto_type_definition(cx: &mut Context) {
519513 let language_server = language_server!(doc);
520514 let offset_encoding = language_server.offset_encoding();
521515
522− let pos = pos_to_lsp_pos(
523− doc.text(),
524− doc.selection(view.id)
525− .primary()
526− .cursor(doc.text().slice(..)),
527− offset_encoding,
528− );
516+ let pos = doc.position(view.id, offset_encoding);
529517
530518 let future = language_server.goto_type_definition(doc.identifier(), pos, None);
531519
@@ -543,13 +531,7 @@ pub fn goto_implementation(cx: &mut Context) {
543531 let language_server = language_server!(doc);
544532 let offset_encoding = language_server.offset_encoding();
545533
546− let pos = pos_to_lsp_pos(
547− doc.text(),
548− doc.selection(view.id)
549− .primary()
550− .cursor(doc.text().slice(..)),
551− offset_encoding,
552− );
534+ let pos = doc.position(view.id, offset_encoding);
553535
554536 let future = language_server.goto_implementation(doc.identifier(), pos, None);
555537
@@ -567,13 +549,7 @@ pub fn goto_reference(cx: &mut Context) {
567549 let language_server = language_server!(doc);
568550 let offset_encoding = language_server.offset_encoding();
569551
570− let pos = pos_to_lsp_pos(
571− doc.text(),
572− doc.selection(view.id)
573− .primary()
574− .cursor(doc.text().slice(..)),
575− offset_encoding,
576− );
552+ let pos = doc.position(view.id, offset_encoding);
577553
578554 let future = language_server.goto_reference(doc.identifier(), pos, None);
579555
@@ -589,14 +565,9 @@ pub fn goto_reference(cx: &mut Context) {
589565pub fn signature_help(cx: &mut Context) {
590566 let (view, doc) = current!(cx.editor);
591567 let language_server = language_server!(doc);
568+ let offset_encoding = language_server.offset_encoding();
592569
593− let pos = pos_to_lsp_pos(
594− doc.text(),
595− doc.selection(view.id)
596− .primary()
597− .cursor(doc.text().slice(..)),
598− language_server.offset_encoding(),
599− );
570+ let pos = doc.position(view.id, offset_encoding);
600571
601572 let future = language_server.text_document_signature_help(doc.identifier(), pos, None);
602573
@@ -622,16 +593,11 @@ pub fn signature_help(cx: &mut Context) {
622593pub fn hover(cx: &mut Context) {
623594 let (view, doc) = current!(cx.editor);
624595 let language_server = language_server!(doc);
596+ let offset_encoding = language_server.offset_encoding();
625597
626598 // TODO: factor out a doc.position_identifier() that returns lsp::TextDocumentPositionIdentifier
627599
628− let pos = pos_to_lsp_pos(
629− doc.text(),
630− doc.selection(view.id)
631− .primary()
632− .cursor(doc.text().slice(..)),
633− language_server.offset_encoding(),
634− );
600+ let pos = doc.position(view.id, offset_encoding);
635601
636602 let future = language_server.text_document_hover(doc.identifier(), pos, None);
637603
@@ -688,13 +654,7 @@ pub fn rename_symbol(cx: &mut Context) {
688654 let language_server = language_server!(doc);
689655 let offset_encoding = language_server.offset_encoding();
690656
691− let pos = pos_to_lsp_pos(
692− doc.text(),
693− doc.selection(view.id)
694− .primary()
695− .cursor(doc.text().slice(..)),
696− offset_encoding,
697− );
657+ let pos = doc.position(view.id, offset_encoding);
698658
699659 let task = language_server.rename_symbol(doc.identifier(), pos, input.to_string());
700660 let edits = block_on(task).unwrap_or_default();