diff options
| author | kylo252 <[email protected]> | 2021-10-10 21:07:41 +0200 | 
|---|---|---|
| committer | GitHub <[email protected]> | 2021-10-10 21:07:41 +0200 | 
| commit | 52b74557415eb757ad4b7481b0aec8a3f98dd58d (patch) | |
| tree | 9a05ec71a46c99fbdf8df0043be652b528c7c04e /lua/impatient/profile.lua | |
| parent | e2c85df440564a62fd804555747b1652a6844a5e (diff) | |
feat: add an independent lvim namespace (#1699)
Diffstat (limited to 'lua/impatient/profile.lua')
| -rw-r--r-- | lua/impatient/profile.lua | 145 | 
1 files changed, 0 insertions, 145 deletions
diff --git a/lua/impatient/profile.lua b/lua/impatient/profile.lua deleted file mode 100644 index 0f4f8236..00000000 --- a/lua/impatient/profile.lua +++ /dev/null @@ -1,145 +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  | 
