diff options
| author | Jackson Moore <jacksonmoore@tuta.io> | 2026-09-04 12:10:40 +0200 |
|---|---|---|
| committer | Jackson Moore <jacksonmoore@tuta.io> | 2026-09-04 12:10:40 +0200 |
| commit | 9a41328135ab2073d087de44ba577335d109c641 (patch) | |
| tree | fb2397e8eb396c06ebb209216de58a6b3bc4a1aa /lua/clever_f/acquisition_service.lua | |
| parent | b47d670d7613800633c91f9b22615fbd9f65c0de (diff) | |
Request eligible persistent feedback
Diffstat (limited to 'lua/clever_f/acquisition_service.lua')
| -rw-r--r-- | lua/clever_f/acquisition_service.lua | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/lua/clever_f/acquisition_service.lua b/lua/clever_f/acquisition_service.lua index 77d08ec..ba796fd 100644 --- a/lua/clever_f/acquisition_service.lua +++ b/lua/clever_f/acquisition_service.lua @@ -155,6 +155,7 @@ function AcquisitionResult.new(request, options) cached_target = options.cached_target, missing_previous_input = options.missing_previous_input == true, acquisition_time_ms = options.acquisition_time_ms, + persistent_feedback_request = options.persistent_feedback_request, completed = outcome ~= nil or target ~= nil, } return result @@ -355,8 +356,11 @@ local function require_feedback(feedback, host, policy_service, transitions) policy = policy_service, transitions = transitions, }) - if type(feedback) ~= "table" or type(feedback.create_cursor_marker) ~= "function" then - fail("AcquisitionService feedback must create cursor markers", 3) + if type(feedback) ~= "table" + or type(feedback.create_cursor_marker) ~= "function" + or type(feedback.request_persistent) ~= "function" + then + fail("AcquisitionService feedback must manage acquisition markers", 3) end return feedback end @@ -760,11 +764,29 @@ function AcquisitionService:acquire(descriptor, context, position, count, macro_ search_scope ) ) + local persistent_feedback_request + if record.policy:sample_markers().mark_char + and feedback_service.persistent_context_eligible(request.context) + then + local window = scope.cursor_marker + and scope.cursor_marker.window + or scope.direct_marker + and scope.direct_marker.window + or current_window(record) + persistent_feedback_request = record.feedback:request_persistent({ + context = request.context, + anchor = request.position, + target_plan = target_plan, + motion_plan = motion_plan, + window = window, + }) + end return AcquisitionResult.new(request, { target = target, target_plan = target_plan, motion_plan = motion_plan, acquisition_time_ms = acquisition_time_ms, + persistent_feedback_request = persistent_feedback_request, previous_input_trigger = trigger, previous_target_source = scope.previous_target_source, cached_target = scope.cached_target, |
