From 25db26b3e36ac47e0af9e1c8baf290a5742b547e Mon Sep 17 00:00:00 2001 From: Oscar Wallberg Date: Thu, 7 May 2026 03:03:01 +0200 Subject: [PATCH] fix(pack): load plugin configs in declared order --- lua/pack.lua | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/lua/pack.lua b/lua/pack.lua index bf46e01..c805d48 100644 --- a/lua/pack.lua +++ b/lua/pack.lua @@ -266,8 +266,10 @@ end ---@param specs (string | ow.Pack.Spec)[] function M.setup(specs) local pack_specs = {} + local order = {} for _, spec in ipairs(specs) do local src = type(spec) == "string" and spec or spec.src + table.insert(order, src) if is_url(src) then table.insert(pack_specs, to_pack_spec(spec)) else @@ -302,15 +304,18 @@ function M.setup(specs) vim.cmd.packadd(plugin.name) end) - for _, plugin in pairs(M.plugins) do - if plugin.build then - local data = changed[plugin.src] - if data then - plugin.path = data.path - run_build(plugin) + for _, src in ipairs(order) do + local plugin = M.plugins[src] + if plugin then + if plugin.build then + local data = changed[plugin.src] + if data then + plugin.path = data.path + run_build(plugin) + end end + load(plugin.name, false) end - load(plugin.name, false) end vim.api.nvim_create_autocmd("PackChanged", {