diff --git a/lua/tabnine/utils.lua b/lua/tabnine/utils.lua index 929b4e3..ab9e24f 100644 --- a/lua/tabnine/utils.lua +++ b/lua/tabnine/utils.lua @@ -1,16 +1,20 @@ local fn = vim.fn local api = vim.api - +local unpack = table.unpack or unpack +local pack = table.pack or vim.F.pack_len local M = {} local last_changedtick = vim.b.changedtick +---@param func fun(...: unknown): any the callback +---@param delay integer delay in milliseconds +---@return fun(...: unknown) function M.debounce(func, delay) local timer_id return function(...) if timer_id then fn.timer_stop(timer_id) end - local args = { ... } + local args = pack(...) timer_id = fn.timer_start(delay, function() - func(unpack(args)) + return func(unpack(args, 1, args.n)) end) end end