summaryrefslogtreecommitdiff
path: root/lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua')
-rw-r--r--lua/clever_f/sequence_coordinator.lua29
1 files changed, 27 insertions, 2 deletions
diff --git a/lua/clever_f/sequence_coordinator.lua b/lua/clever_f/sequence_coordinator.lua
index 7a23eab..4d64e51 100644
--- a/lua/clever_f/sequence_coordinator.lua
+++ b/lua/clever_f/sequence_coordinator.lua
@@ -500,11 +500,36 @@ function SequenceCoordinator:resolve_explicit(kind, resolver_method)
if type(resolver[resolver_method]) ~= "function" then
fail("RepeatResolver must build " .. kind .. " requests", 2)
end
- return {
+ local request = resolver[resolver_method](resolver, invocation.context)
+ local resolution = {
kind = kind,
invocation = invocation,
- request = resolver[resolver_method](resolver, invocation.context),
+ request = request,
}
+ if request.neutral then
+ return resolution
+ end
+ local target_plan, text_view, search_scope = self:build_live_target_plan(
+ request.target,
+ invocation
+ )
+ local motion_plan = self:build_movement_plan(
+ target_plan,
+ request.descriptor,
+ invocation,
+ search_scope
+ )
+ resolution.target = request.target
+ resolution.target_plan = target_plan
+ resolution.motion_plan = motion_plan
+ resolution.text_view = text_view
+ resolution.search_scope = search_scope
+ resolution.effective_descriptor = request.descriptor
+ resolution.first_move = coordinator_records[self].state:get_first_move(
+ invocation.context
+ ) == true
+ resolution.skip_destination = target_plan.kind == domain.TargetPlanKind.EMPTY
+ return resolution
end
function SequenceCoordinator:resolve_explicit_same()