diff options
| author | Jackson Moore <jacksonmoore@tuta.io> | 2026-09-04 12:47:32 +0200 |
|---|---|---|
| committer | Jackson Moore <jacksonmoore@tuta.io> | 2026-09-04 12:47:32 +0200 |
| commit | 36fa529fae92038daaddc7c88ec824cc71c1ffef (patch) | |
| tree | f3d9288e026b6d1f5c59821c3451d4c15a1dd4fe /lua/clever_f | |
| parent | 6c3009c5041a2e661504825f68b0a3675562a647 (diff) | |
Restore feedback before primary movement
Diffstat (limited to 'lua/clever_f')
| -rw-r--r-- | lua/clever_f/feedback_service.lua | 21 |
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 |
