Version 0.5.0 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 commands ════════════════════ Taking inspiration from prefix keys and prefix arguments, Transient implements a similar abstraction involving a prefix command, infix arguments and suffix commands. We could call this abstraction a "transient command", but because it always involves at least two commands (a prefix and a suffix) we prefer to call it just a "transient". Transient keymaps are a feature provided by Emacs. Transients as implemented by this package involve the use of transient keymaps. ## Recent NEWS: # -*- mode: org -*- * v0.5.0 2023-11-28 - Some suffix commands exit the transient from which they were invoked, while others don't (allowing the user to invoke another suffix without first having to enter the transient again). Until now it wasn't possible to tell which category any given suffix falls into, at least not by default. Now the key binding of each suffix is colorized to indicate its transient behavior. Red means that the suffix exits the transient, and blue means that it does not. Keys for suffixes that currently cannot be invoked are gray. Likewise, the thin line, that is drawn between the transient popup buffer and the minibuffer, is used to indicate what happens, if you invoke a command that is not a suffix. Most prefixes do not allow non-suffixes to be invoked, so this line usually is gray. c8a9ac51 - Many faces have also been improved. This involves changing which built-in faces they inherit from, some explicit changes to their appearance, and semantic clarifications. Of course your mileage may vary — it's possible that some face just happened to look right with your chosen theme, but now it has to be themed to achieve that again. 47d3f01d 71d16d86 et al. - Added a new face, ~transient-delimiter~, which is used for parentheses around values and the pipe character used to separate possible values from each other. 567b5d54 - Added a new command ~transient-toggle-level-limit~, bound to ~C-x a~, which temporarily shows all suffix commands a transient has to offer. This makes it possible to occasionally use more obscure commands and arguments, without having to always display them. For more information see [[https://magit.vc/manual/transient/Enabling-and-Disabling-Suffixes.html][Enabling and Disabling Suffixes]]. #243 The changes described below, only directly affect package authors and users who implement their own transients. If that does not describe you, then all you have to know is that many features were fine-tuned and otherwise improved, opening up some new use-cases and making some things easier to implement. This will hopefully lead to improvements in your favorite transient-using packages in the coming months. - It sometimes makes sense to bind multiple keys to the same suffix command, e.g., because they behave differently based on the suffix description, or some other slot that can be set per binding. Previously these bindings shared a visibility level; how this can be set individually. #153 - While functions are run, which format strings to be inserted into the transient buffer or to determine whether other aspects of a suffix, that transient buffer no longer is the current buffer. Instead the buffer in which the prefix and its suffixes operate, is the current buffer. This affects functions such as ~transient-format-description~ and those found in predicate slots such as ~if~. In contexts where the transient buffer is needed but the other buffer happens to be current, the new macro ~transient-with-shadowed-buffer~ can be used to temporarily change that. - The new suffix slots ~face~ and ~inapt-face~ can be used to specify how a suffix looks, which in simple cases is more convenient than using a function as ~description~ and adding the face there. The values of these slots should be faces or functions that returns a face. The default for ~inapt-face~ is ~transient-inapt-suffix~, but in some cases it is undesirable to apply this face to the whole description, so this can be overridden by setting this slot to ~nil~ for individual suffixes. The default for ~face~ is ~nil~. c2a75880 8e15a29b 71399d21 - Added new variables ~transient--pending-suffix~ and ~transient--pending-group~, which are bound while a suffix/group is being inserted. These are mostly intended for internal purposes, but in some rare complex cases package authors might need them too. 0717589a 70e8dc80 - Sometimes it is useful to display some information in the transient ... ...