summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lua/clever_f/repeat_resolver.lua2
-rw-r--r--tests/run.lua17
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