summaryrefslogtreecommitdiff
path: root/lisp/transient.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/transient.el')
-rw-r--r--lisp/transient.el34
1 files changed, 23 insertions, 11 deletions
diff --git a/lisp/transient.el b/lisp/transient.el
index 0919c2c3ef0..01c492c68c1 100644
--- a/lisp/transient.el
+++ b/lisp/transient.el
@@ -6,7 +6,7 @@
;; URL: https://github.com/magit/transient
;; Keywords: extensions
-;; Package-Version: 0.3.7
+;; Package-Version: 0.3.7.50
;; Package-Requires: ((emacs "26.1"))
;; SPDX-License-Identifier: GPL-3.0-or-later
@@ -2199,11 +2199,11 @@ value. Otherwise return CHILDREN as is."
(delayed (if transient--exitp
(apply-partially #'transient--post-exit this-command)
#'transient--resume-override))
- post-command abort-minibuffer)
+ outside-interactive post-command abort-minibuffer)
(unless abort-only
(setq post-command
(lambda () "@transient--delay-post-command"
- (let ((act (and (not (eq (this-command-keys-vector) []))
+ (let ((act (and (not (equal (this-command-keys-vector) []))
(or (eq this-command command)
;; `execute-extended-command' was
;; used to call another command
@@ -2211,7 +2211,9 @@ value. Otherwise return CHILDREN as is."
(equal
(ignore-errors
(string-to-multibyte (this-command-keys)))
- (format "\M-x%s\r" this-command))))))
+ (format "\M-x%s\r" this-command))
+ ;; Minibuffer used outside `interactive'.
+ (and outside-interactive 'post-cmd)))))
(transient--debug 'post-command-hook "act: %s" act)
(when act
(remove-hook 'transient--post-command-hook post-command)
@@ -2220,12 +2222,15 @@ value. Otherwise return CHILDREN as is."
(add-hook 'transient--post-command-hook post-command))
(setq abort-minibuffer
(lambda () "@transient--delay-post-command"
- (let ((act (and (or (memq this-command transient--abort-commands)
- (equal (this-command-keys) ""))
- (= (minibuffer-depth) depth))))
+ (let ((act (and (= (minibuffer-depth) depth)
+ (or (memq this-command transient--abort-commands)
+ (equal (this-command-keys) "")
+ (prog1 nil
+ (setq outside-interactive t))))))
(transient--debug
'abort-minibuffer
- "mini: %s|%s, act %s" (minibuffer-depth) depth act)
+ "mini: %s|%s, act: %s" (minibuffer-depth) depth
+ (or act (and outside-interactive '->post-cmd)))
(when act
(remove-hook 'transient--post-command-hook post-command)
(remove-hook 'minibuffer-exit-hook abort-minibuffer)
@@ -2236,7 +2241,7 @@ value. Otherwise return CHILDREN as is."
(transient--debug 'post-command)
(transient--with-emergency-exit
(cond
- ((and (eq (this-command-keys-vector) [])
+ ((and (equal (this-command-keys-vector) [])
(= (minibuffer-depth)
(1+ transient--minibuffer-depth)))
(transient--suspend-override)
@@ -2407,6 +2412,10 @@ If there is no parent prefix, then behave like `transient--do-exit'."
(transient--stack-zap)
transient--exit)
+(defun transient--do-leave ()
+ "Call the command without exporting variables and exit the transient."
+ transient--stay)
+
(defun transient--do-push-button ()
"Call the command represented by the activated button.
Use that command's pre-command to determine transient behavior."
@@ -3376,7 +3385,7 @@ have a history of their own.")
(insert ?\n)
(insert (propertize " " 'display
`(space :align-to (,(nth (1+ c) cc)))))))
- (insert (make-string (- (nth c cc) (current-column)) ?\s))
+ (insert (make-string (max 1 (- (nth c cc) (current-column))) ?\s))
(when-let ((cell (nth r (nth c columns))))
(insert cell))
(when (= c (1- cs))
@@ -4119,7 +4128,10 @@ we stop there."
'face 'transient-value))
(cl-defmethod transient-prompt ((obj transient-lisp-variable))
- (format "Set %s: " (oref obj variable)))
+ (if (and (slot-boundp obj 'prompt)
+ (oref obj prompt))
+ (cl-call-next-method obj)
+ (format "Set %s: " (oref obj variable))))
(defun transient-lisp-variable--reader (prompt initial-input _history)
(read--expression prompt initial-input))