lsp: Support insertReplace
Fixes #4473
commit13126823f83cb90a3aabfc2326c0907d1ca2d921
authorBlaž Hrastnik <blaz@mxxn.io>
dateTue 8 Nov 2022, 20:48 (4 years ago)
parent188aff0
helix-lsp/src/client.rs+1
@@ -311,6 +311,7 @@ impl Client {
311311 String::from("additionalTextEdits"),
312312 ],
313313 }),
314+ insert_replace_support: Some(true),
314315 ..Default::default()
315316 }),
316317 completion_item_kind: Some(lsp::CompletionItemKindCapability {
helix-term/src/ui/completion.rs+2−1
@@ -113,7 +113,8 @@ impl Completion {
113113 let edit = match edit {
114114 lsp::CompletionTextEdit::Edit(edit) => edit.clone(),
115115 lsp::CompletionTextEdit::InsertAndReplace(item) => {
116− unimplemented!("completion: insert_and_replace {:?}", item)
116+ // TODO: support using "insert" instead of "replace" via user config
117+ lsp::TextEdit::new(item.replace, item.new_text.clone())
117118 }
118119 };
119120