Function: transient--insert-suffix
transient--insert-suffix is a byte-compiled function defined in
transient.el.
Signature
(transient--insert-suffix PREFIX LOC SUFFIX ACTION &optional KEEP-OTHER)
Source Code
;; Defined in ~/.emacs.d/elpa/transient-20260414.1009/transient.el
;;; Edit
(defun transient--insert-suffix (prefix loc suffix action &optional keep-other)
(pcase-let* ((suf (cl-etypecase suffix
(vector (eval (transient--parse-group prefix suffix) t))
(list (eval (transient--parse-suffix prefix suffix) t))
(string suffix)
(symbol suffix)))
(`(,elt ,group) (transient--locate-child prefix loc)))
(cond
((not elt)
(funcall (if transient-error-on-insert-failure #'error #'message)
"Cannot insert %S into %s; %s not found"
suffix prefix loc))
((or (and (vectorp suffix) (not (vectorp elt)))
(and (listp suffix) (vectorp elt))
(and (stringp suffix) (vectorp elt)))
(funcall (if transient-error-on-insert-failure #'error #'message)
"Cannot place %S into %s at %s; %s"
suffix prefix loc
"suffixes and groups cannot be siblings"))
(t
(when-let* ((_(not (eq keep-other 'always)))
(bindingp (listp suf))
(key (transient--suffix-key suf))
(conflict (car (transient--locate-child prefix key)))
(conflictp
(and (not (and (eq action 'replace)
(eq conflict elt)))
(or (not keep-other)
(eq (plist-get (transient--suffix-props suf)
:command)
(plist-get (transient--suffix-props conflict)
:command)))
(equal (transient--suffix-predicate suf)
(transient--suffix-predicate conflict)))))
(transient-remove-suffix prefix key)
(let ((eg (transient--locate-child prefix loc)))
(setq elt (car eg) group (cadr eg))))
(let ((mem (memq elt (aref group 2))))
(pcase-exhaustive action
('insert (setcdr mem (cons elt (cdr mem)))
(setcar mem suf))
('append (setcdr mem (cons suf (cdr mem))))
('replace (setcar mem suf))))))))