Version 0.7.1 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.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 function definition that is used if no function body is provided using ~transient-define-suffix~. 5b334a51 - Taught ~transient-suffix-object~ about ~transient--pending-suffix~. 20a3770d Bug fixes: - If ~transient-parse-suffix~ and ~transient-parse-suffixes~ are called with an invalid value for their ~prefix~ argument, they failed to detect that. 03e752d9 - If ~nil~ is encountered inside a group specification, that was silently ignored. Now an error is signaled. 8c01a1eb - ~find-function~ wasn't able to locate the definitions of infix commands anymore. a30df67b - There was no binding for ~ignore-preserving-kill-region~ in ... ...
