mirror of https://github.com/folke/lazy.nvim.git
feat(ui): show new version that is available instead of general message
This commit is contained in:
parent
a9de5910f2
commit
34e2c78e06
|
@ -19,11 +19,11 @@ function M.fast_check(opts)
|
|||
opts = opts or {}
|
||||
for _, plugin in pairs(Config.plugins) do
|
||||
if not plugin.pin and plugin._.installed then
|
||||
plugin._.has_updates = nil
|
||||
plugin._.updates = nil
|
||||
local info = Git.info(plugin.dir)
|
||||
local ok, target = pcall(Git.get_target, plugin)
|
||||
if ok and info and target and info.commit ~= target.commit then
|
||||
plugin._.has_updates = true
|
||||
plugin._.updates = { from = info, to = target }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -45,7 +45,7 @@ function M.report(notify)
|
|||
local lines = {}
|
||||
M.updated = {}
|
||||
for _, plugin in pairs(Config.plugins) do
|
||||
if plugin._.has_updates then
|
||||
if plugin._.updates then
|
||||
table.insert(M.updated, plugin.name)
|
||||
if not vim.tbl_contains(M.reported, plugin.name) then
|
||||
table.insert(lines, "- **" .. plugin.name .. "**")
|
||||
|
|
|
@ -183,7 +183,7 @@ end
|
|||
---@param plugins? LazyPlugin[]
|
||||
function M.clear(plugins)
|
||||
for _, plugin in pairs(plugins or Config.plugins) do
|
||||
plugin._.has_updates = nil
|
||||
plugin._.updates = nil
|
||||
plugin._.updated = nil
|
||||
plugin._.cloned = nil
|
||||
plugin._.dirty = nil
|
||||
|
|
|
@ -35,7 +35,9 @@ M.log = {
|
|||
local info = assert(Git.info(self.plugin.dir))
|
||||
local target = assert(Git.get_target(self.plugin))
|
||||
assert(target.commit, self.plugin.name .. " " .. target.branch)
|
||||
self.plugin._.has_updates = target.commit ~= info.commit
|
||||
if target.commit ~= info.commit then
|
||||
self.plugin._.updates = { from = info, to = target }
|
||||
end
|
||||
table.insert(args, info.commit .. ".." .. target.commit)
|
||||
else
|
||||
vim.list_extend(args, opts.args or Config.options.git.log)
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
---@field dirty? boolean
|
||||
---@field updated? {from:string, to:string}
|
||||
---@field is_local boolean
|
||||
---@field has_updates? boolean
|
||||
---@field updates? {from:GitInfo, to:GitInfo}
|
||||
---@field cloned? boolean
|
||||
---@field kind? LazyPluginKind
|
||||
---@field dep? boolean True if this plugin is only in the spec as a dependency
|
||||
|
|
|
@ -345,10 +345,17 @@ function M:diagnostics(plugin)
|
|||
message = "updated from " .. plugin._.updated.from:sub(1, 7) .. " to " .. plugin._.updated.to:sub(1, 7),
|
||||
})
|
||||
end
|
||||
elseif plugin._.has_updates then
|
||||
self:diagnostic({
|
||||
message = "updates available",
|
||||
})
|
||||
elseif plugin._.updates then
|
||||
local version = plugin._.updates.to.version
|
||||
if version then
|
||||
self:diagnostic({
|
||||
message = "version " .. tostring(version) .. " is available",
|
||||
})
|
||||
else
|
||||
self:diagnostic({
|
||||
message = "updates available",
|
||||
})
|
||||
end
|
||||
end
|
||||
for _, task in ipairs(plugin._.tasks or {}) do
|
||||
if task:is_running() then
|
||||
|
|
|
@ -63,7 +63,7 @@ return {
|
|||
{
|
||||
---@param plugin LazyPlugin
|
||||
filter = function(plugin)
|
||||
return plugin._.has_updates
|
||||
return plugin._.updates
|
||||
end,
|
||||
title = "Updates",
|
||||
},
|
||||
|
|
Loading…
Reference in New Issue