From 2b62f5654d6b9d939266dda369c52ba0aaa59c07 Mon Sep 17 00:00:00 2001 From: Jackson Moore Date: Fri, 4 Sep 2026 10:29:59 +0200 Subject: Preserve origins before any match --- lua/clever_f/destination_engine.lua | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) (limited to 'lua/clever_f/destination_engine.lua') diff --git a/lua/clever_f/destination_engine.lua b/lua/clever_f/destination_engine.lua index 027dd2a..53cb654 100644 --- a/lua/clever_f/destination_engine.lua +++ b/lua/clever_f/destination_engine.lua @@ -147,6 +147,16 @@ local function till_equality_allowed(request, successful_steps) return request.first_move and successful_steps == 0 end +local function boundary_outcome(request, endpoint, successful_steps) + if successful_steps > 0 then + return domain.SearchOutcome.boundary_after_partial( + endpoint, + successful_steps + ) + end + return domain.SearchOutcome.boundary_before_any(request.origin) +end + function DestinationEngine:calculate(view, origin, plan, count, first_move) local request = calculation_inputs(view, origin, plan, count, first_move) local current_origin = request.origin @@ -168,13 +178,7 @@ function DestinationEngine:calculate(view, origin, plan, count, first_move) if successful_steps == request.count.value then return domain.SearchOutcome.complete(current_origin, successful_steps) end - if successful_steps > 0 then - return domain.SearchOutcome.boundary_after_partial( - current_origin, - successful_steps - ) - end - return domain.SearchOutcome.boundary_before_any(request.origin) + return boundary_outcome(request, current_origin, successful_steps) end function M.new() -- cgit v1.2.3