From 712af9f50bbba4313b6247dedd5a1333391127df Mon Sep 17 00:00:00 2001 From: Liam Dyer Date: Sun, 19 Jan 2025 15:47:54 -0500 Subject: [PATCH] fix: shallow copy luasnip items Closes #1006 --- lua/blink/cmp/sources/snippets/luasnip.lua | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lua/blink/cmp/sources/snippets/luasnip.lua b/lua/blink/cmp/sources/snippets/luasnip.lua index 91716d25..431a83b8 100644 --- a/lua/blink/cmp/sources/snippets/luasnip.lua +++ b/lua/blink/cmp/sources/snippets/luasnip.lua @@ -6,6 +6,8 @@ --- @field config blink.cmp.LuasnipSourceOptions --- @field items_cache table +local utils = require('blink.cmp.lib.utils') + --- @type blink.cmp.LuasnipSource --- @diagnostic disable-next-line: missing-fields local source = {} @@ -55,6 +57,9 @@ function source:get_completions(ctx, callback) -- gather snippets from relevant filetypes, including extensions for _, ft in ipairs(require('luasnip.util.util').get_snippet_filetypes()) do if self.items_cache[ft] then + for _, item in ipairs(self.items_cache[ft]) do + table.insert(items, utils.shallow_copy(item)) + end vim.list_extend(items, self.items_cache[ft]) goto continue end @@ -94,7 +99,7 @@ function source:get_completions(ctx, callback) -- populate snippet cache for this filetype table.insert(self.items_cache[ft], item) -- while we're at it, also populate completion items for this request - table.insert(items, item) + table.insert(items, utils.shallow_copy(item)) end ::continue::