[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/transient 51585b8dd7 25/38: transient-reset: New comman
From: |
Jonas Bernoulli |
Subject: |
[elpa] externals/transient 51585b8dd7 25/38: transient-reset: New command |
Date: |
Tue, 11 Jan 2022 05:37:45 -0500 (EST) |
branch: externals/transient
commit 51585b8dd765066fc0d8a629c9b26f9be6fa73e7
Author: Jonas Bernoulli <jonas@bernoul.li>
Commit: Jonas Bernoulli <jonas@bernoul.li>
transient-reset: New command
Also add new generic function `transient-default-value' and
`transient-reset-value'.
---
lisp/transient.el | 39 +++++++++++++++++++++++++++++++++------
1 file changed, 33 insertions(+), 6 deletions(-)
diff --git a/lisp/transient.el b/lisp/transient.el
index 34cc603faf..a349046fc8 100644
--- a/lisp/transient.el
+++ b/lisp/transient.el
@@ -1551,6 +1551,7 @@ to `transient-predicate-map'. Also see
`transient-base-map'.")
["Value commands"
("C-x s " "Set" transient-set)
("C-x C-s" "Save" transient-save)
+ ("C-x C-k" "Reset" transient-reset)
("C-x p " "Previous value" transient-history-prev)
("C-x n " "Next value" transient-history-next)]
["Sticky commands"
@@ -1585,6 +1586,7 @@ to `transient-predicate-map'. Also see
`transient-base-map'.")
(define-key map [transient-toggle-common] #'transient--do-stay)
(define-key map [transient-set] #'transient--do-call)
(define-key map [transient-save] #'transient--do-call)
+ (define-key map [transient-reset] #'transient--do-call)
(define-key map [describe-key-briefly] #'transient--do-stay)
(define-key map [describe-key] #'transient--do-stay)
(define-key map [transient-scroll-up] #'transient--do-stay)
@@ -2498,6 +2500,11 @@ transient is active."
(interactive)
(transient-save-value (or transient--prefix transient-current-prefix)))
+(defun transient-reset ()
+ "Clear the set and save value of the active transient."
+ (interactive)
+ (transient-reset-value (or transient--prefix transient-current-prefix)))
+
(defun transient-history-next ()
"Switch to the next value used for the active transient."
(interactive)
@@ -2608,12 +2615,7 @@ Otherwise call the primary method according to object's
class."
(oset obj value
(if-let ((saved (assq (oref obj command) transient-values)))
(cdr saved)
- (if-let ((default (and (slot-boundp obj 'default-value)
- (oref obj default-value))))
- (if (functionp default)
- (funcall default)
- default)
- nil)))))
+ (transient-default-value obj)))))
(cl-defmethod transient-init-value ((obj transient-argument))
(oset obj value
@@ -2640,6 +2642,20 @@ Otherwise call the primary method according to object's
class."
(car (member (oref obj argument)
(oref transient--prefix value)))))
+;;;; Default
+
+(cl-defgeneric transient-default-value (_)
+ "Return the default value."
+ nil)
+
+(cl-defmethod transient-default-value ((obj transient-prefix))
+ (if-let ((default (and (slot-boundp obj 'default-value)
+ (oref obj default-value))))
+ (if (functionp default)
+ (funcall default)
+ default)
+ nil))
+
;;;; Read
(cl-defgeneric transient-infix-read (obj)
@@ -2893,6 +2909,17 @@ prompt."
(transient-save-values))
(transient--history-push obj))
+;;;; Reset
+
+(cl-defmethod transient-reset-value ((obj transient-prefix))
+ (let ((value (transient-default-value obj)))
+ (oset obj value value)
+ (oset (oref obj prototype) value value)
+ (setf (alist-get (oref obj command) transient-values nil 'remove) nil)
+ (transient-save-values))
+ (transient--history-push obj)
+ (mapc #'transient-init-value transient--suffixes))
+
;;;; Get
(defun transient-args (prefix)
- [elpa] externals/transient 79c999d263 06/38: transient--post-exit: New function, (continued)
- [elpa] externals/transient 79c999d263 06/38: transient--post-exit: New function, Jonas Bernoulli, 2022/01/11
- [elpa] externals/transient 2e33f96cf0 07/38: transient--post-command: Cosmetics, Jonas Bernoulli, 2022/01/11
- [elpa] externals/transient 76b77e01ac 09/38: magit--{pre, post}-command: Add emergency exits, Jonas Bernoulli, 2022/01/11
- [elpa] externals/transient 7b8a7d718a 08/38: Use a more targeted approach to suspending transient override, Jonas Bernoulli, 2022/01/11
- [elpa] externals/transient 09b436fad0 10/38: transient--debug: Ignore error in transient--suffix-symbol, Jonas Bernoulli, 2022/01/11
- [elpa] externals/transient f2e0dfcc4b 11/38: transient--get-predicate-for: Ignore error in transient--suffix-symbol, Jonas Bernoulli, 2022/01/11
- [elpa] externals/transient 3c78b10f52 14/38: transient--redisplay: Don't redisplay during mouse-drag-region, Jonas Bernoulli, 2022/01/11
- [elpa] externals/transient 4a36b1d922 17/38: Interpret t and nil for sub-prefixes in define-transient-prefix, Jonas Bernoulli, 2022/01/11
- [elpa] externals/transient 1cdadfddf8 21/38: manual: Use source block, Jonas Bernoulli, 2022/01/11
- [elpa] externals/transient 777a84d26b 20/38: manual: Document all options, Jonas Bernoulli, 2022/01/11
- [elpa] externals/transient 51585b8dd7 25/38: transient-reset: New command,
Jonas Bernoulli <=
- [elpa] externals/transient 6c9ae1f46a 27/38: manual: Replace some inaccurate information, Jonas Bernoulli, 2022/01/11
- [elpa] externals/transient de5a325616 30/38: Re-align debug declarations, Jonas Bernoulli, 2022/01/11
- [elpa] externals/transient 12097b72d7 32/38: manual: Regenerate, Jonas Bernoulli, 2022/01/11
- [elpa] externals/transient 45241225cf 36/38: transient-common-commands: Evaluate lambdas, Jonas Bernoulli, 2022/01/11
- [elpa] externals/transient cda6a12042 23/38: transient-align-variable-pitch: New option, Jonas Bernoulli, 2022/01/11
- [elpa] externals/transient 4c31a10113 31/38: Remove unnecessary with-eval-after-load, Jonas Bernoulli, 2022/01/11
- [elpa] externals/transient 8b1f8dcc51 35/38: transient--minibuffer-depth: Must always be a number, Jonas Bernoulli, 2022/01/11
- [elpa] externals/transient 9412f26175 37/38: manual: Use more @itemx, Jonas Bernoulli, 2022/01/11
- [elpa] externals/transient bf29731a72 13/38: transient--post-command: Don't pop and push equal redisplay maps, Jonas Bernoulli, 2022/01/11
- [elpa] externals/transient 22e032ae65 24/38: Move obsolete variable declaration, Jonas Bernoulli, 2022/01/11