branch: externals/tmr commit 88a16c9ac51093b18fd90fc71b57ee8b86123908 Author: Daniel Mendler <m...@daniel-mendler.de> Commit: Protesilaos Stavrou <i...@protesilaos.com>
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)