[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/transient 70abf5a07b 1/3: Update changelog
|
From: |
Jonas Bernoulli |
|
Subject: |
[elpa] externals/transient 70abf5a07b 1/3: Update changelog |
|
Date: |
Wed, 10 May 2023 09:51:30 -0400 (EDT) |
branch: externals/transient
commit 70abf5a07b3391164e9a8706f6319fb6741fb3c0
Author: Jonas Bernoulli <jonas@bernoul.li>
Commit: Jonas Bernoulli <jonas@bernoul.li>
Update changelog
---
CHANGELOG | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--------
1 file changed, 62 insertions(+), 8 deletions(-)
diff --git a/CHANGELOG b/CHANGELOG
index 54b727f9bb..2dcb40f28a 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,10 +1,34 @@
# -*- mode: org -*-
* v0.4.0 UNRELEASED
-- Compatibility of Transient with various uses of the minibuffer has
- been greatly improved, addressing several edge-cases and making it
- possible to invoke a transient prefix command when the minibuffer
- is active. 7b8a7d71 et al.
+- 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
@@ -44,11 +68,12 @@
(setq read-extended-command-predicate
'command-completion-default-include-p)
-- Added new command ~transient-toggle-debug~. b466cd9a
+ 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.
-- Expressions inside the group vectors that are prefixed with a comma
- are now evaluated when the ~transient-define-prefix~ macro is expanded.
- 99943f73
+- 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
@@ -63,6 +88,21 @@
because it conflicts with the most common prefix key used for infix
arguments. ed2febd0
+- Removed obsolete aliases for functions deprecated in v0.3.0. #192
+
+- Duplicated suffix commands are now disambiguated, making it possible
+ to bind a command multiple times as a suffix of a transient command,
+ but still have it do different things depending on what binding is
+ used, based on the value of some slot of the corresponding suffix
+ object, similar to how ~self-insert-command~ inserts the pressed key.
+ f27c840a
+
+- ~recursive-edit~ and ~top-level~ can now be used while a transient is
+ active. fcdeadc1 5a1b2bac
+
+- Switched to Emacs 29's new keymap functions, which are also supported
+ in newer releases, thanks to the Compat package. 87f70af5 5a966aa8
+
Bug fixes:
- 938b0591 #173 transient--show: Set point after displaying window again
@@ -93,6 +133,20 @@ Bug fixes:
- 5686a792 transient--suspend-override: Cancel prefix key display
- 1c84d7ad Remap kp-subtract, kp-equal and kp-add
- 5302db18 Once popup is showing keep doing so until full exit
+- cc887ebe transient--delay-post-command: Fix execute-extended-command handling
+- 3b267425 transient--fit-window-to-buffer: Use correct package prefix
+- 9d4fabc3 #208 transient--describe-function: Handle renamed help buffer
+- 555792f7 #209 Fix setting level of anonymous infixes
+- 0a3b22f1 #215 transient--delay-post-command: Account for events returned as
vector
+- ad953cc3 #204 transient--insert-group: Add fallback for failed alignment
calculation
+- 5337e5eb #230 transient-define-{*}: Error if ARGLIST is missing
+- d800ce01 Use equal to compare with empty vector
+- 3657117b #234 transient--parse-suffix: Detect when mandatory command is
missing
+- f88cbbc5 #234 transient--parse-suffix: Differentiate command and desc lambda
+- 0204a243 #234 transient--parse-suffix: Define suffix aliases at load-time
+- 0ae0de43 #241 transient--invalid: Add special-case for anonymous inapt
commands
+- af7fe42b #244 transient--parse-suffix: Don't try to evaluate closures again
+- 6ff5c51f transient-isearch-abort: Fix partial match case
Also contains various documentation updates, code clean-ups and
build improvements.