diff options
Diffstat (limited to 'lua/clever_f/repeat_resolver.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, { |
