From 275729dbfdf809dc7972d87cba0c5e589a39a5dc Mon Sep 17 00:00:00 2001 From: Jackson Moore Date: Fri, 4 Sep 2026 12:41:35 +0200 Subject: Rebuild cross-line feedback --- lua/clever_f/feedback_service.lua | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) (limited to 'lua/clever_f') diff --git a/lua/clever_f/feedback_service.lua b/lua/clever_f/feedback_service.lua index e553cd7..9d7ef28 100644 --- a/lua/clever_f/feedback_service.lua +++ b/lua/clever_f/feedback_service.lua @@ -622,10 +622,41 @@ function M.command_migration_reason(request) return nil end +local function has_target_overlay(record, window) + for _, resource in ipairs(record.state.target_overlays) do + if resource.window == window then + return true + end + end + return false +end + function FeedbackService:migrate_command(request) + local reason = M.command_migration_reason(request) + local record = service_records[self] + local window = request.window or record.host:read_window() + if reason == nil or not has_target_overlay(record, window) then + return { + migrated = false, + reason = reason, + } + end + + local plan = request.resolved_motion_plan or request.plan + if not domain.ResolvedMotionPlan.is(plan) then + fail("command feedback migration requires a ResolvedMotionPlan", 2) + end + local overlay = self:request_persistent({ + context = request.context, + anchor = request.destination, + target_plan = plan.target_plan, + motion_plan = plan, + window = window, + }) return { - migrated = false, - reason = M.command_migration_reason(request), + migrated = true, + reason = reason, + overlay = overlay, } end -- cgit v1.2.3