diff options
Diffstat (limited to 'lua')
| -rw-r--r-- | lua/clever_f/sequence_coordinator.lua | 29 |
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() |
