diff options
author | Nayeem Rahman <nayeemrmn99@gmail.com> | 2023-12-15 15:24:38 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-15 15:24:38 +0000 |
commit | cd480b481ee1b4209910aa7a8f81ffa996e7b0f9 (patch) | |
tree | 2101e421e98b08c5653143bcb2859dcf9bbf81a3 | |
parent | fd6044dfecb9dfea2c9aad1d6252a474ea34c9c5 (diff) |
fix(lsp): apply specifier rewrite to CompletionItem::text_edit (#21564)
-rw-r--r-- | cli/lsp/tsc.rs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/cli/lsp/tsc.rs b/cli/lsp/tsc.rs index c919b3b61..2e1189e75 100644 --- a/cli/lsp/tsc.rs +++ b/cli/lsp/tsc.rs @@ -3112,6 +3112,23 @@ impl CompletionEntryDetails { } else { None }; + let mut text_edit = original_item.text_edit.clone(); + if let Some(specifier_rewrite) = &data.specifier_rewrite { + if let Some(text_edit) = &mut text_edit { + match text_edit { + lsp::CompletionTextEdit::Edit(text_edit) => { + text_edit.new_text = text_edit + .new_text + .replace(&specifier_rewrite.0, &specifier_rewrite.1); + } + lsp::CompletionTextEdit::InsertAndReplace(insert_replace_edit) => { + insert_replace_edit.new_text = insert_replace_edit + .new_text + .replace(&specifier_rewrite.0, &specifier_rewrite.1); + } + } + } + } let (command, additional_text_edits) = parse_code_actions( self.code_actions.as_ref(), data, @@ -3136,6 +3153,7 @@ impl CompletionEntryDetails { detail, documentation, command, + text_edit, additional_text_edits, insert_text, // NOTE(bartlomieju): it's not entirely clear to me why we need to do that, |