on master help sign in
resolve completions before applying transactions
30ff7f8Pascal Kuthe
helix-term/src/ui/completion.rs+11−11
@@ -253,6 +253,17 @@ impl Completion {
253 // always present here
253 // always present here
254 let item = item.unwrap();
254 let item = item.unwrap();
255
255
256+ // apply additional edits, mostly used to auto import unqualified types
257+ let resolved_item = if item
258+ .additional_text_edits
259+ .as_ref()
260+ .map(|edits| !edits.is_empty())
261+ .unwrap_or(false)
262+ {
263+ None
264+ } else {
265+ Self::resolve_completion_item(doc, item.clone())
266+ };
256
267
257 // if more text was entered, remove it
268 // if more text was entered, remove it
258 doc.restore(view, &savepoint, true);
269 doc.restore(view, &savepoint, true);
@@ -272,17 +283,6 @@ impl Completion {
272 changes: completion_changes(&transaction, trigger_offset),
283 changes: completion_changes(&transaction, trigger_offset),
273 });
284 });
274
285
275− // apply additional edits, mostly used to auto import unqualified types
276− let resolved_item = if item
277− .additional_text_edits
278− .as_ref()
279− .map(|edits| !edits.is_empty())
280− .unwrap_or(false)
281− {
282− None
283− } else {
284− Self::resolve_completion_item(doc, item.clone())
285− };
286 if let Some(additional_edits) = resolved_item
286 if let Some(additional_edits) = resolved_item
287 .as_ref()
287 .as_ref()
288 .and_then(|item| item.additional_text_edits.as_ref())
288 .and_then(|item| item.additional_text_edits.as_ref())