From baaf8ddfff6cf0c2b8729c2b76b2b140cb40d382 Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Tue, 17 Jan 2023 13:54:34 +0100 Subject: [PATCH] fix(spec): when overriding a spec by name that has not been imported yet, show an error when needed --- lua/lazy/core/plugin.lua | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lua/lazy/core/plugin.lua b/lua/lazy/core/plugin.lua index bbc68ad..3bb6ee5 100644 --- a/lua/lazy/core/plugin.lua +++ b/lua/lazy/core/plugin.lua @@ -57,7 +57,7 @@ end function Spec:add(plugin, results, is_dep) -- check if we already processed this spec. Can happen when a user uses the same instance of a spec in multiple specs -- see https://github.com/folke/lazy.nvim/issues/45 - if plugin._ then + if rawget(plugin, "_") then if results then table.insert(results, plugin.name) end @@ -119,6 +119,9 @@ function Spec:add(plugin, results, is_dep) plugin.dependencies = plugin.dependencies and self:normalize(plugin.dependencies, {}, true) or nil if self.plugins[plugin.name] then plugin = self:merge(self.plugins[plugin.name], plugin) + elseif is_ref then + self:error("Plugin spec for **" .. plugin.name .. "** not found.\n```lua\n" .. vim.inspect(plugin) .. "\n```") + return end self.plugins[plugin.name] = plugin if results then