This commit is contained in:
hrsh7th
2021-08-30 18:45:29 +09:00
parent a383a1b2e0
commit f32b80c0a6

View File

@@ -206,10 +206,10 @@ core.confirm = vim.schedule_wrap(function(e, option, callback)
debug.log('entry.confirm', e:get_completion_item()) debug.log('entry.confirm', e:get_completion_item())
local ctx = context.new() local ctx = context.new()
local keys = {} local restore = {}
table.insert(keys, keymap.t(string.rep('<BS>', ctx.cursor.character - e:get_insert_range().start.character))) table.insert(restore, keymap.t(string.rep('<C-g>U<Left><Del>', ctx.cursor.character - misc.to_utfindex(e.context.cursor_before_line, e:get_offset()))))
table.insert(keys, string.sub(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(keys, ''), 'n', function() keymap.feedkeys(table.concat(restore, ''), 'n', function()
--@see https://github.com/microsoft/vscode/blob/main/src/vs/editor/contrib/suggest/suggestController.ts#L334 --@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 if #(misc.safe(e:get_completion_item().additionalTextEdits) or {}) == 0 then
local pre = context.new() local pre = context.new()
@@ -258,10 +258,10 @@ core.confirm = vim.schedule_wrap(function(e, option, callback)
local keys = {} local keys = {}
if e.context.cursor.character < completion_item.textEdit.range['end'].character then if e.context.cursor.character < completion_item.textEdit.range['end'].character then
table.insert(keys, keymap.t(string.rep('<C-g>U<Right><BS>', completion_item.textEdit.range['end'].character - e.context.cursor.character))) table.insert(keys, keymap.t(string.rep('<Del>', completion_item.textEdit.range['end'].character - e.context.cursor.character)))
end end
if completion_item.textEdit.range.start.character < e.context.cursor.character then if completion_item.textEdit.range.start.character < e.context.cursor.character then
table.insert(keys, keymap.t(string.rep('<BS>', e.context.cursor.character - completion_item.textEdit.range.start.character))) table.insert(keys, keymap.t(string.rep('<C-g>U<Left><Del>', e.context.cursor.character - completion_item.textEdit.range.start.character)))
end end
if is_snippet then if is_snippet then