#+title: Embark changelog

* Development version
- Added a mode line indicator showing the number of selected targets in
  the current buffer (contributed by @minad, thanks!)
- Now =embark-select= can also be called as a top-level command, from
  outside =embark-act=. When called that way, it will select the first
  target at point.
- Renamed =embark-isearch= to =embark-isearch-forward= and added
  =embark-isearch-backward=.
- Added key bindings for org agenda items consistent with those of org
  headings where possible. Also improved bindings for org targets in
  general.
- =embark-become= now removes any invisible text from the minibuffer
  input on the grounds that users probably expect the target command
  to receive exactly the input they can see.
- The meaning of the prefix argument in =embark-bindings= has flipped:
  now by default global key bindings are excluded and you =C-u= to
  include them.
- If any candidate in an embark-collect buffer contains a newline,
  then candidates will be separated by horizontal lines. This is handy
  for the kill-ring, which you can browse by calling =embark-collect=
  from =yank-pop=.
- =embark-org= now has support for acting on references to org headings
  in other buffers, by jumping to the heading first and then running
  the action. One source of references to org headings in other
  buffers are agenda views: each agenda item is such a reference. But
  this feature also supports some great third party commands which
  produce references to org headings, such as =org-ql-find= from the
  =org-ql= package or =consult-org-heading= from =consult=.
* Version 0.22.1 (2023-04-20)
** New feature: selections
Now users can select several targets to make an ad hoc collection. The
commands =embark-act-all=, =embark-export= and =embark-collect= will act on
the selection if it is non-empty. To select or deselect a target use
the =embark-select= action (bound to =SPC= in =embark-general-map=). If you
have some targets selected, then using =embark-select= through
=embark-act-all= will deselect them.

Before this change the Embark Collect buffers had their own
implementation of selections which has been removed. This is how to
translate the old bindings to the new feature (which is available in
all buffers, not just Embark Collect buffers!):

| Task               | Old binding | New binding   |
|--------------------+-------------+---------------|
| Mark a candidate   | m           | a SPC         |
| Unmark a candidate | u           | a SPC         |
| Unmark all         | U           | A SPC         |
| Mark all [1]       | t           | A SPC         |
| Toggle all marks   | t           | not available |

[1] Marking all candidates (with either the old =t= or the new =A SPC=)
requires that there are no marked candidates to begin with.

In order to make room for the binding of =embark-select= to
=SPC=, some other key bindings were moved:

- =mark= in =embark-general-map= was moved to =C-SPC=.
- =outline-mark-subtree= in =embark-heading-map= was moved to =C-SPC=.
- =whitespace-cleanup-region= in =embark-region-map= was moved to =F=.

* Version 0.21.1 (2020-01-30)
- Finally started this changelog on 2023-04-20. Known issues with the
  changelog: it started very late, the first entry is not very
  informative.
