summaryrefslogtreecommitdiff
path: root/lua/clever_f/acquisition_service.lua
diff options
context:
space:
mode:
authorJackson Moore <jacksonmoore@tuta.io>2026-09-04 12:10:40 +0200
committerJackson Moore <jacksonmoore@tuta.io>2026-09-04 12:10:40 +0200
commit9a41328135ab2073d087de44ba577335d109c641 (patch)
treefb2397e8eb396c06ebb209216de58a6b3bc4a1aa /lua/clever_f/acquisition_service.lua
parentb47d670d7613800633c91f9b22615fbd9f65c0de (diff)
Request eligible persistent feedback
Diffstat (limited to 'lua/clever_f/acquisition_service.lua')
-rw-r--r--lua/clever_f/acquisition_service.lua26
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,