Use CompletionTextEdit::InsertAndReplace if supported by the client

This commit is contained in:
Lukas Wirth
2021-04-08 14:22:54 +02:00
parent 3191a93185
commit 8fa3011908
5 changed files with 50 additions and 20 deletions

View File

@@ -664,10 +664,13 @@ pub(crate) fn handle_completion(
};
let line_index = snap.file_line_index(position.file_id)?;
let insert_replace_support =
snap.config.insert_replace_support().then(|| text_document_position.position);
let items: Vec<CompletionItem> = items
.into_iter()
.flat_map(|item| {
let mut new_completion_items = to_proto::completion_item(&line_index, item.clone());
let mut new_completion_items =
to_proto::completion_item(insert_replace_support, &line_index, item.clone());
if completion_config.enable_imports_on_the_fly {
for new_item in &mut new_completion_items {