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