summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJackson Moore <jacksonmoore@tuta.io>2026-09-04 12:05:17 +0200
committerJackson Moore <jacksonmoore@tuta.io>2026-09-04 12:05:17 +0200
commitb5a2d9934368ff15fb195abc1ef69b45226c5b06 (patch)
tree4d44fad51c63532a8e73a898f5121a205addbe2a
parent3402c8557af220be7129b3bed0d2fa93eac4a724 (diff)
Reuse present cached target
-rw-r--r--lua/clever_f/acquisition_service.lua9
-rw-r--r--tests/run.lua3
2 files changed, 12 insertions, 0 deletions
diff --git a/lua/clever_f/acquisition_service.lua b/lua/clever_f/acquisition_service.lua
index bf3a5e9..a81c501 100644
--- a/lua/clever_f/acquisition_service.lua
+++ b/lua/clever_f/acquisition_service.lua
@@ -183,6 +183,7 @@ function TemporaryResourceScope.new(request, feedback)
cursor_presentation_lease = nil,
input_packet = nil,
acquired_target = nil,
+ resolved_target = nil,
previous_input_trigger = nil,
previous_target_source = nil,
cached_target = nil,
@@ -224,6 +225,10 @@ function TemporaryResourceScope:set_acquired_target(target)
return set_scope_resource(self, "acquired_target", target)
end
+function TemporaryResourceScope:set_resolved_target(target)
+ return set_scope_resource(self, "resolved_target", target)
+end
+
function TemporaryResourceScope:set_previous_input_trigger(trigger)
return set_scope_resource(self, "previous_input_trigger", trigger)
end
@@ -632,7 +637,11 @@ function AcquisitionService:acquire(descriptor, context, position, count, macro_
if trigger ~= nil then
local cached_target, source = M.read_previous_target(record.state)
scope:set_cached_target(source, cached_target)
+ if cached_target ~= nil then
+ target = cached_target
+ end
end
+ scope:set_resolved_target(target)
return AcquisitionResult.new(request, {
target = target,
previous_input_trigger = trigger,
diff --git a/tests/run.lua b/tests/run.lua
index 89f6273..c968d87 100644
--- a/tests/run.lua
+++ b/tests/run.lua
@@ -5245,6 +5245,9 @@ test("Acquisition compares first codes with previous-input triggers", function()
)
same(domain.ModeContext.from_full_mode("v"), result.previous_target_source)
same(service:last_temporary_scope().cached_target, result.cached_target)
+ same("x", service:last_temporary_scope().acquired_target.value)
+ same(result.cached_target, service:last_temporary_scope().resolved_target)
+ same(result.cached_target, result.target)
local trigger, index = acquisition_service.match_previous_input_trigger(
0x3042,
{ "x", "\227\129\130more" }