From 1f21f4c90d2f99f83b5718650e5f8e487a4e1218 Mon Sep 17 00:00:00 2001 From: Jackson Moore Date: Fri, 4 Sep 2026 11:05:41 +0200 Subject: Repeat at matching landing --- lua/clever_f/repeat_resolver.lua | 2 +- tests/run.lua | 17 +++++++++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/lua/clever_f/repeat_resolver.lua b/lua/clever_f/repeat_resolver.lua index 6bf5205..e246ef8 100644 --- a/lua/clever_f/repeat_resolver.lua +++ b/lua/clever_f/repeat_resolver.lua @@ -71,7 +71,7 @@ function RepeatResolver:decide(context, current_position, macro_state) if domain.MacroState.new(macro_state).executing then return M.Decision.ACQUIRE end - return nil + return M.Decision.REPEAT end RepeatResolver.eligibility = RepeatResolver.decide diff --git a/tests/run.lua b/tests/run.lua index cccf8dd..b010908 100644 --- a/tests/run.lua +++ b/tests/run.lua @@ -3813,7 +3813,6 @@ test("Primary eligibility acquires for missing and different landings", function transitions:BeginAcquisition("n", "f") transitions:CommitCommandSuccess("n", domain.Position.new(2, 5), true) same(repeat_resolver.Decision.ACQUIRE, resolver:decide("n", current)) - same(nil, resolver:decide("n", domain.Position.new(2, 5))) end) test("Primary eligibility acquires while a macro executes", function() @@ -3827,7 +3826,21 @@ test("Primary eligibility acquires while a macro executes", function() repeat_resolver.Decision.ACQUIRE, resolver:decide("n", landing, domain.MacroState.new("q")) ) - same(nil, resolver:decide("n", landing, domain.MacroState.new(nil))) +end) + +test("Primary eligibility repeats at a matching numeric landing", function() + local _, transitions = fresh_sequence_state() + transitions:BeginAcquisition("v", "T") + transitions:CommitVisualSuccess("v", domain.Position.new(4, 9)) + + same( + repeat_resolver.Decision.REPEAT, + repeat_resolver.decide( + "v", + { line = 4, byte_column = 9 }, + domain.MacroState.new(nil) + ) + ) end) for _, item in ipairs(tests) do -- cgit v1.2.3