diff options
| author | Jackson Moore <jacksonmoore@tuta.io> | 2026-09-04 13:48:22 +0200 |
|---|---|---|
| committer | Jackson Moore <jacksonmoore@tuta.io> | 2026-09-04 13:48:22 +0200 |
| commit | 6c87eb3b6103c638cf76c7509ab2da6bcea67ec8 (patch) | |
| tree | bc83e928dc48ff5aa41bc1ebf3ca435c90d68871 /lua/clever_f/action_facade.lua | |
| parent | 7ec26094fee806bf53f3eb253b57f3a06025c70d (diff) | |
Execute explicit repeat motions
Diffstat (limited to 'lua/clever_f/action_facade.lua')
| -rw-r--r-- | lua/clever_f/action_facade.lua | 20 |
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 |
