Skip to content

Commit

Permalink
Rebase cleanup/fixes and use lsp::CompletionItem in item_to_transacti…
Browse files Browse the repository at this point in the history
…on directly
  • Loading branch information
Philipp-M authored and Schuyler Mortimer committed Jul 10, 2024
1 parent ab657dc commit d14412d
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 10 deletions.
2 changes: 1 addition & 1 deletion helix-lsp/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -686,7 +686,7 @@ impl Registry {

/// If this method is called, all documents that have a reference to language servers used by the language config have to refresh their language servers,
/// as it could be that language servers of these documents were stopped by this method.
/// See [helix_view::editor::Editor::refresh_language_servers]
/// See helix_view::editor::Editor::refresh_language_servers
pub fn restart(
&mut self,
language_config: &LanguageConfiguration,
Expand Down
2 changes: 1 addition & 1 deletion helix-term/src/commands.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4246,7 +4246,7 @@ pub fn completion(cx: &mut Context) {
.map(|language_server| {
let language_server_id = language_server.id();
let offset_encoding = language_server.offset_encoding();
let pos = pos_to_lsp_pos(doc.text(), cursor, offset_encoding);
let pos = pos_to_lsp_pos(&text, cursor, offset_encoding);
let doc_id = doc.identifier();
let completion_request = language_server.completion(doc_id, pos, None).unwrap();

Expand Down
15 changes: 7 additions & 8 deletions helix-term/src/ui/completion.rs
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ impl Completion {
fn item_to_transaction(
doc: &Document,
view_id: ViewId,
item: &CompletionItem,
item: &lsp::CompletionItem,
offset_encoding: OffsetEncoding,
trigger_offset: usize,
include_placeholder: bool,
Expand All @@ -130,7 +130,7 @@ impl Completion {
let text = doc.text().slice(..);
let primary_cursor = selection.primary().cursor(text);

let (edit_offset, new_text) = if let Some(edit) = &item.item.text_edit {
let (edit_offset, new_text) = if let Some(edit) = &item.text_edit {
let edit = match edit {
lsp::CompletionTextEdit::Edit(edit) => edit.clone(),
lsp::CompletionTextEdit::InsertAndReplace(item) => {
Expand All @@ -153,10 +153,9 @@ impl Completion {
(Some((start_offset, end_offset)), edit.new_text)
} else {
let new_text = item
.item
.insert_text
.clone()
.unwrap_or_else(|| item.item.label.clone());
.unwrap_or_else(|| item.label.clone());
// check that we are still at the correct savepoint
// we can still generate a transaction regardless but if the
// document changed (and not just the selection) then we will
Expand All @@ -165,9 +164,9 @@ impl Completion {
(None, new_text)
};

if matches!(item.item.kind, Some(lsp::CompletionItemKind::SNIPPET))
if matches!(item.kind, Some(lsp::CompletionItemKind::SNIPPET))
|| matches!(
item.item.insert_text_format,
item.insert_text_format,
Some(lsp::InsertTextFormat::SNIPPET)
)
{
Expand Down Expand Up @@ -256,7 +255,7 @@ impl Completion {
let transaction = item_to_transaction(
doc,
view.id,
item,
&item.item,
language_server!(item).offset_encoding(),
trigger_offset,
true,
Expand Down Expand Up @@ -294,7 +293,7 @@ impl Completion {
let transaction = item_to_transaction(
doc,
view.id,
&item,
&item.item,
offset_encoding,
trigger_offset,
false,
Expand Down

0 comments on commit d14412d

Please sign in to comment.