From eee2fe5b78d903045d92efb33354107d600f8107 Mon Sep 17 00:00:00 2001 From: Jackson Moore Date: Fri, 4 Sep 2026 12:45:41 +0200 Subject: Clear feedback from current timer --- lua/clever_f/feedback_service.lua | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'lua') diff --git a/lua/clever_f/feedback_service.lua b/lua/clever_f/feedback_service.lua index edaa39d..ac5f54b 100644 --- a/lua/clever_f/feedback_service.lua +++ b/lua/clever_f/feedback_service.lua @@ -712,23 +712,33 @@ function FeedbackService:cancel_highlight_timer() return identity end -function FeedbackService:handle_highlight_timer(callback_identity) +function FeedbackService:handle_highlight_timer(callback_identity, window) if callback_identity == nil then fail("highlight timer callback identity must be present", 2) end - return callback_identity == service_records[self].state.highlight_timer + local record = service_records[self] + if callback_identity ~= record.state.highlight_timer then + return false + end + local _, current = record.transitions:ClearHighlightTimer(callback_identity) + if not current then + return false + end + self:remove_character_overlays(window or record.host:read_window()) + return true end -function FeedbackService:start_highlight_timer() +function FeedbackService:start_highlight_timer(window) local record = service_records[self] local delay = self:highlight_timer_delay() if delay == nil then return nil end + window = window or record.host:read_window() self:cancel_highlight_timer() local identity identity = record.host:start_timer(delay, function(callback_identity) - self:handle_highlight_timer(callback_identity or identity) + self:handle_highlight_timer(callback_identity or identity, window) end) record.transitions:SetHighlightTimer(identity) return identity -- cgit v1.2.3