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 {}
|
opts = opts or {}
|
||||||
for _, plugin in pairs(Config.plugins) do
|
for _, plugin in pairs(Config.plugins) do
|
||||||
if not plugin.pin and plugin._.installed then
|
if not plugin.pin and plugin._.installed then
|
||||||
plugin._.has_updates = nil
|
plugin._.updates = nil
|
||||||
local info = Git.info(plugin.dir)
|
local info = Git.info(plugin.dir)
|
||||||
local ok, target = pcall(Git.get_target, plugin)
|
local ok, target = pcall(Git.get_target, plugin)
|
||||||
if ok and info and target and info.commit ~= target.commit then
|
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
|
end
|
||||||
end
|
end
|
||||||
|
@ -45,7 +45,7 @@ function M.report(notify)
|
||||||
local lines = {}
|
local lines = {}
|
||||||
M.updated = {}
|
M.updated = {}
|
||||||
for _, plugin in pairs(Config.plugins) do
|
for _, plugin in pairs(Config.plugins) do
|
||||||
if plugin._.has_updates then
|
if plugin._.updates then
|
||||||
table.insert(M.updated, plugin.name)
|
table.insert(M.updated, plugin.name)
|
||||||
if not vim.tbl_contains(M.reported, plugin.name) then
|
if not vim.tbl_contains(M.reported, plugin.name) then
|
||||||
table.insert(lines, "- **" .. plugin.name .. "**")
|
table.insert(lines, "- **" .. plugin.name .. "**")
|
||||||
|
|
|
@ -183,7 +183,7 @@ end
|
||||||
---@param plugins? LazyPlugin[]
|
---@param plugins? LazyPlugin[]
|
||||||
function M.clear(plugins)
|
function M.clear(plugins)
|
||||||
for _, plugin in pairs(plugins or Config.plugins) do
|
for _, plugin in pairs(plugins or Config.plugins) do
|
||||||
plugin._.has_updates = nil
|
plugin._.updates = nil
|
||||||
plugin._.updated = nil
|
plugin._.updated = nil
|
||||||
plugin._.cloned = nil
|
plugin._.cloned = nil
|
||||||
plugin._.dirty = nil
|
plugin._.dirty = nil
|
||||||
|
|
|
@ -35,7 +35,9 @@ M.log = {
|
||||||
local info = assert(Git.info(self.plugin.dir))
|
local info = assert(Git.info(self.plugin.dir))
|
||||||
local target = assert(Git.get_target(self.plugin))
|
local target = assert(Git.get_target(self.plugin))
|
||||||
assert(target.commit, self.plugin.name .. " " .. target.branch)
|
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)
|
table.insert(args, info.commit .. ".." .. target.commit)
|
||||||
else
|
else
|
||||||
vim.list_extend(args, opts.args or Config.options.git.log)
|
vim.list_extend(args, opts.args or Config.options.git.log)
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
---@field dirty? boolean
|
---@field dirty? boolean
|
||||||
---@field updated? {from:string, to:string}
|
---@field updated? {from:string, to:string}
|
||||||
---@field is_local boolean
|
---@field is_local boolean
|
||||||
---@field has_updates? boolean
|
---@field updates? {from:GitInfo, to:GitInfo}
|
||||||
---@field cloned? boolean
|
---@field cloned? boolean
|
||||||
---@field kind? LazyPluginKind
|
---@field kind? LazyPluginKind
|
||||||
---@field dep? boolean True if this plugin is only in the spec as a dependency
|
---@field dep? boolean True if this plugin is only in the spec as a dependency
|
||||||
|
|
|
@ -345,11 +345,18 @@ function M:diagnostics(plugin)
|
||||||
message = "updated from " .. plugin._.updated.from:sub(1, 7) .. " to " .. plugin._.updated.to:sub(1, 7),
|
message = "updated from " .. plugin._.updated.from:sub(1, 7) .. " to " .. plugin._.updated.to:sub(1, 7),
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
elseif plugin._.has_updates then
|
elseif plugin._.updates then
|
||||||
|
local version = plugin._.updates.to.version
|
||||||
|
if version then
|
||||||
|
self:diagnostic({
|
||||||
|
message = "version " .. tostring(version) .. " is available",
|
||||||
|
})
|
||||||
|
else
|
||||||
self:diagnostic({
|
self:diagnostic({
|
||||||
message = "updates available",
|
message = "updates available",
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
end
|
||||||
for _, task in ipairs(plugin._.tasks or {}) do
|
for _, task in ipairs(plugin._.tasks or {}) do
|
||||||
if task:is_running() then
|
if task:is_running() then
|
||||||
self:diagnostic({
|
self:diagnostic({
|
||||||
|
|
|
@ -63,7 +63,7 @@ return {
|
||||||
{
|
{
|
||||||
---@param plugin LazyPlugin
|
---@param plugin LazyPlugin
|
||||||
filter = function(plugin)
|
filter = function(plugin)
|
||||||
return plugin._.has_updates
|
return plugin._.updates
|
||||||
end,
|
end,
|
||||||
title = "Updates",
|
title = "Updates",
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue