Version 0.7.3 of package Transient has just been released in GNU ELPA. You can now find it in M-x list-packages RET.
Transient describes itself as: ================== Transient commands ================== More at https://elpa.gnu.org/packages/transient.html ## Summary: 1 Transient command menus ═════════════════════════ Transient is the library used to implement the keyboard-driven “menus” in [Magit]. It is distributed as a separate package, so that it can be used to implement similar menus in [other packages]. [Magit] <https://github.com/magit/magit/> [other packages] <https://melpa.org/#/transient> 1.1 Some things that Transient can do ───────────────────────────────────── • Display current state of arguments • Display and manage lifecycle of modal bindings • Contextual user interface • Flow control for wizard-like composition of interactive forms • History & persistence • Rendering arguments for controlling CLI programs 1.2 Complexity in CLI programs ────────────────────────────── ## Recent NEWS: # -*- mode: org -*- * v0.7.3 2024-07-13 - Refactored code responsible for inserting columns. Bug fix: - The ~transient-current-*~ variables are intended to only be used by suffix commands, when they are invoked from a prefix. Previously they were only cleared when the prefix is ultimately exited, which meant that they unintentionally were accessible in timers. Now the values of these variables are nil when used outside their intended scope. 0e0ece32, f2cb28a5 * v0.7.2 2024-06-24 - Added support for adding suffixes that activate value presets. #183 Bug fix: - Restored the ability to individually set infix arguments if the prefix's ~refresh-suffixes~ slot is non-nil. 8db5f0fd * v0.7.1 2024-06-19 - Added a workaround for ~emoji.el~ from Emacs 29.1 calling an internal function using an outdated number of arguments. #288 * v0.7.0 2024-06-18 - Added new macro ~transient-augment-suffix~, which can be used to specify the suffix behavior of a command that was previously defined as a prefix, using ~transient-define-prefix~. 2fd3ea14 - Added new function ~transient-scope~, which is just a convenient way to get the value of the ~scope~ slot of the ~transient-prefix-object~. 7f6c39c5 - Added new hook ~transient-setup-buffer-hook~, which is run early when setting the transient menu buffer. #283 - Added new class ~transient-information*~, a variant of recently added ~transient-information~ class. 8a80e952 - By default our macros that define commands, mark those as for interactive use only. ~(declare (interactive-only nil))~ can now be used to overwrite that. fcc60e27 - Groups now also accept ~:inapt*~ predicates. 3d395d64 - Spaces between columns is reduced from three to two. dd93001e - Removed unused ~transient-plist-to-alist~ function. 1251faf0 Bug fixes: - ~transient--force-fixed-pitch~ was run to late to always succeed. #283 - Key binding conflict detection was too strict, taking hypothetical bindings for inapt commands into account. c356d1bc - Key binding conflict detection did not consider bindings in regular keymaps, such as ~transient-base-map~. 2698d62d - ~func-arity~ gets confused when a function is advised, so we had to add a wrapper function ~transient--func-arity~. 91dd7bb3 - Some mistakes, that can be expected to occur when defining suffix and prefix commands, were not detected. 7e827c31 * v0.6.0 2024-03-21 - On Emacs 28.1 and later, all infix commands and suffix commands that are defined inline (i.e., using a lambda when defining a prefix command), are now hidden from ~execute-extended-command~ (aka ~M-x~) /by default/. It was already possible to hide these commands, but users had to opt-in explicitly. After refactoring how these commands are declared to be unsuitable for ~M-x~, it is now possible to hide them /without/ also hiding other, unrelated kinds of unsuitable commands. I recommend that you instruct ~M-x~ to hide /all/ unsuitable command. This requires that you customizing ~read-extended-command-predicate~, because the Emacs authors have decided that this should be an opt-in feature. Note that this has no effect on Emacs releases before 28.1. - Added documentation stating that ~:class~ has to be specified when using ~:setup-children~. beecdc85 - Added a new prefix slot ~column-widths~, which can be used to specify the minimal width of each column in all ~transient-columns~ groups of that prefix. 92e8952e - When assigning a name to a suffix that is defined inline, we no longer use the suffix description, iff that would result in an overly long name. 81a108ba - Functions used as the value of face slots can now take one argument, the suffix object. Functions that take zero arguments are still supported. Additionally, ~transient--pending-suffix~ is bound around calls to these functions, but it is better to pass the object as an argument. f582a9bc - The new ~definition~ suffix slot can be used to specify a default ... ...