diff options
| author | Jackson Moore <jacksonmoore@tuta.io> | 2026-09-04 12:49:15 +0200 |
|---|---|---|
| committer | Jackson Moore <jacksonmoore@tuta.io> | 2026-09-04 12:49:15 +0200 |
| commit | cd8b1dae826390bebf5a4566f69008246d705c7c (patch) | |
| tree | 7d1f814a0c9cd341e42bca06f24a32869768efc0 /lua/clever_f/feedback_service.lua | |
| parent | 19904ba49a03a450e8a573358eb3417a3aafdb1f (diff) | |
Sample eager marker policy
Diffstat (limited to 'lua/clever_f/feedback_service.lua')
| -rw-r--r-- | lua/clever_f/feedback_service.lua | 26 |
1 files changed, 24 insertions, 2 deletions
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() |
