feat(plugin): added support for `weak` specs. They will not be included in the final spec if not specified somwhere else

This commit is contained in:
Folke Lemaitre 2023-05-22 14:24:18 +02:00
parent b382495d51
commit 8564f6d22b
No known key found for this signature in database
GPG Key ID: 41F8B1FBACAE2040
2 changed files with 8 additions and 0 deletions

View File

@ -141,6 +141,13 @@ function Spec:warn(msg)
end end
function Spec:fix_disabled() function Spec:fix_disabled()
-- handle weak plugins
for _, plugin in pairs(self.plugins) do
if plugin.weak and not plugin._.super then
self.plugins[plugin.name] = nil
end
end
---@type table<string,string[]> plugin to parent plugin ---@type table<string,string[]> plugin to parent plugin
local dep_of = {} local dep_of = {}

View File

@ -47,6 +47,7 @@
---@field dir string ---@field dir string
---@field enabled? boolean|(fun():boolean) ---@field enabled? boolean|(fun():boolean)
---@field cond? boolean|(fun():boolean) ---@field cond? boolean|(fun():boolean)
---@field weak? boolean If set, then this plugin will not be added unless it is added somewhere else
---@field lazy? boolean ---@field lazy? boolean
---@field priority? number Only useful for lazy=false plugins to force loading certain plugins first. Default priority is 50 ---@field priority? number Only useful for lazy=false plugins to force loading certain plugins first. Default priority is 50
---@field dev? boolean If set, then link to the respective folder under your ~/projects ---@field dev? boolean If set, then link to the respective folder under your ~/projects