mirror of https://github.com/folke/lazy.nvim.git
feat: added `opts.git.cooldown` to allow updating plugins on slow connections. Fixes #1656
This commit is contained in:
parent
839f9e78e7
commit
d5686efbd0
|
@ -41,6 +41,10 @@ M.defaults = {
|
|||
rate = 2,
|
||||
duration = 5 * 1000, -- in ms
|
||||
},
|
||||
-- Time in seconds to wait before running fetch again for a plugin.
|
||||
-- Repeated update/check operations will not run again until this
|
||||
-- cooldown period has passed.
|
||||
cooldown = 0,
|
||||
},
|
||||
pkg = {
|
||||
enabled = true,
|
||||
|
|
|
@ -40,6 +40,15 @@ function throttle.wait()
|
|||
end
|
||||
end
|
||||
|
||||
---@param plugin LazyPlugin
|
||||
local function cooldown(plugin)
|
||||
if not plugin._.last_check then
|
||||
return false
|
||||
end
|
||||
local delta = (vim.uv.now() - plugin._.last_check) / 1000
|
||||
return delta < Config.options.git.cooldown
|
||||
end
|
||||
|
||||
---@type table<string, LazyTaskDef>
|
||||
local M = {}
|
||||
|
||||
|
@ -266,7 +275,7 @@ M.status = {
|
|||
-- fetches all needed origin branches
|
||||
M.fetch = {
|
||||
skip = function(plugin)
|
||||
return not plugin._.installed or plugin._.is_local
|
||||
return not plugin._.installed or plugin._.is_local or cooldown(plugin)
|
||||
end,
|
||||
|
||||
---@async
|
||||
|
@ -287,6 +296,11 @@ M.fetch = {
|
|||
self:spawn("git", {
|
||||
args = args,
|
||||
cwd = self.plugin.dir,
|
||||
on_exit = function(ok)
|
||||
if ok then
|
||||
self.plugin._.last_check = vim.uv.now()
|
||||
end
|
||||
end,
|
||||
})
|
||||
end,
|
||||
}
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
---@field tasks? LazyTask[]
|
||||
---@field updated? {from:string, to:string}
|
||||
---@field updates? {from:GitInfo, to:GitInfo}
|
||||
---@field last_check? number
|
||||
---@field working? boolean
|
||||
---@field pkg? LazyPkg
|
||||
|
||||
|
|
Loading…
Reference in New Issue