From 35fa7aea2ca2c225ee77eb6a40d5ac1e053cbdc9 Mon Sep 17 00:00:00 2001 From: Oscar Wallberg Date: Wed, 15 Apr 2026 05:56:28 +0200 Subject: [PATCH] refactor(pack): simplify plugin loading --- lua/pack.lua | 53 +++++++++++++++++++++++++--------------------------- 1 file changed, 25 insertions(+), 28 deletions(-) diff --git a/lua/pack.lua b/lua/pack.lua index 6adc59d..45dc620 100644 --- a/lua/pack.lua +++ b/lua/pack.lua @@ -42,20 +42,35 @@ local function normalize_name(name) return name:lower() end ----@param plugin ow.Pack.Plugin -local function load(plugin) - local name = normalize_name(plugin.name) - if not name then - log.error("Invalid plugin name: %s", plugin.name) +---@param name string +---@return string? +local function plugin_config_path(name) + local normalized = normalize_name(name) + if not normalized then + log.error("Invalid plugin name: %s", name) + return + end + + local path = vim.fs.joinpath(config_dir, "plugins", normalized .. ".lua") + + return path +end + +---@param name string +---@param required boolean +local function load(name, required) + local path = plugin_config_path(name) + if not path then return end - local path = vim.fs.joinpath(config_dir, "plugins", name .. ".lua") if vim.uv.fs_stat(path) then local ok, err = exec(path) if not ok then - log.error("Failed to load %s: %s", plugin.name, err) + log.error("Failed to load %s: %s", name, err) end + elseif required then + log.error("No config file found for %s", name) end end @@ -162,25 +177,7 @@ end ---@param name string function M.reload(name) - local normalized = normalize_name(name) - if not normalized then - log.error("Invalid plugin name: %s", name) - return - end - - local path = string.format("%s/lua/plugins/%s.lua", config_dir, normalized) - - if not vim.uv.fs_stat(path) then - log.error("No config file found for %s", name) - return - end - - local ok, err = exec(path) - if ok then - log.info("Reloaded %s", name) - else - log.error("Failed to reload %s: %s", name, err) - end + load(name, true) end function M.watch() @@ -188,7 +185,7 @@ function M.watch() return end - local plugins_dir = vim.fs.joinpath(config_dir, "lua/plugins") + local plugins_dir = vim.fs.joinpath(config_dir, "plugins") local err_msg, err_name watcher, err_msg, err_name = vim.uv.new_fs_event() @@ -292,7 +289,7 @@ function M.setup(specs) if ev then process_events(plugin, ev) end - load(plugin) + load(plugin.name, false) end end