mirror of https://github.com/folke/lazy.nvim.git
feat(ui): added extra cache stats to the debug tab
This commit is contained in:
parent
34977c2b80
commit
c2f7e2d098
|
@ -5,6 +5,7 @@ local Handler = require("lazy.core.handler")
|
||||||
local Git = require("lazy.manage.git")
|
local Git = require("lazy.manage.git")
|
||||||
local Plugin = require("lazy.core.plugin")
|
local Plugin = require("lazy.core.plugin")
|
||||||
local ViewConfig = require("lazy.view.config")
|
local ViewConfig = require("lazy.view.config")
|
||||||
|
local Cache = require("lazy.core.cache")
|
||||||
|
|
||||||
local Text = require("lazy.view.text")
|
local Text = require("lazy.view.text")
|
||||||
|
|
||||||
|
@ -240,6 +241,13 @@ function M:diagnostic(diag)
|
||||||
table.insert(self._diagnostics, diag)
|
table.insert(self._diagnostics, diag)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
---@param precision? number
|
||||||
|
function M:ms(nsec, precision)
|
||||||
|
precision = precision or 2
|
||||||
|
local e = math.pow(10, precision)
|
||||||
|
return math.floor(nsec / 1e6 * e + 0.5) / e .. "ms"
|
||||||
|
end
|
||||||
|
|
||||||
---@param reason? {[string]:string, time:number}
|
---@param reason? {[string]:string, time:number}
|
||||||
---@param opts? {time_right?:boolean}
|
---@param opts? {time_right?:boolean}
|
||||||
function M:reason(reason, opts)
|
function M:reason(reason, opts)
|
||||||
|
@ -275,7 +283,7 @@ function M:reason(reason, opts)
|
||||||
reason.runtime = reason.runtime:gsub(".*/([^/]+/ftdetect/.*)", "%1")
|
reason.runtime = reason.runtime:gsub(".*/([^/]+/ftdetect/.*)", "%1")
|
||||||
reason.runtime = reason.runtime:gsub(".*/(runtime/.*)", "%1")
|
reason.runtime = reason.runtime:gsub(".*/(runtime/.*)", "%1")
|
||||||
end
|
end
|
||||||
local time = reason.time and (" " .. math.floor(reason.time / 1e6 * 100) / 100 .. "ms")
|
local time = reason.time and (" " .. self:ms(reason.time))
|
||||||
if time and not opts.time_right then
|
if time and not opts.time_right then
|
||||||
self:append(time, "Bold")
|
self:append(time, "Bold")
|
||||||
self:append(" ")
|
self:append(" ")
|
||||||
|
@ -473,21 +481,29 @@ function M:details(plugin)
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
self:props(props, { indent = 6 })
|
||||||
|
|
||||||
|
self:nl()
|
||||||
|
end
|
||||||
|
|
||||||
|
---@alias LazyProps {[1]:string, [2]:string|fun(), [3]?:string}[]
|
||||||
|
---@param props LazyProps
|
||||||
|
---@param opts? {indent: number}
|
||||||
|
function M:props(props, opts)
|
||||||
|
opts = opts or {}
|
||||||
local width = 0
|
local width = 0
|
||||||
for _, prop in ipairs(props) do
|
for _, prop in ipairs(props) do
|
||||||
width = math.max(width, #prop[1])
|
width = math.max(width, #prop[1])
|
||||||
end
|
end
|
||||||
for _, prop in ipairs(props) do
|
for _, prop in ipairs(props) do
|
||||||
self:append(prop[1] .. string.rep(" ", width - #prop[1] + 1), "LazyProp", { indent = 6 })
|
self:append(prop[1] .. string.rep(" ", width - #prop[1] + 1), "LazyProp", { indent = opts.indent or 0 })
|
||||||
if type(prop[2]) == "function" then
|
if type(prop[2]) == "function" then
|
||||||
prop[2]()
|
prop[2]()
|
||||||
else
|
else
|
||||||
self:append(prop[2], prop[3] or "LazyValue")
|
self:append(tostring(prop[2]), prop[3] or "LazyValue")
|
||||||
end
|
end
|
||||||
self:nl()
|
self:nl()
|
||||||
end
|
end
|
||||||
self:nl()
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function M:profile()
|
function M:profile()
|
||||||
|
@ -598,6 +614,26 @@ function M:debug()
|
||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
self:nl()
|
self:nl()
|
||||||
|
|
||||||
|
self:append("Cache.find()", "LazyH2"):nl()
|
||||||
|
self:props({
|
||||||
|
{ "total", Cache.stats.find.total, "Number" },
|
||||||
|
{ "time", self:ms(Cache.stats.find.time, 3), "Bold" },
|
||||||
|
{ "avg time", self:ms(Cache.stats.find.time / Cache.stats.find.total, 3), "Bold" },
|
||||||
|
{ "index", Cache.stats.find.index, "Number" },
|
||||||
|
{ "fs_stat", Cache.stats.find.stat, "Number" },
|
||||||
|
{ "not found", Cache.stats.find.not_found, "Number" },
|
||||||
|
}, { indent = 2 })
|
||||||
|
self:nl()
|
||||||
|
|
||||||
|
self:append("Cache.autoload()", "LazyH2"):nl()
|
||||||
|
self:props({
|
||||||
|
{ "total", Cache.stats.autoload.total, "Number" },
|
||||||
|
{ "time", self:ms(Cache.stats.autoload.time, 3), "Bold" },
|
||||||
|
{ "avg time", self:ms(Cache.stats.autoload.time / Cache.stats.autoload.total, 3), "Bold" },
|
||||||
|
}, { indent = 2 })
|
||||||
|
self:nl()
|
||||||
|
|
||||||
self:append("Cache", "LazyH2"):nl()
|
self:append("Cache", "LazyH2"):nl()
|
||||||
local Cache = require("lazy.core.cache")
|
local Cache = require("lazy.core.cache")
|
||||||
Util.foreach(Cache.cache, function(modname, entry)
|
Util.foreach(Cache.cache, function(modname, entry)
|
||||||
|
|
Loading…
Reference in New Issue