diff --git a/lua/cmp/core.lua b/lua/cmp/core.lua index ba1c2f3..5f1023a 100644 --- a/lua/cmp/core.lua +++ b/lua/cmp/core.lua @@ -149,7 +149,7 @@ end ---Invoke completion ---@param ctx cmp.Context core.complete = function(ctx) - local callback = vim.schedule_wrap(function() + local callback = function() local new = context.new(ctx) if new:changed(new.prev_context) then core.complete(new) @@ -157,7 +157,7 @@ core.complete = function(ctx) core.filter.timeout = 50 core.filter() end - end) + end for _, s in ipairs(core.get_sources()) do s:complete(ctx, callback) end diff --git a/lua/cmp/source.lua b/lua/cmp/source.lua index f103273..3d84dc3 100644 --- a/lua/cmp/source.lua +++ b/lua/cmp/source.lua @@ -288,7 +288,7 @@ source.complete = function(self, ctx, callback) option = self:get_option(), completion_context = completion_context, }, - self.complete_dedup(function(response) + self.complete_dedup(vim.schedule_wrap(function(response) self.revision = self.revision + 1 if (misc.safe(response) and misc.safe(response.items) or misc.safe(response)) ~= nil then debug.log(self:get_debug_name(), 'retrieve', #(response.items or response)) @@ -308,7 +308,7 @@ source.complete = function(self, ctx, callback) self.status = prev_status end callback() - end) + end)) ) return true end