You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

44 lines
756 B
Lua

local M = {}
function M.debounce(fn, debounce_time)
local timer = vim.loop.new_timer()
local is_debounce_fn = type(debounce_time) == 'function'
return function(...)
timer:stop()
local time = debounce_time
local args = {...}
if is_debounce_fn then
time = debounce_time()
end
timer:start(time, 0, vim.schedule_wrap(function() fn(unpack(args)) end))
end
end
function M.for_each_buf_window(bufnr, fn)
for _, window in ipairs(vim.fn.win_findbuf(bufnr)) do
fn(window)
end
end
function M.to_lookup_table(list, key_mapper)
local result = {}
for i, v in ipairs(list) do
local key = v
if key_mapper then
key = key_mapper(v, i)
end
result[key] = v
end
return result
end
return M