From ba7d0203df4efbff9cb26c812d5a2f24238c9884 Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Thu, 16 May 2024 17:44:32 +0200 Subject: [PATCH] feat(util): set_upvalue --- lua/lazyvim/util/inject.lua | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/lua/lazyvim/util/inject.lua b/lua/lazyvim/util/inject.lua index 81e0f57a..859afc81 100644 --- a/lua/lazyvim/util/inject.lua +++ b/lua/lazyvim/util/inject.lua @@ -31,4 +31,20 @@ function M.get_upvalue(func, name) end end +function M.set_upvalue(func, name, value) + local i = 1 + while true do + local n = debug.getupvalue(func, i) + if not n then + break + end + if n == name then + debug.setupvalue(func, i, value) + return + end + i = i + 1 + end + LazyVim.error("upvalue not found: " .. name) +end + return M