From 08797d9645a239fbd16ccd33414f55423ffffce5 Mon Sep 17 00:00:00 2001 From: hrsh7th Date: Mon, 9 Aug 2021 21:12:25 +0900 Subject: [PATCH] Fix word insersion (it should be re-checked) --- lua/cmp/core.lua | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lua/cmp/core.lua b/lua/cmp/core.lua index e5b3944..b9031af 100644 --- a/lua/cmp/core.lua +++ b/lua/cmp/core.lua @@ -239,7 +239,7 @@ core.confirm = vim.schedule_wrap(function(e, option, callback) local completion_item = misc.copy(e:get_completion_item()) if not misc.safe(completion_item.textEdit) then completion_item.textEdit = {} - completion_item.textEdit.newText = misc.safe(completion_item.insertText) or completion_item.label + completion_item.textEdit.newText = misc.safe(completion_item.insertText) or completion_item.word or completion_item.label end local behavior = option.behavior or config.get().confirmation.default_behavior if behavior == types.cmp.ConfirmBehavior.Replace then @@ -248,7 +248,9 @@ core.confirm = vim.schedule_wrap(function(e, option, callback) completion_item.textEdit.range = e:get_insert_range() end - local is_snippet = vim.lsp.util.parse_snippet(completion_item.textEdit.newText) ~= completion_item.textEdit.newText + local is_snippet = true + is_snippet = is_snippet and completion_item.insertTextFormat == types.lsp.InsertTextFormat.Snippet + is_snippet = is_snippet and vim.lsp.util.parse_snippet(completion_item.textEdit.newText) ~= completion_item.textEdit.newText local keys = '' if completion_item.textEdit.range['end'].character > e.context.cursor.character then @@ -262,7 +264,7 @@ core.confirm = vim.schedule_wrap(function(e, option, callback) keys = keys .. 'u' .. e:get_word() .. 'u' keys = keys .. string.rep('', vim.fn.strchars(e:get_word())) else - keys = keys .. 'u' .. e:get_word() .. 'u' + keys = keys .. 'u' .. completion_item.textEdit.newText .. 'u' end keymap.feedkeys( keys,