From 25a4d9c0be5c6f7d66412f6b81feb6196806035f Mon Sep 17 00:00:00 2001 From: hrsh7th Date: Sun, 29 Aug 2021 22:23:54 +0900 Subject: [PATCH] Fix multiple setup.buffer --- lua/cmp/config.lua | 4 ++-- lua/cmp/core.lua | 11 ++++++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/lua/cmp/config.lua b/lua/cmp/config.lua index 80ff750..0a78227 100644 --- a/lua/cmp/config.lua +++ b/lua/cmp/config.lua @@ -26,9 +26,9 @@ end ---@param c cmp.ConfigSchema ---@param bufnr number|nil config.set_buffer = function(c, bufnr) + local revision = (config.buffers[bufnr] or {}).revision or 1 config.buffers[bufnr] = c - config.buffers[bufnr].revision = config.buffers[bufnr].revision or 1 - config.buffers[bufnr].revision = config.buffers[bufnr].revision + 1 + config.buffers[bufnr].revision = revision + 1 end ---@return cmp.ConfigSchema diff --git a/lua/cmp/core.lua b/lua/cmp/core.lua index 14c8db5..9b2deb0 100644 --- a/lua/cmp/core.lua +++ b/lua/cmp/core.lua @@ -48,10 +48,17 @@ end core.get_context = function(option) local prev = core.context:clone() prev.prev_context = nil - core.context = context.new(prev, option) + local ctx = context.new(prev, option) + core.set_context(ctx) return core.context end +---Set new context +---@param ctx cmp.Context +core.set_context = function(ctx) + core.context = ctx +end + ---Get sources that sorted by priority ---@param statuses cmp.SourceStatus[] ---@return cmp.Source[] @@ -149,6 +156,8 @@ end ---Invoke completion ---@param ctx cmp.Context core.complete = function(ctx) + core.set_context(ctx) + local callback = function() local new = context.new(ctx) if new:changed(new.prev_context) then