From d8a5829fdad1d435fd74d65743df5d53d4a845d2 Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Sat, 27 May 2023 15:19:11 +0200 Subject: [PATCH] feat(loader): when reloading, always re-source loaded vimscript files. See #445 --- lua/lazy/core/loader.lua | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/lua/lazy/core/loader.lua b/lua/lazy/core/loader.lua index 32067b3..69f2b3e 100644 --- a/lua/lazy/core/loader.lua +++ b/lua/lazy/core/loader.lua @@ -254,8 +254,27 @@ function M.reload(plugin) end end + -- reload any vimscript files for this plugin + local scripts = vim.fn.getscriptinfo({ name = ".vim" }) + local loaded_scripts = {} + for _, s in ipairs(scripts) do + ---@type string + local path = s.name + if + path:sub(-4) == ".vim" + and path:find(plugin.dir, 1, true) == 1 + and not path:find("/plugin/", 1, true) + and not path:find("/ftplugin/", 1, true) + then + loaded_scripts[#loaded_scripts + 1] = path + end + end + if load then M.load(plugin, { start = "reload" }) + for _, s in ipairs(loaded_scripts) do + M.source(s) + end end end