fix(loader): prevent loading plugins when loading specs

This commit is contained in:
Folke Lemaitre 2023-01-11 23:07:58 +01:00
parent 9d494e0594
commit e1cd9cd0ad
No known key found for this signature in database
GPG Key ID: 41F8B1FBACAE2040
2 changed files with 9 additions and 8 deletions

View File

@ -72,24 +72,22 @@ end
function M.check_autoload(modname, modpath)
local start = uv.hrtime()
M.stats.autoload.total = M.stats.autoload.total + 1
-- check plugins. Again fast, since we check the plugin name from the path.
-- only needed when the plugin mod has been loaded
---@type LazyCorePlugin
local Plugin = package.loaded["lazy.core.plugin"]
if Plugin then
if Plugin and not Plugin.loading then
local plugin = Plugin.find(modpath)
if plugin and modpath:find(plugin.dir, 1, true) == 1 then
-- we're not interested in loader time, so calculate delta here
M.stats.autoload.time = M.stats.autoload.time + uv.hrtime() - start
-- only autoload when plugins have been loaded
if not vim.tbl_isempty(require("lazy.core.config").plugins) then
if not plugin._.loaded then
if plugin.module == false then
error("Plugin " .. plugin.name .. " is not loaded and is configured with module=false")
end
require("lazy.core.loader").load(plugin, { require = modname })
end
end
return true
end
end

View File

@ -5,6 +5,7 @@ local Cache = require("lazy.core.cache")
---@class LazyCorePlugin
local M = {}
M.loading = false
local list_merge = { "dependencies" }
vim.list_extend(list_merge, vim.tbl_values(Handler.types))
@ -330,6 +331,7 @@ function M.update_state()
end
function M.load()
M.loading = true
-- load specs
Util.track("spec")
Config.spec = Spec.new()
@ -363,6 +365,7 @@ function M.load()
M.update_state()
Util.track()
require("lazy.core.cache").indexed_unloaded = false
M.loading = false
end
-- Finds the plugin that has this path