summaryrefslogtreecommitdiff
path: root/scratch/old_perf_debug
blob: 3561a989b7994dd4658bc79fc32288e2bfe8f2ce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36


-- Until I have better profiling stuff, this will have to do.
PERF = function(...) end
PERF_DEBUG = PERF_DEBUG or nil
START = nil

if PERF_DEBUG then
  PERF = function(...)
    local new_time = (vim.loop.hrtime() - START) / 1E9
    if select('#', ...) == 0 then
      vim.schedule(function()
        vim.api.nvim_buf_set_lines(PERF_DEBUG, -1, -1, false, { '' })
      end)
      return
    end

    local to_insert = ''
    if START then
      to_insert = tostring(new_time) .. ' | '
    end

    for _, v in ipairs({...}) do
      if type(v) == 'table' then
        to_insert = to_insert .. tostring(#v) .. ' | '
      else
        to_insert = to_insert .. tostring(v) .. ' | '
      end
    end

    vim.schedule(function()
      vim.api.nvim_buf_set_lines(PERF_DEBUG, -1, -1, false, { to_insert })
    end)
  end
end