Good ideas!
(transient-define-prefix org-cite-basic-follow (citation &optional prefix)
[:class transient-columns
:setup-children org-cite-basic-follow--setup
:pad-keys t]
(interactive)
(if (or org-cite-basic-follow-ask
(eq prefix '(-4)))
(transient-setup 'org-cite-basic-follow nil nil
:scope (list citation prefix))
(org-cite-basic-goto citation prefix)))
This works nicely!
(defun org-cite-basic-follow--setup (_)
(transient-parse-suffixes
'org-cite-basic-follow
(cl-map 'vector (lambda (group)
(cl-map 'vector (lambda (suffix-spec)
(pcase suffix-spec
((and (pred stringp) label)
label)
(`(,key ,desc (,fn !citation !prefix))
(list key desc `(lambda ()
(interactive)
(letrec ((scope (transient-scope))
(citation (car scope))
(prefix (cadr scope)))
(,fn citation prefix)))))
(`(,key ,desc ,fn ,transform)
(list key desc `(lambda ()
(interactive)
(apply ',fn ,transform))))
(`(,key ,desc ,suffix)
(list key desc suffix))))
group))
org-cite-basic-follow-actions)))
This too works really well! I think it would make sence to match (,fn
!citation), (,fn !citation-key) and (,fn !citation-key !prefix), does
this sound reasonable?
Thanks again for taking the time to help me with this=)
Cheers,
Tor-björn