diff options
| author | Jackson Moore <jacksonmoore@tuta.io> | 2026-09-04 11:08:45 +0200 |
|---|---|---|
| committer | Jackson Moore <jacksonmoore@tuta.io> | 2026-09-04 11:08:45 +0200 |
| commit | d44346e4195637dccd28d2908c11d4aea373043f (patch) | |
| tree | 26d7ac177f73968dde1babe531ed6bc4df34dc95 /lua | |
| parent | 709698574def8a35af8b70fdc794040cd9ca30ef (diff) | |
Reset expired repetition
Diffstat (limited to 'lua')
| -rw-r--r-- | lua/clever_f/repeat_resolver.lua | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/lua/clever_f/repeat_resolver.lua b/lua/clever_f/repeat_resolver.lua index 2924bd6..4cb1294 100644 --- a/lua/clever_f/repeat_resolver.lua +++ b/lua/clever_f/repeat_resolver.lua @@ -48,8 +48,9 @@ local function require_transitions(transitions, state) transitions = transitions or state_transitions.new(state) if type(transitions) ~= "table" or type(transitions.SetRepeatTimestamp) ~= "function" + or type(transitions.PublicReset) ~= "function" then - fail("RepeatResolver transitions must set repeat timestamp", 3) + fail("RepeatResolver transitions must set repeat time and apply Public Reset", 3) end return transitions end @@ -151,7 +152,7 @@ end RepeatResolver.sample_repeat_timeout = RepeatResolver.sample_repeat_timeout_ms -function RepeatResolver:evaluate_timeout() +function RepeatResolver:evaluate_timeout(current_window) local timeout = self:sample_repeat_timeout_ms() if timeout == 0 then return M.Decision.REPEAT, nil @@ -173,7 +174,8 @@ function RepeatResolver:evaluate_timeout() if elapsed_ms <= timeout then return M.Decision.REPEAT, elapsed_ms end - return nil, elapsed_ms + local cleanup = record.transitions:PublicReset(current_window) + return M.Decision.ACQUIRE, elapsed_ms, cleanup end RepeatResolver.check_timeout = RepeatResolver.evaluate_timeout @@ -201,8 +203,8 @@ function M.sample_repeat_timeout_ms(options) return RepeatResolver.new(options):sample_repeat_timeout_ms() end -function M.evaluate_timeout(options) - return RepeatResolver.new(options):evaluate_timeout() +function M.evaluate_timeout(options, current_window) + return RepeatResolver.new(options):evaluate_timeout(current_window) end setmetatable(M, { |
