emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/transient 49a61fb905 13/20: Support setting per-suffix


From: Jonas Bernoulli
Subject: [elpa] externals/transient 49a61fb905 13/20: Support setting per-suffix level for duplicated commands
Date: Tue, 24 Oct 2023 13:42:16 -0400 (EDT)

branch: externals/transient
commit 49a61fb905f647a4635595cf20e394e5e8868858
Author: Jonas Bernoulli <jonas@bernoul.li>
Commit: Jonas Bernoulli <jonas@bernoul.li>

    Support setting per-suffix level for duplicated commands
    
    Re #153.
---
 lisp/transient.el | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/lisp/transient.el b/lisp/transient.el
index 30083d79a7..d446b43551 100644
--- a/lisp/transient.el
+++ b/lisp/transient.el
@@ -1893,7 +1893,10 @@ value.  Otherwise return CHILDREN as is."
 (defun transient--init-suffix (levels spec)
   (pcase-let* ((`(,level ,class ,args) spec)
                (cmd (plist-get args :command))
-               (level (or (alist-get cmd levels) level)))
+               (key (transient--kbd (plist-get args :key)))
+               (level (or (alist-get (cons cmd key) levels nil nil #'equal)
+                          (alist-get cmd levels)
+                          level)))
     (let ((fn (and (symbolp cmd)
                    (symbol-function cmd))))
       (when (autoloadp fn)
@@ -2678,13 +2681,17 @@ transient is active."
    (level
     (let* ((prefix (oref transient--prefix command))
            (alist (alist-get prefix transient-levels))
-           (sym command))
+           (akey command))
       (cond ((eq command prefix)
              (oset transient--prefix level level)
-             (setq sym t))
+             (setq akey t))
             (t
-             (oset (transient-suffix-object command) level level)))
-      (setf (alist-get sym alist) level)
+             (oset (transient-suffix-object command) level level)
+             (when (cdr (cl-remove-if-not (lambda (obj)
+                                            (eq (oref obj command) command))
+                                          transient--suffixes))
+               (setq akey (cons command (this-command-keys))))))
+      (setf (alist-get akey alist) level)
       (setf (alist-get prefix transient-levels) alist))
     (transient-save-levels)
     (transient--show))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]