From cd8b1dae826390bebf5a4566f69008246d705c7c Mon Sep 17 00:00:00 2001 From: Jackson Moore Date: Fri, 4 Sep 2026 12:49:15 +0200 Subject: Sample eager marker policy --- lua/clever_f/feedback_service.lua | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) (limited to 'lua') diff --git a/lua/clever_f/feedback_service.lua b/lua/clever_f/feedback_service.lua index 72ee1dc..3575f27 100644 --- a/lua/clever_f/feedback_service.lua +++ b/lua/clever_f/feedback_service.lua @@ -61,6 +61,11 @@ local DIRECT_FINALIZER_EVENTS = { TextChanged = true, } +local EAGER_EVENT_SET = {} +for _, event_name in ipairs(M.EAGER_EVENTS) do + EAGER_EVENT_SET[event_name] = true +end + local DEFAULT_LABEL_DEFINITION = { guifg = "red", guibg = "NONE", @@ -191,6 +196,7 @@ function FeedbackService.new(options) owned_finalizer = nil, activation = nil, eager_registration = nil, + last_eager_decision = nil, } return service end @@ -819,8 +825,24 @@ function FeedbackService:refresh_primary(resolved_target, window) return self:start_highlight_timer(window) end -function FeedbackService:handle_eager_event() - return false +function FeedbackService:handle_eager_event(name, payload) + if not EAGER_EVENT_SET[name] then + return false + end + local record = service_records[self] + local decision = { + event = name, + payload = payload, + mark_char = record.policy:sample_markers().mark_char, + cleaned = false, + } + record.last_eager_decision = decision + return decision +end + +function FeedbackService:last_eager_decision() + local decision = service_records[self].last_eager_decision + return decision and copy(decision) or nil end function FeedbackService:activate() -- cgit v1.2.3