From a75b403ea0d25d0976e228b6f502748e0c34f896 Mon Sep 17 00:00:00 2001 From: JINNOUCHI Yasushi Date: Tue, 27 Aug 2024 14:49:05 +0900 Subject: [PATCH] feat: pretty print timer (#251) * feat: store times for duplicated keys * feat: add func for pretty print timer --- lua/frecency/timer.lua | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/lua/frecency/timer.lua b/lua/frecency/timer.lua index be3509f..7d0fbf5 100644 --- a/lua/frecency/timer.lua +++ b/lua/frecency/timer.lua @@ -17,8 +17,40 @@ function M.track(event) end end if M.has_lazy then - require("lazy.stats").track("[telescope-frecency] " .. event) + local stats = require "lazy.stats" + ---@param n integer + ---@return string + local function make_key(n) + return ("[telescope-frecency] %s: %d"):format(event, n) + end + local key + local num = 0 + while true do + key = make_key(num) + if not stats._stats.times[key] then + break + end + num = num + 1 + end + stats.track(key) end end +---@return string +function M.pp() + local times = require("lazy.stats")._stats.times + local result = vim.tbl_map(function(k) + return { event = k, t = times[k] } + end, vim.tbl_keys(times)) + table.sort(result, function(a, b) + return a.t < b.t + end) + return table.concat( + vim.tbl_map(function(r) + return ("%8.3f : %s"):format(r.t, r.event) + end, result), + "\n" + ) +end + return M