fix: debounce error (#2337)
This commit is contained in:
@@ -24,7 +24,7 @@ local SUGGESTION_NS = api.nvim_create_namespace("avante_suggestion")
|
|||||||
---@field augroup integer
|
---@field augroup integer
|
||||||
---@field ignore_patterns table
|
---@field ignore_patterns table
|
||||||
---@field negate_patterns table
|
---@field negate_patterns table
|
||||||
---@field _timer? integer
|
---@field _timer? uv.uv_timer_t | uv_timer_t
|
||||||
---@field _contexts table
|
---@field _contexts table
|
||||||
---@field is_on_throttle boolean
|
---@field is_on_throttle boolean
|
||||||
local Suggestion = {}
|
local Suggestion = {}
|
||||||
@@ -348,7 +348,10 @@ end
|
|||||||
|
|
||||||
function Suggestion:stop_timer()
|
function Suggestion:stop_timer()
|
||||||
if self._timer then
|
if self._timer then
|
||||||
pcall(function() fn.timer_stop(self._timer) end)
|
pcall(function()
|
||||||
|
self._timer:stop()
|
||||||
|
self._timer:close()
|
||||||
|
end)
|
||||||
self._timer = nil
|
self._timer = nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -674,19 +674,26 @@ function M.trim_all_line_numbers(content)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function M.debounce(func, delay)
|
function M.debounce(func, delay)
|
||||||
local timer_id = nil
|
local timer = nil
|
||||||
|
|
||||||
return function(...)
|
return function(...)
|
||||||
local args = { ... }
|
local args = { ... }
|
||||||
|
|
||||||
if timer_id then pcall(function() fn.timer_stop(timer_id) end) end
|
if timer then
|
||||||
|
timer:stop()
|
||||||
|
timer:close()
|
||||||
|
end
|
||||||
|
|
||||||
timer_id = fn.timer_start(delay, function()
|
timer = vim.loop.new_timer()
|
||||||
func(unpack(args))
|
if not timer then return end
|
||||||
timer_id = nil
|
|
||||||
|
timer:start(delay, 0, function()
|
||||||
|
vim.schedule(function() func(unpack(args)) end)
|
||||||
|
timer:close()
|
||||||
|
timer = nil
|
||||||
end)
|
end)
|
||||||
|
|
||||||
return timer_id
|
return timer
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user