From 36fa529fae92038daaddc7c88ec824cc71c1ffef Mon Sep 17 00:00:00 2001 From: Jackson Moore Date: Fri, 4 Sep 2026 12:47:32 +0200 Subject: Restore feedback before primary movement --- lua/clever_f/feedback_service.lua | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'lua/clever_f') diff --git a/lua/clever_f/feedback_service.lua b/lua/clever_f/feedback_service.lua index 4d19e6d..b15d1c5 100644 --- a/lua/clever_f/feedback_service.lua +++ b/lua/clever_f/feedback_service.lua @@ -575,12 +575,11 @@ local function register_finalizers(service, record) return owned end -function FeedbackService:request_persistent(specification) - local request = self:build_persistent(specification) +local function materialize_persistent(service, request) if request.window == nil then - fail("persistent feedback window must identify its host window", 2) + fail("persistent feedback window must identify its host window", 3) end - local record = service_records[self] + local record = service_records[service] remove_target_overlays(record, request.window) request.identity = record.host:create_highlight({ group = "CleverFChar", @@ -599,12 +598,24 @@ function FeedbackService:request_persistent(specification) request.window, request.anchor.line ) - request.finalizers = register_finalizers(self, record) + request.finalizers = register_finalizers(service, record) local requests = record.persistent_requests requests[#requests + 1] = request return request end +function FeedbackService:request_persistent(specification) + return materialize_persistent(self, self:build_persistent(specification)) +end + +function FeedbackService:restore_primary(specification) + local restoration = self:build_primary_restoration(specification) + if restoration == nil then + return nil + end + return materialize_persistent(self, restoration) +end + function FeedbackService:persistent_requests() local result = {} for index, request in ipairs(service_records[self].persistent_requests) do -- cgit v1.2.3