[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNU ELPA] Transient version 0.4.0
From: |
ELPA update |
Subject: |
[GNU ELPA] Transient version 0.4.0 |
Date: |
Wed, 10 May 2023 17:04:17 -0400 |
Version 0.4.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.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
recent Emacs release. 5ae3c401
- Added basic support for suffixes that span multiple lines (multi-row
cells). #193
- Infix arguments can now be invoked following a prefix argument. To
use a negative prefix argument use "C--". "-" cannot be used anymore
because it conflicts with the most common prefix key used for infix
...
...
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNU ELPA] Transient version 0.4.0,
ELPA update <=