mirror of
https://github.com/folke/snacks.nvim
synced 2025-08-04 10:49:08 +00:00
feat: test
This commit is contained in:
parent
0391125924
commit
520ed85169
1 changed files with 0 additions and 0 deletions
|
@ -1,78 +0,0 @@
|
|||
---@module 'trouble'
|
||||
---@diagnostic disable: inject-field
|
||||
local Item = require("trouble.item")
|
||||
|
||||
---@type trouble.Source
|
||||
local M = {}
|
||||
|
||||
---@diagnostic disable-next-line: missing-fields
|
||||
M.config = {
|
||||
formatters = {
|
||||
badges = function(ctx)
|
||||
local trace = ctx.item.item ---@type snacks.profiler.Trace
|
||||
local badges = Snacks.profiler.ui.badges(trace, { badges = { "time", "count" } })
|
||||
local text = Snacks.profiler.ui.format(badges)
|
||||
return vim.tbl_map(function(t)
|
||||
return { text = t[1], hl = t[2] }
|
||||
end, text)
|
||||
end,
|
||||
},
|
||||
modes = {
|
||||
profiler = {
|
||||
events = { { event = "User", pattern = "SnacksProfilerLoaded" } },
|
||||
source = "profiler",
|
||||
groups = {
|
||||
-- { "tag", format = "{todo_icon} {tag}" },
|
||||
-- { "directory" },
|
||||
{ "loc.plugin", format = "{file_icon} {loc.plugin} {count}" },
|
||||
},
|
||||
-- sort = { { buf = 0 }, "filename", "pos", "name" },
|
||||
sort = { "-time" },
|
||||
format = "{name} {badges} {pos}",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
function M.preview(item, ctx)
|
||||
Snacks.profiler.ui.highlight(ctx.buf, { file = item.item.loc.file })
|
||||
end
|
||||
|
||||
function M.get(cb, ctx)
|
||||
---@type snacks.profiler.Find
|
||||
local opts = vim.tbl_deep_extend(
|
||||
"force",
|
||||
{ group = "name", structure = true },
|
||||
type(ctx.opts.params) == "table" and ctx.opts.params or {}
|
||||
)
|
||||
local _, node = Snacks.profiler.find(opts)
|
||||
local items = {} ---@type trouble.Item[]
|
||||
local id = 0
|
||||
|
||||
---@param n snacks.profiler.Node
|
||||
local function add(n)
|
||||
if n.trace.def then
|
||||
id = id + 1
|
||||
local loc = n.trace.def
|
||||
local item = Item.new({
|
||||
id = id,
|
||||
pos = { n.trace.def.line, 0 },
|
||||
text = n.trace.name,
|
||||
filename = loc and loc.file,
|
||||
item = n.trace,
|
||||
source = "profiler",
|
||||
})
|
||||
items[#items + 1] = item
|
||||
for _, child in pairs(n.children) do
|
||||
item:add_child(add(child))
|
||||
end
|
||||
return item
|
||||
end
|
||||
end
|
||||
|
||||
for _, child in pairs(node.children or {}) do
|
||||
add(child)
|
||||
end
|
||||
cb(items)
|
||||
end
|
||||
|
||||
return M
|
Loading…
Add table
Add a link
Reference in a new issue