Version 0.4.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 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.4.1 2023-06-02 Bug fixes: - 070d47b0 Support searches that end right after suffix - ab831828 transient--insert-group(columns): Drop separator before first column - 62edeffd #247 Fix bug using :incompatible using suffixes before infixes - 6efa9fad transient-predicate-map: Bind univeral-argument-more * v0.4.0 2023-05-10 - Transient has to update state after every suffix command. If that fails for some reason, then Emacs ends up in an badly broken state. It was rare, but in the worst case scenario, that meant that Emacs refused to call any more commands and had to be killed. Naturally ~post-command-hook~ is the first choice to run something after commands, but unfortunately that hook is not guaranteed to run only once, and worse it is not guaranteed run /after/ the command. Working around this limitation made an essential part of Transient much more complex and fragile. As new edge-cases were discovered, new and increasingly desperate heuristics had to be added, until I finally decided that relying solely on hooks was just not feasible. Now ~pre-command-hook~ is used to advice ~this-command~, to add an around advice, which ensures that the state update takes place, even when ~post-command-hook~ is run prematurely. The advice wraps both the function body and the interactive spec with ~unwind-protect~, so we can finally be sure that the state change is always performed, and that the advice is removed again. It has been an interesting journey, and I have documented it in long commit messages. If you are interested in the details, see 7b8a7d71 (which still tries to avoid using any advice), 51c68c87, 52cac9c0, bug#61179 and bug#61176. - The ~transient-define-prefix~ now expands to code instead of data, meaning that lambda expressions are finally properly evaluated and byte-compiled. ea851f3b e88f51d6 277e5f2d a1774182 - Popup navigation is no longer considered a second-class feature and is enabled by default. Some transients allow arbitrary non-suffixes to be invoked, so some key bindings, which were previously used for popup navigation, had to be removed, to avoid conflicts. 98d50202 ff - Each prefix and suffix can now have its own help function. This is configured using the new ~show-help~ slot. ea5ac99f - The ~transient-options~ class now supports two types of options that can have multiple values: repeated option-value pairs and a final option that takes all remaining arguments as value. #154 - Added support for the use of non-proportional text in the transient popup. 7f5520b3 - Imenu was taught about Transient's definition macros. #178 - It is now possible to return to the parent prefix from a sub-prefix. e90f7a16 - Boolean values of the ~transient~ slot of sub-prefixes are now interpreted correctly. 4a36b1d9 - Added new option ~transient-hide-during-minibuffer-read~. 5762bd9a - Added new option ~transient-align-variable-pitch~. cda6a120 - Added new command ~transient-reset~, which clears the set and saved value of the active transient. 51585b8d - When using Emacs 28, ~execute-extended-command~ can be told to ignore transient infix commands. Even when using that Emacs version, that command does not ignore any commands by default, but this behavior can be easily be enabled using: (setq read-extended-command-predicate 'command-completion-default-include-p) Infix arguments are implemented as commands, so they by default show up as completion candidates of ~execute-extended-command~, which is useless because they are only intended to be invoked from transient prefix commands. Enable this feature to prevent that. - Added new command ~transient-toggle-debug~. b466cd9a - Depend on the Compat package, allowing me to use convenient features that were added to Emacs over the last few years, without having to wait another few years until everybody has updated to a reasonably ... ...