local M = {} ---maps the table|string of keys to the action ---@param keys table|string ---@param action string function M.nmap(bufnr, keys, action) if type(keys) == 'string' then keys = { keys } end for _, value in ipairs(keys) do vim.api.nvim_buf_set_keymap(bufnr, 'n', value, action, { silent = true, noremap = true }) end end --- @param f function --- @param delay number --- @return function function M.debounce(f, delay) local timer = vim.loop.new_timer() return function(...) local args = { ... } timer:start( delay, 0, vim.schedule_wrap(function() timer:stop() f(unpack(args)) end) ) end end return M