gnu-emacs-sources
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNU ELPA] Tmr version 0.4.0


From: ELPA update
Subject: [GNU ELPA] Tmr version 0.4.0
Date: Thu, 07 Jul 2022 17:04:34 -0400

Version 0.4.0 of package Tmr has just been released in GNU ELPA.
You can now find it in M-x package-list RET.

Tmr describes itself as:
  Set timers using a convenient notation

More at https://elpa.gnu.org/packages/tmr.html

Recent NEWS:

                          ━━━━━━━━━━━━━━━━━━━
                           CHANGE LOG OF TMR
                          ━━━━━━━━━━━━━━━━━━━


This document contains the release notes for each tagged commit on the
project's main git repository: <https://git.sr.ht/~protesilaos/tmr>.

The newest release is at the top.  For further details, please consult
the manual: <https://protesilaos.com/emacs/tmr>.


Version 0.4.0 on 2022-07-07
═══════════════════════════

  The general theme of this release is that TMR became simpler, better,
  and more robust.  Daniel Mendler provided lots of patches and is now
  recognised as co-author of the package together with Damien Cassou and
  me (Protesilaos).  With the exception of documentation changes and
  other accompanying tweaks, all of the following are courtesy of Daniel
  Mendler.  Consult the git log for the minutia.

  ⁃ Timers can also be set using an absolute time input.  For example,
    `21:45' will set a timer from now until the specified time.  The
    familiar ways of starting timers with relative values, work as they
    did before.  This is part of a wider internal revision to make the
    parsing of input more strict.

  ⁃ TMR no longer maintains distinct feature sets between its minibuffer
    and tabulated interfaces.  What works in one context, works equally
    in the other.  All commands that were formerly available only in the
    `tmr-tabulated-mode' (accessed via `tmr-tabulated-view') are now
    implemented anew to provide the requisite minibuffer capabilities.
    When called from inside the `tmr-tabulated-mode', the commands
    operate on the timer at point.  Otherwise they prompt for completion
    among the available timers (where relevant).  This covers all
    operations for creating, cloning, [re-]describing, rescheduling, and
    removing timers.  The `tmr-tabulated-mode-map' is updated thus:

    ┌────
    │ (defvar tmr-tabulated-mode-map
    │   (let ((map (make-sparse-keymap)))
    │     (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)
    │     (define-key map "T" #'tmr-with-description)
    │     (define-key map "c" #'tmr-clone)
    │     (define-key map "e" #'tmr-edit-description)
    │     (define-key map "s" #'tmr-reschedule)
    │     map)
    │   "Keybindings for `tmr-tabulated-mode-map'.")
    └────

    Similarly, our sample key bindings are these:

    ┌────
    │ ;; OPTIONALLY set your own global key bindings:
    │ (let ((map global-map))
    │   (define-key map (kbd "C-c t t") #'tmr)
    │   (define-key map (kbd "C-c t T") #'tmr-with-description)
    │   (define-key map (kbd "C-c t l") #'tmr-tabulated-view) ; "list timers" 
mnemonic
    │   (define-key map (kbd "C-c t c") #'tmr-clone)
    │   (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 r") #'tmr-remove)
    │   (define-key map (kbd "C-c t R") #'tmr-remove-finished))
    └────

  ⁃ The tabulated view now shows the remaining time for all timer
    objects.  This is how the `*tmr-tabulated-view*' buffer is
    formatted:

    ┌────
    │ Start      End        Remaining  Description
    │ 10:11:49   10:11:54   ✔
    │ 10:11:36   10:31:36   19m 35s
    │ 10:11:32   10:26:32   14m 31s    Yet another test
    │ 10:11:16   10:21:16   9m 14s     Testing how it works
    └────

  ⁃ All timer objects are refactored to expose a properly formatted
    completion table.  The completion category is `tmr-timer'.  In
    practical terms, `embark' (and other standards-compliant packages)
    can operate on them.  The manual provides sample glue code for
    Embark:

    #+begin_src emacs-lisp (defvar tmr-action-map (let ((map
    (make-sparse-keymap))) (define-key map "k" #'tmr-remove) (define-key
    map "r" #'tmr-remove) (define-key map "R" #'tmr-remove-finished)
    (define-key map "c" #'tmr-clone)
  …  …



reply via email to

[Prev in Thread] Current Thread [Next in Thread]