[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNU ELPA] Transient version 0.4.1

From: ELPA update
Subject: [GNU ELPA] Transient version 0.4.1
Date: Sat, 03 Jun 2023 05:03:13 -0400

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

## 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 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.

- 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

  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

reply via email to

[Prev in Thread] Current Thread [Next in Thread]