From 1579df8a04d778ec98e5a5cc909d805d62746f35 Mon Sep 17 00:00:00 2001 From: Steve Poulton Date: Fri, 29 Jan 2021 22:51:14 +0000 Subject: [PATCH 1/3] Support completionItem/resolve for additional text edits --- lua/completion.lua | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lua/completion.lua b/lua/completion.lua index 023a0d0..149631d 100644 --- a/lua/completion.lua +++ b/lua/completion.lua @@ -114,6 +114,15 @@ local function applyAddtionalTextEdits(completed_item) item.additionalTextEdits ) vim.lsp.util.apply_text_edits(edits, bufnr) + else + vim.lsp.buf_request(bufnr, "completionItem/resolve", item, function(err, _, result) + if err or not result then + return + end + if result.additionalTextEdits then + vim.lsp.util.apply_text_edits(result.additionalTextEdits, bufnr) + end + end) end end end From c354bc32ec1d45fb9f8634dbef1e3a6f34d66c94 Mon Sep 17 00:00:00 2001 From: Steve Poulton Date: Thu, 24 Jun 2021 20:33:24 +0100 Subject: [PATCH 2/3] Catch invalid true condition when additionalTextEdits is {} --- lua/completion.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/completion.lua b/lua/completion.lua index 149631d..0fcc206 100644 --- a/lua/completion.lua +++ b/lua/completion.lua @@ -107,7 +107,7 @@ local function applyAddtionalTextEdits(completed_item) } }) else - if item.additionalTextEdits then + if next(item.additionalTextEdits) then local bufnr = api.nvim_get_current_buf() local edits = vim.tbl_filter( function(x) return x.range.start.line ~= (lnum - 1) end, From 72fa681130f66708c4f9555ba2d47eada78c716a Mon Sep 17 00:00:00 2001 From: Steve Poulton Date: Tue, 6 Jul 2021 17:00:49 +0100 Subject: [PATCH 3/3] Fix case where item is null --- lua/completion.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/completion.lua b/lua/completion.lua index 0fcc206..10b98ab 100644 --- a/lua/completion.lua +++ b/lua/completion.lua @@ -107,7 +107,7 @@ local function applyAddtionalTextEdits(completed_item) } }) else - if next(item.additionalTextEdits) then + if next(item.additionalTextEdits or {}) then local bufnr = api.nvim_get_current_buf() local edits = vim.tbl_filter( function(x) return x.range.start.line ~= (lnum - 1) end,