summaryrefslogtreecommitdiff
path: root/lua/clever_f/repeat_resolver.lua
diff options
context:
space:
mode:
authorJackson Moore <jacksonmoore@tuta.io>2026-09-04 11:12:50 +0200
committerJackson Moore <jacksonmoore@tuta.io>2026-09-04 11:12:50 +0200
commite5a01335f0d6fe7167e3e615c7244b56e96d8599 (patch)
tree3643d51fd302ca8c03cfd61ba49572b3f8188b90 /lua/clever_f/repeat_resolver.lua
parent0455756954fff259e735ddda970df6a89b9b2f76 (diff)
Build opposite-direction requests
Diffstat (limited to 'lua/clever_f/repeat_resolver.lua')
-rw-r--r--lua/clever_f/repeat_resolver.lua22
1 files changed, 22 insertions, 0 deletions
diff --git a/lua/clever_f/repeat_resolver.lua b/lua/clever_f/repeat_resolver.lua
index 8f40059..057c7e6 100644
--- a/lua/clever_f/repeat_resolver.lua
+++ b/lua/clever_f/repeat_resolver.lua
@@ -253,6 +253,28 @@ end
RepeatResolver.resolve_explicit_same = RepeatResolver.same_direction_request
RepeatResolver.explicit_same = RepeatResolver.same_direction_request
+function M.build_opposite_direction_request(stored_descriptor, stored_target)
+ return domain.ExplicitRepeatRequest.new(
+ domain.Descriptor.swap(stored_descriptor),
+ stored_target
+ )
+end
+
+M.explicit_opposite_direction = M.build_opposite_direction_request
+
+function RepeatResolver:opposite_direction_request(context)
+ context = domain.ModeContext.from_full_mode(context)
+ local state = resolver_records[self].state
+ return M.build_opposite_direction_request(
+ state:get_previous_descriptor(context),
+ state:get_previous_target(context)
+ )
+end
+
+RepeatResolver.resolve_explicit_opposite =
+ RepeatResolver.opposite_direction_request
+RepeatResolver.explicit_opposite = RepeatResolver.opposite_direction_request
+
function M.new(options)
return RepeatResolver.new(options)
end