summaryrefslogtreecommitdiff
path: root/.config/nvim/lua/impatient/profile.lua
diff options
context:
space:
mode:
Diffstat (limited to '.config/nvim/lua/impatient/profile.lua')
-rw-r--r--.config/nvim/lua/impatient/profile.lua156
1 files changed, 0 insertions, 156 deletions
diff --git a/.config/nvim/lua/impatient/profile.lua b/.config/nvim/lua/impatient/profile.lua
deleted file mode 100644
index d057386..0000000
--- a/.config/nvim/lua/impatient/profile.lua
+++ /dev/null
@@ -1,156 +0,0 @@
-local M = {}
-
-local api = vim.api
-
-function M.print_profile(profile)
- if not profile then
- print "Error: profiling was not enabled"
- return
- end
-
- local total_resolve = 0
- local total_load = 0
- local name_pad = 0
- local modules = {}
- local plugins = {}
-
- for module, p in pairs(profile) do
- p.resolve = p.resolve / 1000000
- p.load = p.load / 1000000
- p.total = p.resolve + p.load
- p.module = module:gsub("/", ".")
-
- local plugin = p.module:match "([^.]+)"
- if plugin then
- if not plugins[plugin] then
- plugins[plugin] = {
- module = plugin,
- resolve = 0,
- load = 0,
- total = 0,
- }
- end
- local r = plugins[plugin]
-
- r.resolve = r.resolve + p.resolve
- r.load = r.load + p.load
- r.total = r.total + p.total
-
- if not r.loader then
- r.loader = p.loader
- elseif r.loader ~= p.loader then
- r.loader = "mixed"
- end
- end
-
- total_resolve = total_resolve + p.resolve
- total_load = total_load + p.load
-
- if #module > name_pad then
- name_pad = #module
- end
-
- modules[#modules + 1] = p
- end
-
- table.sort(modules, function(a, b)
- return a.module > b.module
- end)
-
- do
- local plugins_a = {}
- for _, v in pairs(plugins) do
- plugins_a[#plugins_a + 1] = v
- end
- plugins = plugins_a
- end
-
- table.sort(plugins, function(a, b)
- return a.total > b.total
- end)
-
- local lines = {}
- local function add(...)
- lines[#lines + 1] = string.format(...)
- end
-
- local l = string.rep("─", name_pad + 1)
-
- add(
- "%s┬───────────┬────────────┬────────────┬────────────┐",
- l
- )
- add(
- "%-"
- .. name_pad
- .. "s │ Loader │ Resolve │ Load │ Total │",
- ""
- )
- add(
- "%s┼───────────┼────────────┼────────────┼────────────┤",
- l
- )
- add(
- "%-" .. name_pad .. "s │ │ %8.4fms │ %8.4fms │ %8.4fms │",
- "Total",
- total_resolve,
- total_load,
- total_resolve + total_load
- )
- add(
- "%s┴───────────┴────────────┴────────────┴────────────┤",
- l
- )
- add(
- "%-" .. name_pad .. "s │",
- "By Plugin"
- )
- add(
- "%s┬───────────┬────────────┬────────────┬────────────┤",
- l
- )
- for _, p in ipairs(plugins) do
- add(
- "%-" .. name_pad .. "s │ %9s │ %8.4fms │ %8.4fms │ %8.4fms │",
- p.module,
- p.loader,
- p.resolve,
- p.load,
- p.total
- )
- end
- add(
- "%s┴───────────┴────────────┴────────────┴────────────┤",
- l
- )
- add(
- "%-" .. name_pad .. "s │",
- "By Module"
- )
- add(
- "%s┬───────────┬────────────┬────────────┬────────────┤",
- l
- )
- for _, p in pairs(modules) do
- add(
- "%-" .. name_pad .. "s │ %9s │ %8.4fms │ %8.4fms │ %8.4fms │",
- p.module,
- p.loader,
- p.resolve,
- p.load,
- p.total
- )
- end
- add(
- "%s┴───────────┴────────────┴────────────┴────────────┘",
- l
- )
-
- local bufnr = api.nvim_create_buf(false, false)
- api.nvim_buf_set_lines(bufnr, 0, 0, false, lines)
- api.nvim_buf_set_option(bufnr, "buftype", "nofile")
- api.nvim_buf_set_name(bufnr, "Impatient Profile Report")
- api.nvim_set_current_buf(bufnr)
-end
-
-return M