summaryrefslogtreecommitdiff
path: root/lua/clever_f/action_facade.lua
diff options
context:
space:
mode:
authorJackson Moore <jacksonmoore@tuta.io>2026-09-04 13:48:22 +0200
committerJackson Moore <jacksonmoore@tuta.io>2026-09-04 13:48:22 +0200
commit6c87eb3b6103c638cf76c7509ab2da6bcea67ec8 (patch)
treebc83e928dc48ff5aa41bc1ebf3ca435c90d68871 /lua/clever_f/action_facade.lua
parent7ec26094fee806bf53f3eb253b57f3a06025c70d (diff)
Execute explicit repeat motions
Diffstat (limited to 'lua/clever_f/action_facade.lua')
-rw-r--r--lua/clever_f/action_facade.lua20
1 files changed, 20 insertions, 0 deletions
diff --git a/lua/clever_f/action_facade.lua b/lua/clever_f/action_facade.lua
index 5d8da67..1dd5052 100644
--- a/lua/clever_f/action_facade.lua
+++ b/lua/clever_f/action_facade.lua
@@ -54,6 +54,26 @@ end
ActionFacade.invoke_primary = ActionFacade.primary
ActionFacade.start = ActionFacade.primary
+local function explicit_outcome(facade, method_name)
+ local coordinator = facade:coordinator()
+ local outcome = coordinator[method_name](coordinator)
+ if not domain.ActionOutcome.is(outcome) then
+ fail("SequenceCoordinator must return an ActionOutcome", 3)
+ end
+ return outcome
+end
+
+function ActionFacade:repeat_same_direction()
+ return explicit_outcome(self, "repeat_same_direction")
+end
+
+function ActionFacade:repeat_opposite_direction()
+ return explicit_outcome(self, "repeat_opposite_direction")
+end
+
+ActionFacade.RepeatSameDirection = ActionFacade.repeat_same_direction
+ActionFacade.RepeatOppositeDirection = ActionFacade.repeat_opposite_direction
+
function M.new(options)
return ActionFacade.new(options)
end