branch: externals/tmr
commit 88a16c9ac51093b18fd90fc71b57ee8b86123908
Author: Daniel Mendler <[email protected]>
Commit: Protesilaos Stavrou <[email protected]>
Add tmr-remove for uniformity with other commands
---
README.org | 3 ++-
tmr-tabulated.el | 5 +++--
tmr.el | 21 ++++++++++++++-------
3 files changed, 19 insertions(+), 10 deletions(-)
diff --git a/README.org b/README.org
index 213ae654ac..27f4d9496b 100644
--- a/README.org
+++ b/README.org
@@ -324,7 +324,8 @@ Everything is in place to set up the package.
(define-key map (kbd "C-c t k") #'tmr-cancel)
(define-key map (kbd "C-c t s") #'tmr-reschedule)
(define-key map (kbd "C-c t e") #'tmr-edit-description)
- (define-key map (kbd "C-c t K") #'tmr-remove-finished))
+ (define-key map (kbd "C-c t r") #'tmr-remove)
+ (define-key map (kbd "C-c t R") #'tmr-remove-finished))
#+end_src
* Acknowledgements
diff --git a/tmr-tabulated.el b/tmr-tabulated.el
index 741788af32..2c7ac1e375 100644
--- a/tmr-tabulated.el
+++ b/tmr-tabulated.el
@@ -62,8 +62,9 @@
(defvar tmr-tabulated-mode-map
(let ((map (make-sparse-keymap)))
- (define-key map "k" #'tmr-cancel)
- (define-key map "K" #'tmr-remove-finished)
+ (define-key map "k" #'tmr-remove)
+ (define-key map "r" #'tmr-remove)
+ (define-key map "R" #'tmr-remove-finished)
(define-key map "+" #'tmr)
(define-key map "t" #'tmr)
(define-key map "*" #'tmr-with-description)
diff --git a/tmr.el b/tmr.el
index c70c0ea025..8b3167c26b 100644
--- a/tmr.el
+++ b/tmr.el
@@ -211,18 +211,25 @@ Populated by `tmr' and then operated on by `tmr-cancel'.")
(defvar tmr--update-hook nil
"Hooks to execute when timers are changed.")
+;;;###autoload
+(defun tmr-remove (timer)
+ "Cancel and remove TIMER object set with `tmr' command.
+Interactively, let the user choose which timer to cancel with
+completion."
+ (interactive (list (tmr--read-timer)))
+ (cancel-timer (tmr--timer-timer-object timer))
+ (setq tmr--timers (delete timer tmr--timers))
+ (run-hooks 'tmr--update-hook)
+ (run-hook-with-args 'tmr-timer-cancelled-functions timer))
+
;;;###autoload
(defun tmr-cancel (timer)
"Cancel TIMER object set with `tmr' command.
Interactively, let the user choose which timer to cancel with
-completion."
+completion. This command is the same as `tmr-remove' but
+chooses only among active timers."
(interactive (list (tmr--read-timer :active)))
- (if (not timer)
- (user-error "No `tmr' to cancel")
- (cancel-timer (tmr--timer-timer-object timer))
- (setq tmr--timers (delete timer tmr--timers))
- (run-hooks 'tmr--update-hook)
- (run-hook-with-args 'tmr-timer-cancelled-functions timer)))
+ (tmr-remove timer))
;;;###autoload
(defun tmr-reschedule (timer)