forked from Archives/navigator.lua
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.
30 lines
529 B
Lua
30 lines
529 B
Lua
3 years ago
|
local M = {}
|
||
|
|
||
|
function M.debounce_trailing(ms, fn)
|
||
|
local timer = vim.loop.new_timer()
|
||
|
return function(...)
|
||
|
local argv = {...}
|
||
|
timer:start(ms, 0, function()
|
||
|
timer:stop()
|
||
|
fn(unpack(argv))
|
||
|
end)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function M.throttle_leading(ms, fn)
|
||
|
local timer = vim.loop.new_timer()
|
||
|
local running = false
|
||
|
return function(...)
|
||
|
if not running then
|
||
|
timer:start(ms, 0, function()
|
||
|
running = false
|
||
|
timer:stop()
|
||
|
end)
|
||
|
running = true
|
||
|
fn(...)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
return M
|