summaryrefslogtreecommitdiff
path: root/lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua')
-rw-r--r--lua/clever_f/acquisition_service.lua17
1 files changed, 17 insertions, 0 deletions
diff --git a/lua/clever_f/acquisition_service.lua b/lua/clever_f/acquisition_service.lua
index da9ae0f..99edf83 100644
--- a/lua/clever_f/acquisition_service.lua
+++ b/lua/clever_f/acquisition_service.lua
@@ -116,6 +116,8 @@ function TemporaryResourceScope.new(request, feedback)
active = true,
cursor_marker = nil,
direct_marker = nil,
+ cursor_presentation_lease = nil,
+ input_packet = nil,
}
return scope
end
@@ -141,6 +143,14 @@ function TemporaryResourceScope:set_direct_marker(marker)
return set_scope_resource(self, "direct_marker", marker)
end
+function TemporaryResourceScope:set_cursor_presentation_lease(lease)
+ return set_scope_resource(self, "cursor_presentation_lease", lease)
+end
+
+function TemporaryResourceScope:set_input_packet(packet)
+ return set_scope_resource(self, "input_packet", packet)
+end
+
function TemporaryResourceScope:release()
local record = scope_records[self]
if record == nil then
@@ -309,6 +319,12 @@ function AcquisitionService:acquire(descriptor, context, position, count, macro_
local scope = self:start_temporary_scope(request)
local record = service_records[self]
local acquisition = record.policy:sample_acquisition()
+ local interactive = not request.macro_state.executing
+ scope:set_cursor_presentation_lease(
+ record.feedback:create_cursor_presentation_lease(
+ interactive and acquisition.hide_cursor_on_cmdline
+ )
+ )
if acquisition.mark_cursor then
scope:set_cursor_marker(record.feedback:create_cursor_marker(
request.position,
@@ -340,6 +356,7 @@ function AcquisitionService:acquire(descriptor, context, position, count, macro_
record.host:show_prompt(M.PROMPT)
end
record.transitions:BeginAcquisition(request.context, request.descriptor)
+ scope:set_input_packet(domain.InputPacket.from_table(record.host:read_input()))
return request
end