summaryrefslogtreecommitdiff
path: root/lua
diff options
context:
space:
mode:
authorJackson Moore <jacksonmoore@tuta.io>2026-09-04 12:47:32 +0200
committerJackson Moore <jacksonmoore@tuta.io>2026-09-04 12:47:32 +0200
commit36fa529fae92038daaddc7c88ec824cc71c1ffef (patch)
treef3d9288e026b6d1f5c59821c3451d4c15a1dd4fe /lua
parent6c3009c5041a2e661504825f68b0a3675562a647 (diff)
Restore feedback before primary movement
Diffstat (limited to 'lua')
-rw-r--r--lua/clever_f/feedback_service.lua21
1 files changed, 16 insertions, 5 deletions
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