From f32b80c0a6ba7be341e2fc29fec7607429ab356d Mon Sep 17 00:00:00 2001 From: hrsh7th Date: Mon, 30 Aug 2021 18:45:29 +0900 Subject: [PATCH] Fix #120 --- lua/cmp/core.lua | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lua/cmp/core.lua b/lua/cmp/core.lua index fae4d15..b6e62a9 100644 --- a/lua/cmp/core.lua +++ b/lua/cmp/core.lua @@ -206,10 +206,10 @@ core.confirm = vim.schedule_wrap(function(e, option, callback) debug.log('entry.confirm', e:get_completion_item()) local ctx = context.new() - local keys = {} - table.insert(keys, keymap.t(string.rep('', ctx.cursor.character - e:get_insert_range().start.character))) - table.insert(keys, string.sub(e.context.cursor_before_line, e:get_offset())) - keymap.feedkeys(table.concat(keys, ''), 'n', function() + local restore = {} + table.insert(restore, keymap.t(string.rep('U', ctx.cursor.character - misc.to_utfindex(e.context.cursor_before_line, e:get_offset())))) + table.insert(restore, string.sub(e.context.cursor_before_line, e:get_offset())) + keymap.feedkeys(table.concat(restore, ''), 'n', function() --@see https://github.com/microsoft/vscode/blob/main/src/vs/editor/contrib/suggest/suggestController.ts#L334 if #(misc.safe(e:get_completion_item().additionalTextEdits) or {}) == 0 then local pre = context.new() @@ -258,10 +258,10 @@ core.confirm = vim.schedule_wrap(function(e, option, callback) local keys = {} if e.context.cursor.character < completion_item.textEdit.range['end'].character then - table.insert(keys, keymap.t(string.rep('U', completion_item.textEdit.range['end'].character - e.context.cursor.character))) + table.insert(keys, keymap.t(string.rep('', completion_item.textEdit.range['end'].character - e.context.cursor.character))) end if completion_item.textEdit.range.start.character < e.context.cursor.character then - table.insert(keys, keymap.t(string.rep('', e.context.cursor.character - completion_item.textEdit.range.start.character))) + table.insert(keys, keymap.t(string.rep('U', e.context.cursor.character - completion_item.textEdit.range.start.character))) end if is_snippet then