mirror of
https://github.com/folke/lazy.nvim.git
synced 2025-04-19 04:46:45 +00:00
feat(plugin): added Plugin.priority
for start plugins
This commit is contained in:
parent
eec0485d45
commit
edf8310288
4 changed files with 50 additions and 7 deletions
|
@ -4,6 +4,8 @@ local Handler = require("lazy.core.handler")
|
|||
|
||||
local M = {}
|
||||
|
||||
local DEFAULT_PRIORITY = 50
|
||||
|
||||
---@type LazyPlugin[]
|
||||
M.loading = {}
|
||||
M.init_done = false
|
||||
|
@ -73,8 +75,9 @@ function M.startup()
|
|||
|
||||
-- 2. load start plugin
|
||||
Util.track({ start = "start" })
|
||||
for _, plugin in pairs(Config.plugins) do
|
||||
if plugin.lazy == false and not plugin._.loaded then
|
||||
for _, plugin in ipairs(M.get_start_plugins()) do
|
||||
-- plugin may be loaded by another plugin in the meantime
|
||||
if not plugin._.loaded then
|
||||
M.load(plugin, { start = "start" })
|
||||
end
|
||||
end
|
||||
|
@ -103,6 +106,22 @@ function M.startup()
|
|||
Util.track()
|
||||
end
|
||||
|
||||
function M.get_start_plugins()
|
||||
---@type LazyPlugin[]
|
||||
local start = {}
|
||||
for _, plugin in pairs(Config.plugins) do
|
||||
if plugin.lazy == false and not plugin._.loaded then
|
||||
start[#start + 1] = plugin
|
||||
end
|
||||
end
|
||||
table.sort(start, function(a, b)
|
||||
local ap = a.priority or DEFAULT_PRIORITY
|
||||
local bp = b.priority or DEFAULT_PRIORITY
|
||||
return ap > bp
|
||||
end)
|
||||
return start
|
||||
end
|
||||
|
||||
---@class Loader
|
||||
---@param plugins string|LazyPlugin|string[]|LazyPlugin[]
|
||||
---@param reason {[string]:string}
|
||||
|
|
|
@ -1,6 +1,14 @@
|
|||
return {
|
||||
-- the colorscheme should be available when starting Neovim
|
||||
"folke/tokyonight.nvim",
|
||||
{
|
||||
"folke/tokyonight.nvim",
|
||||
lazy = false, -- make sure we load this during startup if it is your main colorscheme
|
||||
priority = 1000, -- make sure to load this before all the other start plugins
|
||||
config = function()
|
||||
-- load the colorscheme here
|
||||
vim.cmd([[colorscheme tokyonight]])
|
||||
end,
|
||||
},
|
||||
|
||||
-- I have a separate config.mappings file where I require which-key.
|
||||
-- With lazy the plugin will be automatically loaded when it is required somewhere
|
||||
|
|
|
@ -41,6 +41,7 @@
|
|||
---@field enabled? boolean|(fun():boolean)
|
||||
---@field cond? boolean|(fun():boolean)
|
||||
---@field lazy? boolean
|
||||
---@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
|
||||
|
||||
---@class LazyPlugin: LazyPluginBase,LazyPluginHandlers,LazyPluginHooks,LazyPluginRef
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue