From 445179dca80b97361a4a724b386964c033f44009 Mon Sep 17 00:00:00 2001 From: hrsh7th Date: Tue, 14 Sep 2021 03:15:18 +0900 Subject: [PATCH] Fix #191 --- lua/cmp/core.lua | 5 ----- lua/cmp/entry.lua | 14 ++++++++++---- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/lua/cmp/core.lua b/lua/cmp/core.lua index b7b8454..2cff402 100644 --- a/lua/cmp/core.lua +++ b/lua/cmp/core.lua @@ -292,11 +292,6 @@ core.confirm = function(e, option, callback) local suspending = core.suspend() local ctx = core.get_context() - -- Try to resolve for only 100ms. - async.sync(function(done) - e:resolve(done) - end, 100) - -- Simulate `` behavior. local confirm = {} table.insert(confirm, keymap.t(string.rep('U', ctx.cursor.character - misc.to_utfindex(e.context.cursor_before_line, e:get_offset())))) diff --git a/lua/cmp/entry.lua b/lua/cmp/entry.lua index 1a6d086..4a90741 100644 --- a/lua/cmp/entry.lua +++ b/lua/cmp/entry.lua @@ -309,10 +309,16 @@ end ---Get resolved completion item if possible. ---@return lsp.CompletionItem entry.get_completion_item = function(self) - if self.resolved_completion_item then - return self.resolved_completion_item - end - return self.completion_item + return self.cache:ensure({ 'get_completion_item', (self.resolved_completion_item and 1 or 0) }, function() + if self.resolved_completion_item then + local completion_item = misc.copy(self.completion_item) + completion_item.detail = self.resolved_completion_item.detail or completion_item.detail + completion_item.documentation = self.resolved_completion_item.documentation or completion_item.documentation + completion_item.additionalTextEdits = self.resolved_completion_item.additionalTextEdits or completion_item.additionalTextEdits + return completion_item + end + return self.completion_item + end) end ---Create documentation