1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-09 15:50:40 -08:00

Display times in a more human-readable way in list-timers

* lisp/emacs-lisp/timer-list.el (list-timers): Format the
intervals in a more human-readable way (bug#39956).
This commit is contained in:
Lars Ingebrigtsen 2020-10-28 10:07:03 +01:00
parent e6f8f68e37
commit 0cb44eed6c

View file

@ -49,23 +49,24 @@
(let ((time (list (aref timer 1)
(aref timer 2)
(aref timer 3))))
(format "%10.2f"
(float-time
(if (aref timer 7)
time
(time-subtract time nil)))))
'help-echo "Time in sec till next invocation")
(format "%12s"
(format-seconds "%dd %hh %mm %z%ss"
(float-time
(if (aref timer 7)
time
(time-subtract time nil))))))
'help-echo "Time until next invocation")
;; Repeat.
,(propertize
(let ((repeat (aref timer 4)))
(cond
((numberp repeat)
(format "%8.1f" repeat))
((null repeat)
" -")
(t
(format "%8s" repeat))))
'help-echo "Symbol: repeat; number: repeat interval in sec")
,(let ((repeat (aref timer 4)))
(cond
((numberp repeat)
(propertize
(format "%12s" (format-seconds "%dd %hh %mm %z%ss" repeat))
'help-echo "Repeat interval"))
((null repeat)
(propertize " -" 'help-echo "Runs once"))
(t
(format "%12s" repeat))))
;; Function.
,(propertize
(let ((cl-print-compiled 'static)
@ -93,8 +94,8 @@
(setq-local revert-buffer-function #'list-timers)
(setq tabulated-list-format
'[("Idle" 6 timer-list--idle-predicate)
(" Next" 12 timer-list--next-predicate)
(" Repeat" 11 timer-list--repeat-predicate)
(" Next" 12 timer-list--next-predicate)
(" Repeat" 12 timer-list--repeat-predicate)
("Function" 10 timer-list--function-predicate)]))
(defun timer-list--idle-predicate (A B)