diff --git a/lua/lazyvim/util/init.lua b/lua/lazyvim/util/init.lua index e23f9dfd..d8f485ed 100644 --- a/lua/lazyvim/util/init.lua +++ b/lua/lazyvim/util/init.lua @@ -268,4 +268,17 @@ for _, level in ipairs({ "info", "warn", "error" }) do end end +local cache = {} ---@type table +---@generic T: fun() +---@param fn T +---@return T +function M.memoize(fn) + return function(...) + local key = vim.inspect({ ... }) + if cache[key] == nil then + cache[key] = fn(...) + end + return cache[key] + end +end return M