#+TITLE: Ivy CHANGELOG
#+OPTIONS: H:4 num:nil toc:3
#+SETUPFILE: ~/git/Emacs/org-html-themes/setup/theme-readtheorg.setup
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="css/kbd-style.css"/>

* 0.6.0
:PROPERTIES:
:CUSTOM_ID: 0.6.0
:END:
-----
** Fixes
:PROPERTIES:
:CUSTOM_ID: 0-6-0-fixes
:END:
*** =swiper-avy= should use only the current window
:PROPERTIES:
:CUSTOM_ID: 0-6-0-fx-swiper-avy-should-use-only-the-current-window
:END:
Not all windows. See [[https://github.com/abo-abo/swiper/issues/117][#117]].
-----
*** fix wrap-around for =ivy-next-line=
:PROPERTIES:
:CUSTOM_ID: 0-6-0-fx-fix-wrap-around-for-ivy-next-line
:END:
See [[https://github.com/abo-abo/swiper/issues/118][#118]].
-----
*** =swiper-avy= should do nothing for empty input
:PROPERTIES:
:CUSTOM_ID: 0-6-0-fx-swiper-avy-should-do-nothing-for-empty-input
:END:
See [[https://github.com/abo-abo/avy/issues/50][#50]].
-----
*** =ivy-alt-done= should require TRAMP if necessary
:PROPERTIES:
:CUSTOM_ID: 0-6-0-fx-ivy-alt-done-should-require-tramp-if-necessary
:END:
See [[https://github.com/abo-abo/swiper/pull/145][#145]].
-----
*** =swiper-query-replace= shouldn't miss the first occurrence
:PROPERTIES:
:CUSTOM_ID: 0-6-0-fx-swiper-query-replace-shouldnt-miss-the-first-occurrence
:END:
See [[https://github.com/abo-abo/swiper/pull/144][#144]].
-----
*** =swiper= should not deactivate mark
:PROPERTIES:
:CUSTOM_ID: 0-6-0-fx-swiper-should-not-deactivate-mark
:END:
*** =ivy-mode= should not switch to TRAMP for certain input
:PROPERTIES:
:CUSTOM_ID: 0-6-0-fx-ivy-mode-should-not-switch-to-tramp-for-certain-input
:END:
See [[https://github.com/abo-abo/swiper/pull/145][#145]].
-----
*** =counsel-find-file= should work better with TRAMP
:PROPERTIES:
:CUSTOM_ID: 0-6-0-fx-counsel-find-file-should-work-better-with-tramp
:END:
"/ssh:foo" should not be cut off
See [[https://github.com/abo-abo/swiper/pull/145][#145]].
-----
*** =counsel-find-file= supports Windows drive letters
:PROPERTIES:
:CUSTOM_ID: 0-6-0-fx-counsel-find-file-supports-windows-drive-letters
:END:
See [[https://github.com/abo-abo/swiper/pull/155][#155]].
-----
*** =counsel-file-file= should work better with files that contain "~"
:PROPERTIES:
:CUSTOM_ID: 0-6-0-fx-counsel-file-file-should-work-better-with-files-that-contain-
:END:
See [[https://github.com/abo-abo/swiper/pull/157][#157]].
-----
*** =counsel-M-x= should respect =ivy-format-function=
:PROPERTIES:
:CUSTOM_ID: 0-6-0-fx-counsel-m-x-should-respect-ivy-format-function
:END:
See [[https://github.com/abo-abo/swiper/pull/150][#150]].
-----
*** =counsel-git-grep= should position better on exit
:PROPERTIES:
:CUSTOM_ID: 0-6-0-fx-counsel-git-grep-should-position-better-on-exit
:END:
See [[https://github.com/abo-abo/swiper/pull/153][#153]].
-----
*** =ivy-mode= should re-scale text to minibuffer height
:PROPERTIES:
:CUSTOM_ID: 0-6-0-fx-ivy-mode-should-re-scale-text-to-minibuffer-height
:END:
See [[https://github.com/abo-abo/swiper/pull/151][#151]].
-----
*** =counsel-unicode-char= should use action-style call
:PROPERTIES:
:CUSTOM_ID: 0-6-0-fx-counsel-unicode-char-should-use-action-style-call
:END:
See [[https://github.com/abo-abo/swiper/pull/160][#160]].
-----
*** =ivy-read= should allow % in prompt string
:PROPERTIES:
:CUSTOM_ID: 0-6-0-fx-ivy-read-should-allow--in-prompt-string
:END:
See [[https://github.com/abo-abo/swiper/pull/171][#171]].
-----
*** =ivy-call= should execute in proper window
:PROPERTIES:
:CUSTOM_ID: 0-6-0-fx-ivy-call-should-execute-in-proper-window
:END:
See [[https://github.com/abo-abo/swiper/pull/176][#176]].
** New Features
:PROPERTIES:
:CUSTOM_ID: 0-6-0-fx-new-features
:END:
*** =ivy-mode=
:PROPERTIES:
:CUSTOM_ID: 0-6-0-nf-ivy-mode
:END:
**** Open an Info file on the file system
When in =Info-mode=, press ~g~ and select either "(./)" or "(../)" to
switch to file name completion. That file will be opened with Info.
-----
**** Account for =minibuffer-depth-indication-mode=
If you have =minibuffer-depth-indication-mode= on, the minibuffer
prompt will indicate the current depth.
See [[https://github.com/abo-abo/swiper/pull/134][#134]].
-----
**** Add fuzzy matching function
To enable fuzzy matching, set your =ivy-re-builders-alist= accordingly:
#+begin_src elisp
(setq ivy-re-builders-alist
      '((t . ivy--regex-fuzzy)))
#+end_src
See [[https://github.com/abo-abo/swiper/pull/136][#136]].

See also [[https://github.com/abo-abo/swiper/pull/142][#142]] for toggling fuzzy matching with ~C-o m~.
-----
**** =case-fold-search= optimization
Bind case-fold-search to t when the input is all lower-case:

- input "the" matches both "the" and "The".
- input "The" matches only "The".

See [[https://github.com/abo-abo/swiper/pull/166][#166]].
-----
**** Allow to see the candidate index a la =anzu= via =ivy-count-format=
To have this feature, use something like this:
#+begin_src elisp
(setq ivy-count-format "(%d/%d) ")
#+end_src
See [[https://github.com/abo-abo/swiper/pull/167][#167]].

You can also set this to "", if you don't want any count, see [[https://github.com/abo-abo/swiper/pull/188][#188]].
-----
**** Allow to add additional exit points for any command
Example for =ivy-switch-to-buffer=:
#+begin_src elisp
(ivy-set-actions
 'ivy-switch-buffer
 '(("k"
    (lambda (x)
      (kill-buffer x)
      (ivy--reset-state ivy-last))
    "kill")
   ("j"
    ivy--switch-buffer-other-window-action
    "other")))
#+end_src

After this:

- use ~M-o k~ to kill a buffer
- use ~M-o j~ to switch to a buffer in other window

You can always use ~M-o o~ to access the default action. When there is
only one action, ~M-o~ does the same as ~C-m~.

See [[https://github.com/abo-abo/swiper/pull/164][#164]].








-----
*** =counsel-describe-function= and =counsel-decribe-variable=
:PROPERTIES:
:CUSTOM_ID: 0-6-0-nf-counsel-describe-function-and-counsel-decribe-variable
:END:
**** Add a binding to look up the symbol in info
Press ~C-,~ to look up the symbol in info, instead of the default
describe action.
See [[https://github.com/abo-abo/swiper/pull/121][#121]].
-----
**** Handle symbol-at-point better in non-Elisp buffers
See [[https://github.com/abo-abo/swiper/pull/126][#126]].
-----
*** =ivy-switch-buffer=
:PROPERTIES:
:CUSTOM_ID: 0-6-0-nf-ivy-switch-buffer
:END:
**** New face =ivy-virtual=
See [[https://github.com/abo-abo/swiper/pull/129][#129]].
-----
**** Deal better with invisible buffers
See [[https://github.com/abo-abo/swiper/pull/135][#135]].
-----
**** Add custom keymap
You can customize =ivy-switch-buffer-map=.

See [[https://github.com/abo-abo/swiper/pull/164][#164]].
-----
**** Add extra actions
Add a =kill-buffer= action, and =switch-to-buffer-other-window= action.
-----
*** =counsel-git-grep=
:PROPERTIES:
:CUSTOM_ID: 0-6-0-nf-counsel-git-grep
:END:
**** Add Async
Make it fully async: the process =git grep= will be killed and
restarted on new input. This results in almost no keyboard delay.
-----
**** Own history variable
*** =swiper=
:PROPERTIES:
:CUSTOM_ID: 0-6-0-nf-swiper
:END:
**** Own history variable
Having own history variable allows to get more use of ~M-p~, ~M-n~ and ~C-r~.
-----
*** =counsel-el=
:PROPERTIES:
:CUSTOM_ID: 0-6-0-nf-counsel-el
:END:
**** Switch to action-style call
This allows to make use of ~C-M-n~ and ~C-M-p~.
-----
*** =counsel-locate=
:PROPERTIES:
:CUSTOM_ID: 0-6-0-nf-counsel-locate
:END:
**** Add Async
**** Add extra actions
In addition to the default action of opening a file add:

- =xdg-open= action
- =dired= action

Press ~M-o~ or ~C-o~ to access these actions.
-----
**** Add own history

-----
*** API
:PROPERTIES:
:CUSTOM_ID: 0-6-0-nf-api
:END:
**** Add :matcher
A matcher is a function that accepts a regexp and a list of candidates
and returns the filtered list of candidates.

The default matcher is basically =cl-remove-if-not= + =string-match=.
If you'd like to customize this, pass your own matcher.

See =counsel-git-grep-matcher= for an example.
-----
**** Allow to customize the initial input for all commands
Customize =ivy-initial-inputs-alist= for this.
See [[https://github.com/abo-abo/swiper/pull/140][#140]].
-----
**** =ivy-sort-functions-alist= should also examine =this-command=
**** :dynamic-collection is now a boolean
Pass the collection function as the second var instead.

** New Commands
:PROPERTIES:
:CUSTOM_ID: 0-6-0-nf-new-commands
:END:
*** =ivy-call=
:PROPERTIES:
:CUSTOM_ID: 0-6-0-nc-ivy-call
:END:
Execute the current action for the current candidate without exiting
the minibuffer.  Bound to ~C-M-m~ or ~M-RET~ or ~C-o g~.


-----
*** =counsel-find-file=
:PROPERTIES:
:CUSTOM_ID: 0-6-0-nc-counsel-find-file
:END:
Forward to =find-file= with Ivy completion.

=ivy-next-line-and-call= as well as =ivy-resume= should work for this command.

The variable =counsel-find-file-ignore-regexp= allows to ignore
certain files, like dot files.  Input a leading dot to see all files.

The variable =counsel-find-file-at-point= allows to automatically use
=ffap=.  You also can do it manually with ~M-n~ when the point is on a file name.

The variable =counsel-find-file-map= allows to customize the
minibuffer key bindings for this command.

Recommended binding:

#+begin_src elisp
(global-set-key (kbd "C-x C-f") 'counsel-find-file)
#+end_src

You can peek at files with ~C-M-n~ and ~C-M-p~.

See [[https://github.com/abo-abo/swiper/issues/122][#122]] and [[https://github.com/abo-abo/swiper/issues/123][#123]].

See [[https://github.com/abo-abo/swiper/pull/152][#152]] about ~M-n~, ~M-p~ and ~M-i~ switching directories when necessary.

-----
*** =ivy-recentf=
:PROPERTIES:
:CUSTOM_ID: 0-6-0-nc-ivy-recentf
:END:
Find a file on =recentf-list=.

Note that if your set =ivy-use-virtual-buffers=, =recentf-list= is
merged into candidates list for =ivy-switch-buffer=. But if you want
it separately, you can use this command.

See [[https://github.com/abo-abo/swiper/issues/124][#124]].
-----
*** =ivy-yank-word=
:PROPERTIES:
:CUSTOM_ID: 0-6-0-nc-ivy-yank-word
:END:
Add word at point to minibuffer input.

This is similar to what ~C-w~ does for =isearch=.  However it's bound
to ~M-j~ instead of ~C-w~, since ~C-w~ is bound to =kill-region= - a
useful command.

See [[https://github.com/abo-abo/swiper/issues/125][#125]].
-----
*** =counsel-M-x=
:PROPERTIES:
:CUSTOM_ID: 0-6-0-nc-counsel-m-x
:END:
Forward to =execute-extended-command= with Ivy completion.
The candidate list will also display the key binding for each bound command.

This command will piggyback on =smex= for sorting, if =smex= is installed.

Use =counsel-M-x-initial-input= to customize the initial input for
this command.  By default, it's "^" - the regex character that
indicates beginning of string.  This results in much faster matching,
since you usually type the command name from the start.

See [[https://github.com/abo-abo/swiper/pull/136][#136]] and [[https://github.com/abo-abo/swiper/pull/138][#138]].

-----
*** =hydra-ivy=
:PROPERTIES:
:CUSTOM_ID: 0-6-0-nc-hydra-ivy
:END:
Press ~C-o~ to toggle the Hydra for Ivy.
It gives access to shorter bindings and many customizable options.

Use ~C-o >~ to grow the minibuffer.
Use ~C-o <~ to shrink the minibuffer.

See [[https://github.com/abo-abo/swiper/pull/151][#151]].

-----
*** =ivy-toggle-calling=
:PROPERTIES:
:CUSTOM_ID: 0-6-0-nc-ivy-toggle-calling
:END:
Toggle executing the current action each time a new candidate is selected.

This command is bound to ~C-o c~.

To explain how this is useful: ~C-M-m C-M-f C-M-f C-M-f~  is equivalent to ~C-o cjjj~.

-----
*** =ivy-insert-current=
:PROPERTIES:
:CUSTOM_ID: 0-6-0-nc-ivy-insert-current
:END:
Inserts the current candidate into the minibuffer.

Press ~M-i~ if you want something close to the current candidate. You
can follow up with an edit and select.

I find this very useful when creating new files with a similar name to
the existing file: ~C-x C-f M-i~ + a bit of editing is very fast.

See [[https://github.com/abo-abo/swiper/pull/141][#141]].

-----
*** =counsel-load-theme=
:PROPERTIES:
:CUSTOM_ID: 0-6-0-nc-counsel-load-theme
:END:
Forward to =load-theme= with Ivy completion. Allows to rapidly try themes (e.g. with ~C-M-n~).

-----
*** =ivy-reverse-i-search=
:PROPERTIES:
:CUSTOM_ID: 0-6-0-nc-ivy-reverse-i-search
:END:
Allow to recursively match history with ~C-r~.

I like this command from bash shell. The usual way to search through
history is with ~M-p~ and ~M-n~.  Using =ivy-reverse-i-search= will
open a recursive completion session with the current history as the
candidates.
-----
*** =counsel-rhythmbox=
:PROPERTIES:
:CUSTOM_ID: 0-6-0-nc-counsel-rhythmbox
:END:
[[https://oremacs.com/2015/07/09/counsel-rhythmbox/][Control Rhythmbox from Emacs.]]
-----
*** =ivy-dispatching-done=
:PROPERTIES:
:CUSTOM_ID: 0-6-0-nc-ivy-dispatching-done
:END:
Select an action for the current candidate and execute it. Bound to ~M-o~.

Some commands that support ~M-o~:

- =counsel-rhythmbox=
- =counsel-describe-function=
- =counsel-describe-variable=
- =ivy-switch-buffer=
- =counsel-locate=

-----
*** =counsel-org-tag=
:PROPERTIES:
:CUSTOM_ID: 0-6-0-nc-counsel-org-tag
:END:
Forward to =org-set-tags= with Ivy completion.

Selecting any tag each time will toggle it on/off.
The current list of selected tags will be displayed in the prompt.

See [[https://github.com/abo-abo/swiper/pull/177][#177]] and [[https://github.com/abo-abo/swiper/pull/91][#91]].

-----
*** =counsel-org-tag-agenda=
:PROPERTIES:
:CUSTOM_ID: 0-6-0-nc-counsel-org-tag-agenda
:END:
Forward to =org-agenda-set-tags= with Ivy completion.
See [[https://github.com/abo-abo/swiper/pull/177][#177]].

-----
*** =counsel-ag=
:PROPERTIES:
:CUSTOM_ID: 0-6-0-nc-counsel-ag
:END:
Interactively =ag= using Ivy completion.

-----
*** =counsel-recoll=
:PROPERTIES:
:CUSTOM_ID: 0-6-0-nc-counsel-recoll
:END:
Use =recoll= with Ivy completion.
See [[https://oremacs.com/2015/07/27/counsel-recoll/][Using Recoll desktop search database with Emacs]].

Install recoll with =sudo apt-get install recoll=.

-----
*** =swiper-from-isearch=
:PROPERTIES:
:CUSTOM_ID: 0-6-0-nc-swiper-from-isearch
:END:
Start =swiper= from the current =isearch= input.

-----
*** =ivy-immediate-done=
:PROPERTIES:
:CUSTOM_ID: 0-6-0-nc-ivy-immediate-done
:END:
Use this command to exit the minibuffer choosing not the current
candidate, but the current text.  Bound to ~C-M-j~ or ~C-u C-j~.

See [[https://github.com/abo-abo/swiper/pull/183][#183]].

-----
* 0.7.0
:PROPERTIES:
:CUSTOM_ID: 0.7.0
:END:
-----
** Fixes
:PROPERTIES:
:CUSTOM_ID: 0-7-0-fixes
:END:
*** Fix :dynamic-collection not being sorted
:PROPERTIES:
:CUSTOM_ID: 0-7-0-fx-fix-dynamic-collection-not-being-sorted
:END:
*** When :initial-input contains a plus, escape it
:PROPERTIES:
:CUSTOM_ID: 0-7-0-fx-when-initial-input-contains-a-plus,-escape-it
:END:
See [[https://github.com/abo-abo/swiper/issues/195][#195]].
-----
*** Set line-spacing to 0 in the minibuffer
:PROPERTIES:
:CUSTOM_ID: 0-7-0-fx-set-line-spacing-to-0-in-the-minibuffer
:END:
See [[https://github.com/abo-abo/swiper/issues/198][#198]].
-----
*** Enlarge the minibuffer window if the candidate list doesn't fit
:PROPERTIES:
:CUSTOM_ID: 0-7-0-fx-enlarge-the-minibuffer-window-if-the-candidate-list-doesnt-fit
:END:
See [[https://github.com/abo-abo/swiper/issues/198][#198]] and [[https://github.com/abo-abo/swiper/issues/161][#161]] and [[https://github.com/abo-abo/swiper/issues/220][#220]].
-----
*** Fix minibuffer collapsing to one line
:PROPERTIES:
:CUSTOM_ID: 0-7-0-fx-fix-minibuffer-collapsing-to-one-line
:END:
See [[https://github.com/abo-abo/swiper/issues/237][#237]], [[https://github.com/abo-abo/swiper/issues/229][#229]] and [[https://github.com/abo-abo/swiper/issues/77][#77]].
-----
*** Use minibuffer-allow-text-properties
:PROPERTIES:
:CUSTOM_ID: 0-7-0-fx-use-minibuffer-allow-text-properties
:END:
Allows =ivy-read= to return a propertized string.
-----
*** Improve ~C-g~ out of a long-running async process
:PROPERTIES:
:CUSTOM_ID: 0-7-0-fx-improve-c-g-out-of-a-long-running-async-process
:END:
Use =counsel-delete-process= as =:unwind=.
-----
*** Don't regexp-quote :preselect
:PROPERTIES:
:CUSTOM_ID: 0-7-0-fx-dont-regexp-quote-preselect
:END:
See [[https://github.com/abo-abo/swiper/issues/245][#245]].
-----
*** Fix ivy-partial for fuzzy completion
:PROPERTIES:
:CUSTOM_ID: 0-7-0-fx-fix-ivy-partial-for-fuzzy-completion
:END:
See [[https://github.com/abo-abo/swiper/issues/266][#266]].
-----
*** ivy-resume should pass :caller
:PROPERTIES:
:CUSTOM_ID: 0-7-0-fx-ivy-resume-should-pass-caller
:END:
See [[https://github.com/abo-abo/swiper/issues/245][#245]].
-----
*** Fix the regression in perfect match logic
:PROPERTIES:
:CUSTOM_ID: 0-7-0-fx-fix-the-regression-in-perfect-match-logic
:END:
See [[https://github.com/abo-abo/swiper/issues/270][#270]].
-----
*** Fix pasting file paths on Windows
:PROPERTIES:
:CUSTOM_ID: 0-7-0-fx-fix-pasting-file-paths-on-windows
:END:
*** ~C-j~ should no stop completion for a pasted file path
:PROPERTIES:
:CUSTOM_ID: 0-7-0-fx-c-j-should-no-stop-completion-for-a-pasted-file-path
:END:
*** ~C-M-j~ should use =ivy--directory=
:PROPERTIES:
:CUSTOM_ID: 0-7-0-fx-c-m-j-should-use-ivy--directory
:END:
When completing file names, expand the file name properly.
See [[https://github.com/abo-abo/swiper/issues/275][#275]].
-----
*** Use a specific blend method for dark themes
:PROPERTIES:
:CUSTOM_ID: 0-7-0-fx-use-a-specific-blend-method-for-dark-themes
:END:
See [[https://github.com/abo-abo/swiper/issues/278][#278]].
-----
*** Fix one-off bug in =ivy-scroll-up-command= and =ivy-scroll-down-command=
:PROPERTIES:
:CUSTOM_ID: 0-7-0-fx-fix-one-off-bug-in-ivy-scroll-up-command-and-ivy-scroll-down-command
:END:
*** ~M-o~ shouldn't set the action permanently
:PROPERTIES:
:CUSTOM_ID: 0-7-0-fx-m-o-shouldnt-set-the-action-permanently
:END:
So now it's possible to e.g. =counsel-describe-function= -> ~M-o d~ ->
=ivy-resume= -> ~M-o o~ -> =ivy-resume= -> ~M-o i~.
-----
*** Fix swiper preselect issue with similar or identical lines
:PROPERTIES:
:CUSTOM_ID: 0-7-0-fx-fix-swiper-preselect-issue-with-similar-or-identical-lines
:END:
See [[https://github.com/abo-abo/swiper/issues/290][#290]].
-----
*** Make ivy-completing-read handle history as cons
:PROPERTIES:
:CUSTOM_ID: 0-7-0-fx-make-ivy-completing-read-handle-history-as-cons
:END:
See [[https://github.com/abo-abo/swiper/issues/295][#295]].
-----
*** Perform string-match in the original buffer
:PROPERTIES:
:CUSTOM_ID: 0-7-0-fx-perform-string-match-in-the-original-buffer
:END:
The syntax for whitespace, separators etc. is different for modes.  See [[https://github.com/abo-abo/swiper/issues/298][#298]].
** New Features
:PROPERTIES:
:CUSTOM_ID: 0-7-0-fx-new-features
:END:
*** =swiper=
:PROPERTIES:
:CUSTOM_ID: 0-7-0-nf-swiper
:END:
**** Make line numbers into display properties
Each candidate is now a single space plus the original string.  The
display property of the single space holds the line number. This means
that it's no longer possible to match line numbers in queries, which
is a good thing if you're searching for numbers.
-----
**** Extend =swiper-font-lock-ensure=
Add =mu4e-view-mode=, =mu4e-headers-mode=, =help-mode=,
=elfeed-show-mode=, =emms-stream-mode=, =debbugs-gnu-mode=,
=occur-mode=, =occur-edit-mode=, =bongo-mode=, =eww-mode=, =vc-dir-mode=.
-----
**** Add support for =evil-jumper/backward=
See [[https://github.com/abo-abo/swiper/issues/268][#268]].
-----
**** Make compatible with =visual-line-mode=
=swiper= will split the lines when =visual-line-mode= is on.  This is
convenient for small buffers. For large buffers, it can be very slow,
since =visual-line-mode= is slow.
See [[https://github.com/abo-abo/swiper/issues/227][#227]].
-----
**** Add =swiper-toggle-face-matching=
Bound to ~C-c C-f~.
At each start of =swiper=, the face at point will be stored.
Use this command to toggle matching only the candidates with that face.
See [[https://github.com/abo-abo/swiper/issues/288][#288]].
-----
**** =push-mark= only if exited the minibuffer
~C-M-n~ and ~C-M-p~ will no longer push mark and annoy with messages.
-----
**** =ivy-resume= should restore the buffer for =swiper=
See [[https://github.com/abo-abo/swiper/issues/302][#302]].
-----
**** Enable recursive =swiper= calls
While you =swiper= buffer-1, you can switch out of the minibuffer into
buffer-2 and call =swiper= again.  Exiting the second minibuffer will
restore the first minibuffer.

To use this, you need to enable recursive minibuffers.
#+begin_src elisp
(setq enable-recursive-minibuffers t)
#+end_src

It's also useful to indicate the current depth:

#+begin_src elisp
(minibuffer-depth-indicate-mode 1)
#+end_src

See [[https://github.com/abo-abo/swiper/issues/309][#309]].
-----
**** Fix for =twittering-mode=
The =field= text property is now removed before inserting text into
the minibuffer. This fixes the =swiper= problems with
=twittering-mode=. See [[https://github.com/abo-abo/swiper/issues/310][#310]].




-----
*** =ivy=
:PROPERTIES:
:CUSTOM_ID: 0-7-0-nf-ivy
:END:
**** Add manual
In the current state, the manual covers the most basic topics, like
the minibuffer key bindings and the regexp builders.
-----
**** Make <left> and <right> behave as in fundamental-mode
**** Truncate minibuffer prompts longer than window-width
See [[https://github.com/abo-abo/swiper/issues/240][#240]].
-----
**** ~C-M-n~ should not leave the minibuffer
Make sure that the minibuffer window remains selected as long as the
completion hasn't finished.  For example, ~<f1> f~ to call
=counsel-describe-function=, input "forward" and spam ~C-M-n~ to read
the doc for each function that starts with "forward". The =*Help*=
window popup would move the window focus, but this change moves it
back to the minibuffer.
-----
**** Add =flx= sorting
See [[https://github.com/abo-abo/swiper/issues/207][#207]].
Since flx is costly, move the caching to an earlier point. This means
immediate return for when the input hasn't changed, i.e. for ~C-n~ or
~C-p~. When =flx= is installed, and =(eq ivy--regex-function 'ivy--regex-fuzzy)=
for current function (through =ivy-re-builders-alist=), then sort the final candidates with
=ivy--flx-sort=.

In the worst case, when some error pops up, return the same list. In
the best case sort the =cands= that all match =name= by closeness to
=name=.

How to use:
1. Have =flx= installed - =(require 'flx)= should succeed.
2. Configure =ivy-re-builders-alist= appropriately to use =ivy--regex-fuzzy=.

For example:

#+begin_src elisp
(setq ivy-re-builders-alist
      '((t . ivy--regex-fuzzy)))
#+end_src
-----
**** Support hash tables
Since =all-completions= also works for hash tables, no reason not to support them.
-----
**** Improve documentation of =ivy-count-format=
Now possible to set it with Customize.
-----
**** Add =ivy-index-functions-alist=
Customize this to decide how the index, i.e. the currently selected
candidate, is updated with new input.
For example, one strategy is not reset it to 0 after each change.

Another strategy, used for =swiper=, is to try to select the first
appropriate candidate after (inclusive) the first previously selected
candidate. This way, if you're typing something that matches what is
currently selected, the selection won't change.

See [[https://github.com/abo-abo/swiper/issues/253][#253]].
-----
**** Add =ivy-virtual-abbreviate=
The mode of abbreviation for virtual buffer names.
-----
**** Add =ivy-case-fold-search=
Used to override =case-fold-search=. See [[https://github.com/abo-abo/swiper/issues/259][#259]].
-----
**** Add feedback for long-running async processes
Each time 0.5s pass after the last input, if the external process
hasn't finished yet, update minibuffer with the amount of candidates
collected so far. This is useful to see that long running commands
like =counsel-locate= or =counsel-ag= (when in a very large directory)
aren't stuck.
-----
**** Promote =ivy-extra-directories= to defcustom
**** Promote =ivy-sort-function-alist= to defcustom
**** ~M-n~ should prefer url at point to symbol at point
**** ~C-x C-f M-n~ calls =ffap-url-fetcher= when at URL
**** Highlight modified file buffers with =ivy-modified-buffer= face
This new face is blank by default, but you can use e.g.:
#+begin_src elisp
(custom-set-faces
 '(ivy-modified-buffer ((t (:background "#ff7777")))))
#+end_src
-----
**** Work with =enable-recursive-minibuffers=
Store the old =ivy-last= in case =ivy-read= is called while inside the
minibuffer.  Restore it after =ivy-call=.
-----
**** Allow user-specified matched candidate sorting
New defcustom =ivy-sort-matches-functions-alist=.
See [[https://github.com/abo-abo/swiper/issues/269][#269]] [[https://github.com/abo-abo/swiper/issues/265][#265]] [[https://github.com/abo-abo/swiper/issues/213][#213]].

By default, Ivy doesn't sort the matched candidates, they remain in
the same order as in the original collection. This option is the
default, since it's fast and simple.

A small problem with this approach is that we usually want prefix
matches to be displayed first. One solution to this is to input "^" to
see only the prefix matches.

Now, another solution is to can set:
#+begin_src elisp
(setq ivy-sort-matches-functions-alist
      '((t . ivy--prefix-sort)))
#+end_src

Here's another example of using this defcustom:
#+begin_src elisp
(add-to-list
     'ivy-sort-matches-functions-alist
     '(read-file-name-internal . ivy--sort-files-by-date))
#+end_src

After this, during file name completion, most recently changed files
will be ahead.
-----
**** =ivy-display-style=
Adds fancy highlighting to the minibuffer.
See [[https://github.com/abo-abo/swiper/issues/212][#212]], [[https://github.com/abo-abo/swiper/issues/217][#217]], .
-----
*** =ivy-hydra=
:PROPERTIES:
:CUSTOM_ID: 0-7-0-nf-ivy-hydra
:END:
**** Bind ~t~ to =toggle-truncate-lines=
See [[https://github.com/abo-abo/swiper/issues/214][#214]].
-----
**** Bind ~a~ to =ivy-read-action=
*** =ivy-switch-buffer=
:PROPERTIES:
:CUSTOM_ID: 0-7-0-nf-ivy-switch-buffer
:END:
**** Make ~M-o r~ rename the buffer instead of switching.
See [[https://github.com/abo-abo/swiper/issues/233][#233]].
-----
*** =counsel-locate=
:PROPERTIES:
:CUSTOM_ID: 0-7-0-nf-counsel-locate
:END:
**** Allow customizing locate options
See =counsel-locate-options=.
The current setting is:
#+begin_src elisp
(setq counsel-locate-options '("-i" "--regex"))
#+end_src
-----
**** Support OSX
Use =open= instead of =xdg-open=.  Modify =counsel-locate-options= for
OSX, since there =locate= doesn't support =--regex=.
-----
**** Use single quotes for the regex
See [[https://github.com/abo-abo/swiper/issues/194][#194]].
-----
**** Add initial-input argument
See [[https://github.com/abo-abo/swiper/issues/289][#289]].
-----
*** =counsel-org-tag=
:PROPERTIES:
:CUSTOM_ID: 0-7-0-nf-counsel-org-tag
:END:
**** Now works in agenda
See [[https://github.com/abo-abo/swiper/issues/200][#200]].
-----
*** =counsel-unicode-char=
:PROPERTIES:
:CUSTOM_ID: 0-7-0-nf-counsel-unicode-char
:END:
**** Add own history
*** =counsel-M-x=
:PROPERTIES:
:CUSTOM_ID: 0-7-0-nf-counsel-m-x
:END:
**** Add "definition" action
Use ~M-o d~ to jump to definition.
-----
**** Show =current-prefix-arg= in the prompt
See [[https://github.com/abo-abo/swiper/issues/287][#287]].
-----
*** =counsel-find-file=
:PROPERTIES:
:CUSTOM_ID: 0-7-0-nf-counsel-find-file
:END:
**** Input '/sudo::' goes to current directory instead of root's home
See [[https://github.com/abo-abo/swiper/issues/283][#283]].
-----
**** Fix directory validity check
See [[https://github.com/abo-abo/swiper/issues/283][#283]] [[https://github.com/abo-abo/swiper/issues/284][#284]].
-----
**** Improve TRAMP support
Selecting items after ~//~ now works properly.
-----
*** =counsel-git-grep=
:PROPERTIES:
:CUSTOM_ID: 0-7-0-nf-counsel-git-grep
:END:
**** Use prefix arg to specify the shell command.
Remember to use ~M-i~ to insert the current candidate into the
minibuffer.

See [[https://github.com/abo-abo/swiper/issues/244][#244]].
-----
**** Allow =counsel-git-grep= -> =ivy-occur= -> =wgrep=
Using ~C-c C-o~ (=ivy-occur=) while in =counsel-git-grep= will produce
a =wgrep=-compatible buffer.
-----
**** =ivy-occur= gives full candidates
This means that the =" | head -n 200"= speed-up isn't used and full
candidates are returned.
-----
*** =counsel--find-symbol=
:PROPERTIES:
:CUSTOM_ID: 0-7-0-nf-counsel--find-symbol
:END:
**** Allow to jump back with pop-tag-mark
Using ~C-.~ in:

- =counsel-describe-function=
- =counsel-describe-variable=
- =counsel-load-library=

will change the current buffer. The buffer and point can be restored
with ~M-*~ (=pop-tag-mark=).

I also recommend this binding:

#+begin_src elisp
(global-set-key (kbd "M-,") 'pop-tag-mark)
#+end_src
-----
**** Resolve the name clash better
When the symbol is both bound and fbound, prefer the fbound one,
unless the =:caller= is =counsel-describe-variable=.
-----
*** =counsel-ag=
:PROPERTIES:
:CUSTOM_ID: 0-7-0-nf-counsel-ag
:END:
**** Add =initial-directory=
Support alternative initial directory which helps other packages call
this function with their unique starting directory.
-----
**** Fix on Windows
Using the "--vimgrep" argument improves things.
** New Commands
:PROPERTIES:
:CUSTOM_ID: 0-7-0-nf-new-commands
:END:
*** =ivy-occur=
:PROPERTIES:
:CUSTOM_ID: 0-7-0-nc-ivy-occur
:END:
Bound to ~C-c C-o~. Store the current completion session to its own
buffer.  You can have an unlimited amount of these buffers.
-----
*** =ivy-avy=
:PROPERTIES:
:CUSTOM_ID: 0-7-0-nc-ivy-avy
:END:
Bound to ~C-'~.

Speeds up selecting a candidate that's currently visible in the minibuffer.
-----
*** =ivy-kill-ring-save=
:PROPERTIES:
:CUSTOM_ID: 0-7-0-nc-ivy-kill-ring-save
:END:
Bound to ~M-w~.

When the region is active, call =kill-ring-save=.  Otherwise, store
all selected candidates to the kill ring.
-----
*** =ivy-dispatching-call=
:PROPERTIES:
:CUSTOM_ID: 0-7-0-nc-ivy-dispatching-call
:END:
Bound to ~C-M-o~.

This is a non-exiting version of ~M-o~ (=ivy-dispatching-done=).
-----
*** =ivy-read-action=
:PROPERTIES:
:CUSTOM_ID: 0-7-0-nc-ivy-read-action
:END:
Bound to ~C-M-a~. Select the current action. Don't call it yet.
-----
*** =swiper-multi=
:PROPERTIES:
:CUSTOM_ID: 0-7-0-nc-swiper-multi
:END:
Use =swiper= in multiple buffers.
See [[https://github.com/abo-abo/swiper/issues/182][#182]].

Basic usage tips for selecting multiple buffers:

- Use ~C-M-m~ (=ivy-call=) to add or remove one more buffer without exiting.
- Use ~C-m~ (=ivy-done=) to add one last buffer.
- Or use ~C-M-j~ (=ivy-immediate-done=) to finish without adding more buffers.
- Hold ~C-M-n~ (=ivy-next-line-and-call=) to add a lot of buffers at once.
-----
*** =swiper-mc=
:PROPERTIES:
:CUSTOM_ID: 0-7-0-nc-swiper-mc
:END:
Open multiple cursors at all selected candidates.
-----
*** =swiper-all=
:PROPERTIES:
:CUSTOM_ID: 0-7-0-nc-swiper-all
:END:
New command to launch =swiper= for all open file buffers.  Note that
this can be excruciatingly slow if you don't clean up your buffer list
often.
-----
*** =counsel-grep=
:PROPERTIES:
:CUSTOM_ID: 0-7-0-nc-counsel-grep
:END:
This is essentially =swiper= for huge files. It's not as smooth as
=swiper= for small files, but has a faster startup and faster matching
for files that measure in megabytes.
-----
*** =counsel-git-grep-query-replace=
:PROPERTIES:
:CUSTOM_ID: 0-7-0-nc-counsel-git-grep-query-replace
:END:
Bound to ~M-q~. Perform =query-replace= on all matches in all buffers.
-----
*** =counsel-jedi=
:PROPERTIES:
:CUSTOM_ID: 0-7-0-nc-counsel-jedi
:END:
Complete Python symbols using Jedi.
-----
*** =counsel-cl=
:PROPERTIES:
:CUSTOM_ID: 0-7-0-nc-counsel-cl
:END:
Complete Common Lisp symbols using SLIME.
-----
*** =counsel-yank-pop=
:PROPERTIES:
:CUSTOM_ID: 0-7-0-nc-counsel-yank-pop
:END:
Give completion for inserting from the kill ring.
See =counsel-yank-pop-truncate= defcustom and [[https://github.com/abo-abo/swiper/issues/218][#218]].
-----
* 0.8.0
:PROPERTIES:
:CUSTOM_ID: 0.8.0
:END:
-----
** Package rename
:PROPERTIES:
:CUSTOM_ID: 0-8-0-package-rename
:END:
Due to popular demand, =swiper-0.7.0= is succeeded by =ivy-0.8.0= in GNU
ELPA. The contents of the package don't change, only the name. Make
sure to remove the =~/.emacs.d/elpa/swiper-0.7.0= directory if you
have it and ~M-x~ =package-install ivy=.
** Documentation
:PROPERTIES:
:CUSTOM_ID: 0-8-0-documentation
:END:
HTML documentation is available at [[https://oremacs.com/swiper/]].

Texinfo documentation is in doc/ivy.texi.

The HTML file shouldn't be in this repository to avoid bloat, instead
it's in the gh-pages branch at
https://github.com/abo-abo/swiper/tree/gh-pages.
** Fixes
:PROPERTIES:
:CUSTOM_ID: 0-8-0-fixes
:END:
*** =ivy-read=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-fx-ivy-read
:END:
**** Fix recursive minibuffer exit with ~C-g~
Make it so e.g. ~C-h f C-h v C-g~ goes back to the =describe-function= selection.
-----
**** Ensure the return result
In some cases, =read-from-minibuffer= will return the whole minibuffer
contents (i.e. all available candidates). Return =ivy--current= instead.
-----
**** Properly support matching ignoring order
See [[https://github.com/abo-abo/swiper/issues/296][#296]] and [[https://github.com/abo-abo/swiper/issues/329][#329]].
-----
**** Insert intermediate candidates during async completions
See [[https://github.com/abo-abo/swiper/issues/340][#340]].
-----
**** Initialize =ivy-last= to empty state
See [[https://github.com/abo-abo/swiper/issues/352][#352]].
-----
**** Fix extra actions for =completing-read=
See [[https://github.com/abo-abo/swiper/issues/337][#337]].
-----
**** Support a list of symbols as collection
See [[https://github.com/abo-abo/swiper/issues/375][#375]].
-----
**** Define =setq-local= and =defvar-local= unless defined
With this commit, Ivy works on emacs-24.2.
See [[https://github.com/abo-abo/swiper/issues/415][#415]].
-----
**** Make ~M-o~ not modify the action
See [[https://github.com/abo-abo/swiper/issues/454][#454]].
-----
**** Make sure user keybindings are respected
See [[https://github.com/abo-abo/swiper/issues/466][#466]].
-----
**** Fix =read-file-name= with a specified dir
See [[https://github.com/abo-abo/swiper/issues/475][#475]].
-----
**** Don't highlight the match in the file part
See [[https://github.com/abo-abo/swiper/issues/483][#483]].
-----
**** Add a few tests for alists
-----
*** =ivy-occur=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-fx-ivy-occur
:END:
**** Fix =default-directory=
This way, =next-error= etc will work properly.
-----
*** =ivy--resize-minibuffer-to-fit=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-fx-ivy--resize-minibuffer-to-fit
:END:
**** Fix for small delta
See [[https://github.com/abo-abo/swiper/issues/339][#339]].
-----
**** Check =frame-root-window-p=
See [[https://github.com/abo-abo/swiper/issues/380][#380]].
-----
*** =ivy-completing-read=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-fx-ivy-completing-read
:END:
**** Use =completing-read-default= for tmm
See [[https://github.com/abo-abo/swiper/issues/316][#316]].
-----
*** =ivy--regex-plus=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-fx-ivy--regex-plus
:END:
**** Recognize ! at the beginning of the str
See [[https://github.com/abo-abo/swiper/issues/318][#318]].
-----
**** Prettify a bit
See [[https://github.com/abo-abo/swiper/issues/344][#344]].
-----
**** Don't consider =\\(?...\)= a group
See [[https://github.com/abo-abo/swiper/issues/393][#393]].
-----
*** =ivy--get-window=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-fx-ivy--get-window
:END:
**** Always return a valid window
Even if =state= is invalid.
-----
*** =ivy--recompute-index=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-fx-ivy--recompute-index
:END:
**** Update =cl-position= logic
See [[https://github.com/abo-abo/swiper/issues/207][#207]].
-----
*** =ivy-reverse-i-search=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-fx-ivy-reverse-i-search
:END:
**** Fix due to recursive update
See [[https://github.com/abo-abo/swiper/issues/323][#323]].
-----
*** =ivy--reset-state=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-fx-ivy--reset-state
:END:
**** Don't null =initial-input=
This is specifically for ='read-file-name-internal= collection.  The
input needs to be set to nil for e.g. =rgrep=, which supplies the
*absolute* path as =initial-input=, resulting in a mess.

For now, don't set input to nil if =:action= was passed to =ivy-read=.
See [[https://github.com/abo-abo/swiper/issues/336][#336]].
-----
**** Don't deactivate region
See [[https://github.com/abo-abo/swiper/issues/377][#377]].
-----
*** =ivy-completion-in-region=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-fx-ivy-completion-in-region
:END:
**** Use =completion-all-completions=
See [[https://github.com/abo-abo/swiper/issues/341][#341]].
-----
**** Optimize for 1 candidate
When there's only one candidate, call the action immediately.
-----
**** Add feedback for 1 candidate
When the sole completion is the same as the input, notify the user.
See [[https://github.com/abo-abo/swiper/issues/350][#350]].
-----
**** Bind =completion-ignore-case=
It's convenient to have it the same value as =case-fold-search=.
-----
*** =ivy-read-action=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-fx-ivy-read-action
:END:
**** Give enough minibuffer space
See [[https://github.com/abo-abo/swiper/issues/402][#402]].
-----
**** Allow to customize the action hint formatter
See [[https://github.com/abo-abo/swiper/issues/469][#469]].
-----
*** =ivy-count-format=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-fx-ivy-count-format
:END:
**** Fix for nil value
See [[https://github.com/abo-abo/swiper/issues/349][#349]].
-----
*** =ivy-switch-buffer=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-fx-ivy-switch-buffer
:END:
**** Don't fall back to =switch-to-buffer=
See [[https://github.com/abo-abo/swiper/issues/410][#410]].
-----
*** =ivy-next-history-element=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-fx-ivy-next-history-element
:END:
**** No "\\_<" for dynamic-collection
"\\_<" regex is Emacs-specific and should only be done if
=:dynamic-collection= is nil.  It is nil for =counsel-git-grep= with
repositories < 20000 lines, but non-nil for larger ones.

Fixes [[https://github.com/abo-abo/swiper/issues/409][#409]].
-----
*** =ivy-occur-press=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-fx-ivy-occur-press
:END:
**** Pulse no longer
Repeated pulses within a short time span resulted in horrible window
flickering.
-----
*** =ivy-resume=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-fx-ivy-resume
:END:
**** Add a guard against null =:action=
-----
*** =ivy-avy=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-fx-ivy-avy
:END:
**** Make ~C-g~ cancel gracefully
See abo-abo/avy[[https://github.com/abo-abo/swiper/issues/140][#140]].
-----
*** =ivy-dispatching-done=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-fx-ivy-dispatching-done
:END:
Allow to exit with no candidates.
-----
*** =swiper=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-fx-swiper
:END:
**** Improve for multiple occurrences on one line
See [[https://github.com/abo-abo/swiper/issues/314][#314]].
-----
**** Fix "backward" search
When none of the previous candidates after the point match the current
input, instead of returning 0, return the index of the last matching
candidate.  This is a good choice, because that candidate is the
closest to the point of the initial search start.

See [[https://github.com/abo-abo/swiper/issues/319][#319]].
-----
**** Return point
See [[https://github.com/abo-abo/swiper/issues/370][#370]].
-----
**** Update =regexp-search-ring=
See [[https://github.com/abo-abo/swiper/issues/89][#89]].
-----
**** Always remove '(field) text property
Allows to search better in modes for shell interaction.
-----
*** =swiper-font-lock-ensure=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-fx-swiper-font-lock-ensure
:END:
**** Add modes
Add bongo-library-mode, bongo-playlist-mode, sauron-mode.

See [[https://github.com/abo-abo/swiper/issues/19][#19]].
-----
**** Don't fail when font-lock is off
See [[https://github.com/abo-abo/swiper/issues/400][#400]].
-----
*** =swiper--multi-candidates=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-fx-swiper--multi-candidates
:END:
**** Add check for =make-string=
See [[https://github.com/abo-abo/swiper/issues/481][#481]].
-----
*** =counsel--async-sentinel=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-fx-counsel--async-sentinel
:END:
**** Fix issue with =ivy--regex-ignore-order=
See [[https://github.com/abo-abo/swiper/issues/342][#342]].
-----
**** Re-display when no cands
**** Recognize error codes other than 1
See [[https://github.com/abo-abo/swiper/issues/394][#394]].
-----
*** =counsel-git=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-fx-counsel-git
:END:
**** Fix window selection.
Use =with-ivy-window=, so that each new file chosen with e.g. ~C-M-n~ is
selected in the same window.
-----
*** =counsel-recoll=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-fx-counsel-recoll
:END:
**** Add =:unwind=
See [[https://github.com/abo-abo/swiper/issues/403][#403]].
-----
*** compilation warnings
:PROPERTIES:
:CUSTOM_ID: 0-8-0-fx-compilation-warnings
:END:
See [[https://github.com/abo-abo/swiper/issues/324][#324]].
-----
** New Features
:PROPERTIES:
:CUSTOM_ID: 0-8-0-fx-new-features
:END:
*** =ivy-read=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nf-ivy-read
:END:
**** Use =flx= for highlighting fuzzy matches
See [[https://github.com/abo-abo/swiper/issues/207][#207]].
-----
**** Simplify the signature for =:dynamic-collection= functions
When given =:dynamic-collection=, assume the collection function only
needs one argument - the string input.
-----
**** Modify ~M-n~ prediction when region is active
When the region is active and ~M-n~ is called, insert the region
contents into the minibuffer and deactivate the region. The region
deactivation is done for =swiper=, to make it easier to search for
multiple words or a subword.
-----
**** Allow to compose collections
***** Example 1: async collection
Stack =recentf= on top of =counsel-locate=:

#+begin_src elisp
(defun small-test ()
  (cl-subseq recentf-list 0 10))

(ivy-set-sources
 'counsel-locate
 '((small-test)
   (original-source)))
#+end_src

Here, (original-source) represents the async candidates of
=counsel-locate=. All extra sources are static - each function is called
once to generate a list of strings, which will be filtered later.

The order matters, so you can have e.g.:

#+begin_src elisp
(ivy-set-sources
 'counsel-locate
 '((original-source)
   (small-test)))
#+end_src

See [[https://github.com/abo-abo/swiper/issues/373][#373]].
-----
***** Example 2: sync collection
#+begin_src elisp
(defun my-extra-source ()
  (append
   (when (eq 'Git (vc-backend (buffer-file-name)))
     (list "git1" "git2" "git3"))
   (when (file-exists-p "doc/Changelog.org")
     (list (propertize "doc/Changelog.org" 'face '(:background "red"))))))

(defun my-find-file ()
  (interactive)
  (ivy-read "Find file: " 'read-file-name-internal
            :action (lambda (x)
                      (with-ivy-window
                        (find-file (expand-file-name x ivy--directory))))
            :require-match 'confirm-after-completion
            :history 'file-name-history
            :caller 'my-find-file))

(ivy-set-sources
 'my-find-file
 '((my-extra-source)
   (original-source)))
#+end_src

The function =my-find-file= knows nothing about the extra source, it's
only purpose is to introduce a =:caller= to attach things to, as to not
to mess up e.g. =counsel-find-file=.

The function =my-extra-source= gets called once in =ivy-read= via
=ivy--reset-state=. It takes no args and returns a list of strings,
possibly empty.
-----
**** Improve documentation UI
Bind ~C-h m~ to =ivy-help=.

=ivy-help-file= is a new defvar pointing to the ivy-help.org file.

Bind ~D~ in =hydra-ivy= to go to hydra's definition.

See [[https://github.com/abo-abo/swiper/issues/376][#376]] and [[https://github.com/abo-abo/swiper/issues/379][#379]].
-----
**** Add ignore pattern toggling
~C-c C-a~ is bound to =ivy-toggle-ignore= - a new command to toggle ignore
patterns (user-configured filtering). If the ignore patterns are
enabled and there are zero candidates after ignoring, display the ones
that match the current text. This feature currently works for
=ivy-switch-buffer= and =counsel-find-file=.

See [[https://github.com/abo-abo/swiper/issues/369][#369]].
-----
*** =ivy-mode=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nf-ivy-mode
:END:
**** Set =completion-in-region-function=
See [[https://github.com/abo-abo/swiper/issues/331][#331]].
-----
**** Improve ~M-n~ for ='read-file-name-internal=
-----
*** =ivy-set-occur=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nf-ivy-set-occur
:END:
Allows to customize =ivy-occur= per-command.
-----
**** Add custom occur for =ivy-switch-buffer=
See [[https://github.com/abo-abo/swiper/issues/438][#438]] and [[https://github.com/abo-abo/swiper/issues/440][#440]].
-----
*** =ivy-occur-mode=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nf-ivy-occur-mode
:END:
**** New commands on ~j~, ~k~, ~c~
(ivy-occur-toggle-calling): New command bound to ~c~.
(ivy-occur-next-line): New command bound to ~j~.
(ivy-occur-previous-line): New command bound to ~k~.

This makes =ivy-occur= much more convenient, instead of ~gjgjgjg~, just
~cjjj~. Especially good for commands that change the contents of the
other window, like =describe-function= or =counsel-git-grep=.

Example:

- ~C-h f~ (=describe-funtion=)
- =run= (=self-insert-command=)
- ~C-c C-o~ (=ivy-occur=); ~C-o u~ also works.
- ~cjjjjkkkk~
-----
**** New command =ivy-occur-revert-buffer= on ~g~
Does what e.g. =revert-buffer= does for *Help* buffers.

Has special handling for =counsel-git-grep=, =counsel-ag= and
=counsel-grep=: will run the shell command once more and reflect the
updates in files.

Move =ivy-occur-press= from ~g~ to ~f~.
-----
**** Improve the feedback for ~j~ and ~k~
The overlays will be more responsive now.
-----
*** =ivy-re-builders-alist=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nf-ivy-re-builders-alist
:END:
**** Allow =this-command= to be a key
Example:
#+begin_src elisp
(defun asdf ()
  (interactive)
  (completing-read "prompt: " '("abc" "abcd" "def")))

(global-set-key (kbd "C-c t") 'asdf)

(setq ivy-re-builders-alist
      '(
        (asdf . ivy--regex-fuzzy)
        (t . ivy--regex-plus)))
#+end_src
This is useful for commands that you didn't write. For new commands
that you write, consider using =ivy-read= and =:caller=.

See [[https://github.com/abo-abo/swiper/issues/330][#330]].
-----
*** =ivy-set-actions=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nf-ivy-set-actions
:END:
**** Call with =t= to affect all commands
Example:

#+begin_src elisp
(ivy-set-actions
 t
 '(("i" insert "insert")))
#+end_src

Now an "insert" action will be available for all =ivy-read= sessions
when pressing ~M-o~.

See [[https://github.com/abo-abo/swiper/issues/337][#337]].
-----
*** =ivy-faces=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nf-ivy-faces
:END:
New defcustom group.
See [[https://github.com/abo-abo/swiper/issues/389][#389]].
-----
*** =ivy-flx-limit=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nf-ivy-flx-limit
:END:
New variable. Configure when =flx= is used.
See [[https://github.com/abo-abo/swiper/issues/207][#207]].
-----
*** =ivy-inhibit-action=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nf-ivy-inhibit-action
:END:
New variable. See [[https://github.com/abo-abo/swiper/issues/363][#363]].
-----
*** =ivy-do-completion-in-region=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nf-ivy-do-completion-in-region
:END:
New defcustom. See [[https://github.com/abo-abo/swiper/issues/367][#367]].
-----
*** =ivy-fixed-height-minibuffer=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nf-ivy-fixed-height-minibuffer
:END:
New defcustom.

When non nil, fix the height of the minibuffer during ivy completion
at =ivy-height=. This effectively sets the minimum height at this level
and tries to ensure that it does not change depending on the number of
candidates.

See [[https://github.com/abo-abo/swiper/issues/353][#353]].
-----
*** =ivy-set-display-transformer=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nf-ivy-set-display-transformer
:END:
New API function.

Now used by =switch-to-buffer= and =read-file-name=.

See [[https://github.com/abo-abo/swiper/issues/399][#399]].
-----
*** =ivy-ignore-buffers=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nf-ivy-ignore-buffers
:END:
New defcustom similar to =ido-ignore-buffers=.

See [[https://github.com/abo-abo/swiper/issues/382][#382]] and [[https://github.com/abo-abo/swiper/issues/366][#366]].
-----
*** =ivy-add-newline-after-prompt=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nf-ivy-add-newline-after-prompt
:END:
New defcustom.

See [[https://github.com/abo-abo/swiper/issues/451][#451]].
-----
*** =ivy-switch-buffer=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nf-ivy-switch-buffer
:END:
**** Add virtual views
=ivy-views= variable stores pre-defined views. Allows to set a window
configuration with many buffers from =ivy-switch-buffer=.

How to use: just set =ivy-views= appropriately. An example value is
provided (but nulled, so that it's empty initially).
-----
*** =ivy-use-ignore-default=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nf-ivy-use-ignore-default
:END:
New defcustom

See [[https://github.com/abo-abo/swiper/issues/477][#477]].
-----
*** =swiper=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nf-swiper
:END:
**** Improve =swiper-query-replace=
To replace a symbol with a similar symbol,

1. Press ~C-s M-n~ for =swiper= and select the symbol at point as input.
2. Press ~M-q~ for =swiper-query-replace=
3. Press ~M-n~ to yank the symbol to replace.
4. Edit the replacement and ~RET~.

Here step-3 was modified to yank e.g. "symbol" instead of
"\_<symbol\_>" previously.
-----
*** =swiper-font-lock-exclude=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nf-swiper-font-lock-exclude
:END:
New variable for major modes that misbehave with =font-lock-ensure=.
See [[https://github.com/abo-abo/swiper/issues/346][#346]].
-----
*** =swiper-all=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nf-swiper-all
:END:
**** New auto-updates position
See [[https://github.com/abo-abo/swiper/issues/401][#401]].
-----
*** =counsel-mode=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nf-counsel-mode
:END:
A minor-mode that remaps built-in functions that have counsel
replacements available.

See [[https://github.com/abo-abo/swiper/issues/414][#414]].
-----
**** Allow use of describe-prefix-bindings
See [[https://github.com/abo-abo/swiper/issues/441][#441]].
-----
*** =counsel-find-file=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nf-counsel-find-file
:END:
**** Add =initial-input=
See [[https://github.com/abo-abo/swiper/issues/336][#336]].
-----
**** Change tramp prompt from "Find File: " to "user@host: "
**** Bind =counsel-up-directory= to ~C-DEL~
New function that moves up to the parent directory and at the same
time preselects the current directory. This is useful for moving up
and down a file tree quickly.

See [[https://github.com/abo-abo/swiper/issues/343][#343]].
-----
**** Customize =M-n= action
This feature allows to quickly visit Github issues from either
=magit-commit-mode= or from a version-controlled file. The point has to
be at the "#" char in e.g. "[[https://github.com/abo-abo/swiper/issues/123][#123]]", that represents an issue.

It's possible to customize =ivy-ffap-url-functions= to do a similar
thing for places other than Github.

The ~C-x C-f M-n~ key binding will work better with =counsel-find-file=,
for plain =find-file= it will open a =dired= buffer in addition to opening
the URL.
-----
**** Can un-ignore dotfiles with a leading dot input
When =ivy-text= starts with a dot, don't use
=counsel-find-file-ignore-regexp=. The generic way to do this is with
~C-c C-a~ (=ivy-toggle-ignore=), but this is faster and more convenient.

See [[https://github.com/abo-abo/swiper/issues/408][#408]].
-----
**** Bind ~M-o f~ to =find-file-other-window=
**** Correctly expand file name at point
See [[https://github.com/abo-abo/swiper/issues/430][#430]].
-----
**** Add display transformer
See [[https://github.com/abo-abo/swiper/issues/458][#458]].
-----
**** Add magic slash that changes the directory
Update to the behavior: the slash ("/") will enter a directory even if
its name isn't completely typed out if either:

1. It's the only candidate.
2. The candidate index isn't 0, i.e. "C-n" has been typed at least once.
3. The input isn't "/".

The above rules still allow to keep the old behavior with "//" moving
to root and "/ssh:" opening tramp.

This is an experimental feature, please report if it breaks someone's
workflow.

See [[https://github.com/abo-abo/swiper/issues/321][#321]] and [[https://github.com/abo-abo/swiper/issues/480][#480]].
-----
*** =counsel-git-grep=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nf-counsel-git-grep
:END:
**** Bind ~C-c C-m~ to =counsel-git-grep-switch-cmd=
The initial command always runs on all files.

To run only on *.el files, ~C-c C-m~ followed by ~M-i~ =-- *.el=.
To run on *.c and *.h files, ~C-c C-m~ followed by ~M-i~ =-- *.c *.h=.
To switch to all files again, ~C-c C-m~ and select the appropriate
entry.

See [[https://github.com/abo-abo/swiper/issues/420][#420]].
-----
*** =counsel-locate=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nf-counsel-locate
:END:
**** counsel-locate-cmd
New defcustom that replaces =counsel-locate-options=.

See [[https://github.com/abo-abo/swiper/issues/385][#385]].
-----
**** counsel-locate-cmd-mdfind
New function.
See [[https://github.com/abo-abo/swiper/issues/390][#390]].
-----
**** counsel-locate-cmd-es
New function.
See [[https://github.com/abo-abo/swiper/issues/426][#426]].
-----
*** =counsel-yank-pop=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nf-counsel-yank-pop
:END:
**** Truncate during display
During the completion, only the context around the match will be shown.
By default, the context is +2 lines above and +2 lines below the match.
It can be adjusted with =counsel-yank-pop-truncate-radius=.
Additionally, =ivy-height= is temporarily bound to 5 during completion.
This way, the maximum minibuffer height should be 1+4*5=21 lines.

See [[https://github.com/abo-abo/swiper/issues/315][#315]].
-----
*** =counsel-unicode-char=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nf-counsel-unicode-char
:END:
Display hex codes in left column.
-----
*** =counsel-rhythmbox=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nf-counsel-rhythmbox
:END:
**** Preselect the current song
-----
*** =counsel-ag=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nf-counsel-ag
:END:
**** =counsel-ag-base-command=
Allows the command run by =counsel-ag-function= to be customized. There
are several reasons to allow this: The vimgrep option is a recent
addition; on windows it's more convenient to use pt; and the user
might want to customize ignored files.

Standard value:
#+begin_src elisp
(setq counsel-ag-base-command "ag --nocolor --nogroup %s -- .")
#+end_src

See [[https://github.com/abo-abo/swiper/issues/335][#335]].
-----
**** Add dir prompt for ~C-u~
See [[https://github.com/abo-abo/swiper/issues/429][#429]].
-----
**** Add =counsel-ag-map=
See [[https://github.com/abo-abo/swiper/issues/462][#462]].
-----
*** =counsel-async-split-string-re=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nf-counsel-async-split-string-re
:END:
New defcustom.
-----
*** =counsel--async-cmd=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nf-counsel--async-cmd
:END:
**** Add optional exit-code table
This argument can be used to associate exit codes with the underlying
reason. Used in counsel-ag-function to signal that an exit code of 1
means that no matches were found.

See [[https://github.com/abo-abo/swiper/issues/421][#421]].
-----
*** =counsel-prompt-function=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nf-counsel-prompt-function
:END:
New defcustom

See [[https://github.com/abo-abo/swiper/issues/424][#424]] and [[https://github.com/abo-abo/swiper/issues/425][#425]].
-----
*** =counsel-grep=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nf-counsel-grep
:END:
**** Reveal outlines
Just like =swiper=.
-----
**** Should pick candidates closest to point
Fixes the algorithm selecting the first matching candidate in case
there are 0 matching candidates following point. Now the last matching
candidate will be selected, resulting in less scrolling.
-----
**** Speed up x40 times
The default shell command will not use =--ignore-case= switch for
=grep=. It's a bit less convenient, but results in a huge speed-up.
-----
*** =counsel-M-x=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nf-counsel-m-x
:END:
**** Add help action
Bound to ~M-o h~ by default.

See [[https://github.com/abo-abo/swiper/issues/452][#452]].
** New Commands
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nf-new-commands
:END:
*** =counsel-tmm=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nc-counsel-tmm
:END:
Completion for the menu bar items. For example:

=counsel-tmm= -> =Options= -> =Set Default Font...=.

Thanks to completion, the latter stages of the chain would look like: =op= ~RET~ =set= ~RET~.
-----
*** =counsel-imenu=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nc-counsel-imenu
:END:
Jump to a buffer position indexed by imenu.
-----
*** =counsel-decbinds=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nc-counsel-decbinds
:END:
Show a list of all defined keys, and their definitions. Describe the
selected candidate.
See [[https://github.com/abo-abo/swiper/issues/332][#332]].
-----
*** =counsel-list-processes=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nc-counsel-list-processes
:END:
Offer completion for =process-list=

The default action deletes the selected process.  An extra action
allows to switch to the process buffer.

See [[https://github.com/abo-abo/swiper/issues/357][#357]] and [[https://github.com/abo-abo/swiper/issues/398][#398]].
-----
*** =ivy-switch-buffer-other-window=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nc-ivy-switch-buffer-other-window
:END:
Remap =switch-to-buffer-other-window= to =ivy-switch-buffer-other-window= for =ivy-mode=.

See [[https://github.com/abo-abo/swiper/issues/361][#361]].
-----
*** =counsel-git-stash=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nc-counsel-git-stash
:END:
Search through all available git stashes.

See [[https://github.com/abo-abo/swiper/issues/374][#374]].
-----
*** =counsel-git-log=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nc-counsel-git-log
:END:
Call the =git log --grep= shell command and search through the output.
-----
*** =counsel-pt=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nc-counsel-pt
:END:
Grep for a string in the current directory using pt.

See [[https://github.com/abo-abo/swiper/issues/434][#434]].
-----
*** =counsel-linux-app=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nc-counsel-linux-app
:END:
Launch a Linux desktop application, similar to Alt-<F2>.

See [[https://github.com/abo-abo/swiper/issues/446][#446]].
-----
*** =counsel-ace-link=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nc-counsel-ace-link
:END:
Ivy completion for =ace-link=.
-----
*** =counsel-esh-history=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nc-counsel-esh-history
:END:
Browse Eshell history.

See [[https://github.com/abo-abo/swiper/issues/459][#459]].
-----
*** =counsel-shell-history=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nc-counsel-shell-history
:END:
Browse shell history.
-----
*** =counsel-grep-or-swiper=
:PROPERTIES:
:CUSTOM_ID: 0-8-0-nc-counsel-grep-or-swiper
:END:
New command: automatically use =swiper= for smaller buffers and
=counsel-grep= for larger buffers.

Adjust with:
#+begin_src elisp
(setq counsel-grep-swiper-limit 300000)
#+end_src

By default, the splitting predicate is 300K bytes in a file.
-----
#+BEGIN_EXPORT html
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
#+END_EXPORT
* 0.9.0
:PROPERTIES:
:CUSTOM_ID: 0.9.0
:END:
-----
** Fixes
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fixes
:END:
*** =colir-parse-color=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-colir-parse-color
:END:
Fix color parsing in terminal. See [[https://github.com/abo-abo/swiper/issues/541][#541]] and [[https://github.com/abo-abo/swiper/issues/543][#543]].
-----
*** =counsel--gg-sentinel=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-counsel--gg-sentinel
:END:
Check for an additional 141 return code.
-----
*** =counsel-ace-link=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-counsel-ace-link
:END:
Use =cdr= for action. See [[https://github.com/abo-abo/swiper/issues/835][#835]].
-----
*** =counsel-ag=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-counsel-ag
:END:
**** Use sync on remote
See [[https://github.com/abo-abo/swiper/issues/669][#669]].
**** Add missing parameter
See [[https://github.com/abo-abo/swiper/issues/858][#858]], [[https://github.com/abo-abo/swiper/issues/861][#861]].
-----
*** =counsel-find-file=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-counsel-find-file
:END:
**** Improve stability on arcane systems
It can happen that =(all-completions "" 'read-file-name-internal)= may
fail on systems with symlinks. I think it's related to the file
functions trying to compute occupied space. In any case, a plain
=directory-files= is roughly the equivalent and is less likely to fail.
**** Check compat between preselect and initial-input
See [[https://github.com/abo-abo/swiper/issues/514][#514]], [[https://github.com/abo-abo/swiper/issues/515][#515]].
**** Prevent expand-file-name nil
See [[https://github.com/abo-abo/swiper/issues/518][#518]].
**** Don't crash if default-directory is nil
See [[https://github.com/abo-abo/swiper/issues/586][#586]].
**** Allow to ~C-y~ a "/ssh:" file
**** Press ~M-n~ on issue works for newer magit version
See [[https://github.com/abo-abo/swiper/issues/692][#692]].
**** Fix when initial input is a file name
See [[https://github.com/abo-abo/swiper/issues/744][#744]].
**** Account for =file-name-directory= returning nil
See [[https://github.com/abo-abo/swiper/issues/780][#780]].
**** Fix ~RET~ on no input
See [[https://github.com/abo-abo/swiper/issues/782][#782]].
**** Fix ~RET~ when file exists
See [[https://github.com/abo-abo/swiper/issues/792][#792]].
-----
*** =counsel-git=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-counsel-git
:END:
**** Add a better error message.
See [[https://github.com/abo-abo/swiper/issues/537][#537]].
**** Add ~x~ action
To open externally.
-----
*** =counsel-grep=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-counsel-grep
:END:
Quote =:preselect=.
-----
*** =counsel-grep-or-swiper=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-counsel-grep-or-swiper
:END:
Don't grep on compressed files. See [[https://github.com/abo-abo/swiper/issues/536][#536]].
-----
*** =counsel-imenu=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-counsel-imenu
:END:
**** Improve readability
See [[https://github.com/abo-abo/swiper/issues/558][#558]].
**** Force rescan if requested
See [[https://github.com/abo-abo/swiper/issues/631][#631]].
-----
*** =counsel-info-lookup-symbol=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-counsel-info-lookup-symbol
:END:
Fix doc, see [[https://github.com/abo-abo/swiper/issues/721][#721]].
Add preselect, see [[https://github.com/abo-abo/swiper/issues/722][#722]].
-----
*** =counsel-linux-app=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-counsel-linux-app
:END:
**** Don't quit on bad data
See [[https://github.com/abo-abo/swiper/issues/604][#604]].
**** Check if dir exists
See [[https://github.com/abo-abo/swiper/issues/896][#896]].
-----
*** =counsel-load-theme=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-counsel-load-theme
:END:
Add noconfirm flag in =counsel-load-theme-action=.
-----
*** =counsel-locate=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-counsel-locate
:END:
**** Make =counsel-locate-action-extern= interactive
See [[https://github.com/abo-abo/swiper/issues/605][#605]].
**** Add w32 support to =counsel-locate-action-extern=
See [[https://github.com/abo-abo/swiper/issues/607][#607]], [[https://github.com/abo-abo/swiper/issues/688][#688]].
-----
*** =counsel-M-x=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-counsel-m-x
:END:
**** Fix interaction with =repeat=
See [[https://github.com/abo-abo/swiper/issues/564][#564]].
**** Preserve =last-command=
See [[https://github.com/abo-abo/swiper/issues/891][#891]], [[https://github.com/abo-abo/swiper/issues/893][#893]].
-----
*** =counsel-org-tag-action=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-counsel-org-tag-action
:END:
Perform in the minibuffer. See [[https://github.com/abo-abo/swiper/issues/890][#890]].
-----
*** =counsel-recoll=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-counsel-recoll
:END:
Add =shell-quote-argument=. See [[https://github.com/abo-abo/swiper/issues/713][#713]].
-----
*** =counsel-rhythmbox=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-counsel-rhythmbox
:END:
No longer depends on =helm-rhythmbox=.
-----
*** =counsel-yank-pop=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-counsel-yank-pop
:END:
Fix candidates not showing sometimes.
-----
*** doc
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-doc
:END:
**** Fixed typos in the doc
See [[https://github.com/abo-abo/swiper/issues/497][#497]], [[https://github.com/abo-abo/swiper/issues/809][#809]].
**** Added =ivy-format-function= to the doc
See [[https://github.com/abo-abo/swiper/issues/577][#577]].
**** Added info on generating the doc
See [[https://github.com/abo-abo/swiper/issues/601][#601]].
**** Added info on associating values
See [[https://github.com/abo-abo/swiper/issues/714][#714]].
**** Update package names on GNU ELPA / MELPA
See [[https://github.com/abo-abo/swiper/issues/833][#833]].
-----
*** =ivy--filter=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-ivy--filter-recompute-index-after-filter
:END:
Recompute index after filter.

See [[https://github.com/abo-abo/swiper/issues/491][#491]].
-----
*** =ivy--flx-sort=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-ivy--flx-sort
:END:
Improve. See [[https://github.com/abo-abo/swiper/issues/843][#843]].
-----
*** =ivy--format-minibuffer-line=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-ivy--format-minibuffer-line
:END:
Fix for =ivy-display-style= nil. See [[https://github.com/abo-abo/swiper/issues/828][#828]].
-----
*** =ivy--minibuffer-setup=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-ivy--minibuffer-setup
:END:
Fix =max-mini-window-height=. See [[https://github.com/abo-abo/swiper/issues/732][#732]].
-----
*** =ivy--occur-insert-lines=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-ivy--occur-insert-lines
:END:
Scroll to first command. See [[https://github.com/abo-abo/swiper/issues/829][#829]].
-----
*** =ivy--regex-ignore-order=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-ivy--regex-ignore-order
:END:
Ensure it returns legal regexps. See [[https://github.com/abo-abo/swiper/issues/765][#765]].
-----
*** =ivy--reset-state=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-ivy--reset-state
:END:
Simplify. See [[https://github.com/abo-abo/swiper/issues/827][#827]].
-----
*** =ivy--virtual-buffers=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-ivy--virtual-buffers
:END:
Don't modify recentfs or bookmarks. See [[https://github.com/abo-abo/swiper/issues/821][#821]].
-----
*** =ivy-call=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-ivy-call
:END:
Set =default-directory=, see [[https://github.com/abo-abo/swiper/issues/717][#717]], [[https://github.com/abo-abo/swiper/issues/760][#760]], [[https://github.com/abo-abo/swiper/issues/779][#779]], [[https://github.com/abo-abo/swiper/issues/810][#810]].
Recursive logic, see [[https://github.com/abo-abo/swiper/issues/924][#924]], [[https://github.com/abo-abo/swiper/issues/937][#937]].
-----
*** =ivy-completion-in-region=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-ivy-completion-in-region
:END:
Fix double insert bug.
Fix common length bug. See [[https://github.com/abo-abo/swiper/issues/528][#528]].
Remove =:require-match=, see [[https://github.com/abo-abo/swiper/issues/907][#907]].
-----
*** =ivy-completion-in-region-action=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-ivy-completion-in-region-action
:END:
Remove string properties, see [[https://github.com/abo-abo/swiper/issues/517][#517]].
Remove =with-ivy-window=, see [[https://github.com/abo-abo/swiper/issues/928][#928]].
-----
*** =ivy-fixed-height-minibuffer=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-ivy-fixed-height-minibuffer
:END:
Add correction. See [[https://github.com/abo-abo/swiper/issues/737][#737]].
-----
*** =ivy-help-file=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-ivy-help-file
:END:
Define with =defconst=, see [[https://github.com/abo-abo/swiper/issues/938][#938]].
-----
*** =ivy-hydra= is now a separate package on MELPA
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-ivy-hydra-is-now-a-separate-package-on-melpa
:END:
See [[https://github.com/abo-abo/swiper/issues/464][#464]], [[https://github.com/abo-abo/swiper/issues/512][#512]].
-----
*** =ivy-immediate-done=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-ivy-immediate-done
:END:
Update docstring, see [[https://github.com/abo-abo/swiper/issues/525][#525]].
-----
*** =ivy-minibuffer-map=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-ivy-minibuffer-map
:END:
**** Move =ivy-toggle-regexp-quote= from ~M-q~ to ~M-r~.
See [[https://github.com/abo-abo/swiper/issues/566][#566]].
**** Remap scroll-up/down-command
Instead of assigning ~C-v~ / ~M-v~ so page up/down works.
See [[https://github.com/abo-abo/swiper/issues/797][#797]], [[https://github.com/abo-abo/swiper/issues/798][#798]].
**** Remap =backward-delete-char-untabify= to =ivy-backward-delete-char=
**** Rebind ~C-v~ and ~M-v~
The ultimate solution to have PgUp and PgDown and whatever else was
mapped to =scroll-up-command= bound in =ivy-minibuffer-map=. While
still having the standard ~C-v~ and ~M-v~ bindings.

See [[https://github.com/abo-abo/swiper/issues/797][#797]], [[https://github.com/abo-abo/swiper/issues/798][#798]], [[https://github.com/abo-abo/swiper/issues/535][#535]].
-----
*** =ivy-occur-press=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-ivy-occur-press
:END:
Pass the whole cons cell to action, see [[https://github.com/abo-abo/swiper/issues/634][#634]].
-----
*** =ivy-partial=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-ivy-partial
:END:
Fix for =:dynamic-collection=.
See [[https://github.com/abo-abo/swiper/issues/946][#946]].
-----
*** =ivy-read=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-ivy-read
:END:
**** Document all args
See [[https://github.com/abo-abo/swiper/issues/533][#533]].
**** Use predicate when reading file names
See [[https://github.com/abo-abo/swiper/issues/804][#804]].
-----
*** =ivy-remote=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-ivy-remote
:END:
Use a lighter color for dark themes, see [[https://github.com/abo-abo/swiper/issues/646][#646]].
-----
*** =ivy-resume=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-ivy-resume
:END:
The original =default-directory= will be restored, see [[https://github.com/abo-abo/swiper/issues/591][#591]].
-----
*** =ivy-sort-functions-alist=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-ivy-sort-functions-alist
:END:
Improve. See [[https://github.com/abo-abo/swiper/issues/870][#870]].
-----
*** =ivy-switch-buffer=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-ivy-switch-buffer
:END:
**** Reset index to 0 on input
See [[https://github.com/abo-abo/swiper/issues/522][#522]], [[https://github.com/abo-abo/swiper/issues/513][#513]].
-----
*** =ivy-switch-buffer-other-window=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-ivy-switch-buffer-other-window
:END:
Obey =ivy-ignore-buffers=. See [[https://github.com/abo-abo/swiper/issues/745][#745]].
-----
*** Recursive minibuffers with two emacsclients
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-recursive-minibuffers-with-two-emacsclients
:END:
See [[https://github.com/abo-abo/swiper/issues/738][#738]].
-----
*** shrink minibuffer after reading actions
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-shrink-minibuffer-after-reading-actions
:END:
See [[https://github.com/abo-abo/swiper/issues/764][#764]], [[https://github.com/abo-abo/swiper/issues/402][#402]].
-----
*** =swiper=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-swiper
:END:
**** Fix "foo!bar" syntax
See [[https://github.com/abo-abo/swiper/issues/565][#565]].
**** Now respects =ivy-re-builders-alist=
See [[https://github.com/abo-abo/swiper/issues/613][#613]].

Example:
#+begin_src
(setq ivy-re-builders-alist
          '((swiper . ivy--regex-fuzzy)
            (t . ivy--regex-plus)))
#+end_src
-----
*** =swiper-avy=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-swiper-avy
:END:
Require =avy=, see [[https://github.com/abo-abo/swiper/issues/593][#593]].
-----
*** =swiper-font-lock-exclude=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-swiper-font-lock-exclude
:END:
Add =forth-mode=, see [[https://github.com/abo-abo/swiper/issues/526][#526]].
Add =forth-block-mode=, see [[https://github.com/abo-abo/swiper/issues/527][#527]].
Add =bookmark-bmenu-mode=.
Add =nix-mode=, see [[https://github.com/abo-abo/swiper/issues/879][#879]].
Add =circe-mode=, see [[https://github.com/abo-abo/swiper/issues/900][#900]], [[https://github.com/abo-abo/swiper/issues/901][#901]].
-----
*** =swiper-multi=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-fx-swiper-multi
:END:
Fix regression, See [[https://github.com/abo-abo/swiper/issues/673][#673]].
Don't use virtual buffers, See [[https://github.com/abo-abo/swiper/issues/705][#705]].
-----
** New Features
:PROPERTIES:
:CUSTOM_ID: 0-9-0-new-features
:END:
*** =counsel-ag=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nf-counsel-ag
:END:
**** Extend more
See [[https://github.com/abo-abo/swiper/issues/576][#576]].
**** Prompt for extra args when using prefix arg
See [[https://github.com/abo-abo/swiper/issues/774][#774]].
**** Support limiting in files
See [[https://github.com/abo-abo/swiper/issues/820][#820]], [[https://github.com/abo-abo/swiper/issues/822][#822]], [[https://github.com/abo-abo/swiper/issues/823][#823]].
**** =counsel-grep-post-action-hook=
New hook for counsel-ag/grep/pt. See [[https://github.com/abo-abo/swiper/issues/800][#800]], [[https://github.com/abo-abo/swiper/issues/751][#751]].
-----
*** =counsel-bookmark=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nf-counsel-bookmark
:END:
**** =counsel-bookmark-avoid-dired=
When non-nil and a directory is selected from =counsel-bookmark=,
forward the choice to =counsel-find-file= instead of opening a =dired=
buffer.  See [[https://github.com/abo-abo/swiper/issues/813][#813]].
-----
*** =counsel-find-file=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nf-counsel-find-file
:END:
**** Add binding to jump to a bookmarked directory without quit
Press ~M-o b~ to set the current directory to one of the virtual
buffers' directories. You continue to select a file from that directory.

See [[https://github.com/abo-abo/swiper/issues/531][#531]].
**** Add =counsel-find-file-root=
Press ~M-o r~ to find the current file as root.
See [[https://github.com/abo-abo/swiper/issues/948][#948]].
-----
*** =counsel-git=
**** Add =counsel-git-cmd=
See [[https://github.com/abo-abo/swiper/issues/590][#590]].
*** =counsel-git-grep=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nf-counsel-git-grep
:END:
**** Support custom per-project commands
The idea is to grep several Git repositories at once. For example, my
Emacs config is a Git repository with many Git submodule repositories
inside.

When used with ~C-u~, and inside =counsel-git-grep-projects-alist=, use
the corresponding command instead.  Additionally,
=counsel-git-grep-proj-function= is used.

For a possible implementation of the custom git-grep command, see:
https://github.com/abo-abo/oremacs/commit/c7effdb94749dc600b1204ea7a9db319ebdb0f00

See [[https://github.com/abo-abo/swiper/issues/616][#616]].
**** Reveal text hidden in outlines
**** Works with "Git for Windows" and native Emacs build
**** Fix for files with spaces in the name
See [[https://github.com/abo-abo/swiper/issues/700][#700]].
**** Fix ~g~ (=counsel-git-grep-occur=)
Things go wrong when `ivy-text' is changed from the original value.
Extract =ivy-text= from the buffer name.

Quote the directory name. See [[https://github.com/abo-abo/swiper/issues/811][#811]].
**** Update quoting
See [[https://github.com/abo-abo/swiper/issues/876][#876]].
**** =counsel-git-grep-cmd-default=
The initial value for =counsel-git-grep-cmd=.
-----
*** =counsel-git-log=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nf-counsel-git-log
:END:
**** Add =counsel-git-log-cmd=
Allows to customize the command, see [[https://github.com/abo-abo/swiper/issues/652][#652]].
-----
*** =counsel-linux-app=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nf-counsel-linux-app
:END:
**** =counsel-linux-apps-directories=
Customize the search path.
-----
*** =counsel-load-library=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nf-counsel-load-library
:END:
**** Allow to find library with an action
See [[https://github.com/abo-abo/swiper/issues/873][#873]].
-----
*** =counsel-mode=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nf-counsel-mode
:END:
**** Bind =counsel-info-lookup-symbol=
Substitutes =info-lookup-symbol=, see [[https://github.com/abo-abo/swiper/issues/493][#493]].
**** Bind ~C-r~ for =eval-expression= and =shell-command=
Press ~C-r~ while inside the minibuffer during =eval-expression= or
=shell-command= to get completion for history.
-----
*** =counsel-pt=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nf-counsel-pt
:END:
Add =initial-input= arg. See [[https://github.com/abo-abo/swiper/issues/757][#757]].
-----
*** =counsel-unicode-char=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nf-counsel-unicode-char
:END:
**** Add leading zeros to the display
See [[https://github.com/abo-abo/swiper/issues/662][#662]].
**** Support universal argument
See [[https://github.com/abo-abo/swiper/issues/868][#868]].
-----
*** =counsel-yank-pop=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nf-counsel-yank-pop
:END:
**** Add =counsel-yank-pop-separator=
Allows to customize the separator.
See [[https://github.com/abo-abo/swiper/issues/660][#660]].
-----
*** =ivy=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nf-ivy
:END:
**** completion at point
- =ivy-display-functions-alist= ::
    New defcustom, which decides how to display the candidates.
=ivy-completion-in-region= will use completion at point by default.

Related: [[https://github.com/abo-abo/swiper/issues/707][#707]], [[https://github.com/abo-abo/swiper/issues/712][#712]], [[https://github.com/abo-abo/swiper/issues/788][#788]].
**** =ivy-action-wrap=
Set this to have =ivy-next-action= and =ivy-prev-action= wrap around.
**** =ivy-add-actions=
This is a convenience extension to the existing =ivy-set-actions=.
See [[https://github.com/abo-abo/swiper/issues/470][#470]].
**** =ivy-case-fold-search= additional value ='always=
If the value of ivy-case-fold-search is set to 'always, the search is
always case-insensive, regardless of the input.
See [[https://github.com/abo-abo/swiper/issues/916][#916]].
**** =ivy-completion-in-region-action=
Add support for =multiple-cursors=, see [[https://github.com/abo-abo/swiper/issues/547][#547]].
**** =ivy-highlight-functions-alist=
Customize the highlighters. See [[https://github.com/abo-abo/swiper/issues/691][#691]], [[https://github.com/abo-abo/swiper/issues/654][#654]], [[https://github.com/abo-abo/swiper/issues/827][#827]].
**** =ivy-magic-tilde=
New defcustom. Decide if =~= or =~/= should cd home.

See [[https://github.com/abo-abo/swiper/issues/687][#687]], [[https://github.com/abo-abo/swiper/issues/679][#679]].
**** =ivy-set-prompt=
Allow to set the prompt using the =:caller= as key.
**** =ivy-set-prompt-text-properties-function=
An advanced override of the prompt string.
**** =ivy-sort-file-function-using-ido=
Extends the options for sorting file names. See [[https://github.com/abo-abo/swiper/issues/498][#498]].
-----
*** =ivy-completing-read=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nf-ivy-completing-read
:END:
**** Set =:caller= to =this-command=
Improves sorting customization. See [[https://github.com/abo-abo/swiper/issues/899][#899]].
**** Don't =:require-match= for null
See [[https://github.com/abo-abo/swiper/issues/909][#909]].
**** =ivy-completing-read-handlers-alist=
New defcustom. See [[https://github.com/abo-abo/swiper/issues/892][#892]].
-----
*** =ivy-minibuffer-map=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nf-ivy-minibuffer-map
:END:
**** Alternative action list ~M-o~ using Hydra
Not hiding the candidates and using a single line for actions results
in a more distraction-free experience.

Use this code to turn it on:
#+begin_src elisp
(require 'ivy-hydra)
#+end_src
-----
*** =ivy-occur-mode=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nf-ivy-occur-mode
:END:
**** ~RET~ now switches to candidate window
**** =read-only-mode= is enabled
See [[https://github.com/abo-abo/swiper/issues/720][#720]].
**** Set =view-read-only= locally
See [[https://github.com/abo-abo/swiper/issues/789][#789]].
**** Run =wgrep-setup=
See [[https://github.com/abo-abo/swiper/issues/904][#904]].
-----
*** =ivy-read=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nf-ivy-read
:END:
**** Make key binding for other window action consistent
By default, ~M-o j~ will select the file or buffer in other window, for
both =ivy-switch-buffer= and =counsel-find-file=.
**** Facilitate sorting of cons cells
See [[https://github.com/abo-abo/swiper/issues/554][#554]].
#+begin_src elisp
(defvar ivy-sorter-data '(("b 1" . 1) ("a 2" . 2) ("d 0" . 0) ("c 5" . 5)))

(defun isn (a b)
  (< (cdr a) (cdr b)))

(add-to-list 'ivy-sort-functions-alist '(ivy-sorter . isn))

(ivy-read "string: " ivy-sorter-data
          :sort t
          :caller 'ivy-sorter)
#+end_src
**** Add prefix arg for action functions
See [[https://github.com/abo-abo/swiper/issues/552][#552]].

Single actions:
| C-m     | ivy-done             | store prefix |
| M-o     | ivy-dispatching-done | store prefix |
| C-j     | ivy-alt-done         | store prefix |
| C-M-j   | ivy-immediate-done   | store prefix |
| TAB TAB | ivy-partial-or-done  | unsupported  |
| C-'     | ivy-avy              | unsupported  |

Multiple actions:
| C-M-m | ivy-call                   | store prefix, type prefix again for next call |
| C-M-o | ivy-dispatching-call       | store prefix, type prefix again for next call |
| C-M-n | ivy-next-line-and-call     | store prefix, type prefix again for next call |
| C-M-p | ivy-previous-line-and-call | store prefix, type prefix again for next call |

An example application:

no prefix prints first number in a message-box
one prefix prints last number in a message-box
numeric prefix selects the index to print in a message-box
#+begin_src elisp
(ivy-read "choose: " '(("a" 1 2 3)
                       ("b" 3 4 5))
          :action
          (lambda (x)
            (message-box "%s"
                         (cond
                           ((null ivy-current-prefix-arg)
                            (elt x 0))
                           ((equal '(4) ivy-current-prefix-arg)
                            (car (last x)))
                           (t
                            (elt x (prefix-numeric-value ivy-current-prefix-arg)))))))
#+end_src
**** Breaking change for alist type collection actions
The action will be called with collection's =ITEM=, instead of =(cdr
ITEM)= like before. This allows to simplify the logic of complex action
functions: they don't have to look up the full item by string in their
own collection, moreover they don't have to know anything about their
collection.
**** Implement unique index for alist completion
The uniqueness assumption is that the completion system is passed a
list of /unique/ strings, of which one (or more) are selected.

Unlike plain string completion, alists may require violating the
uniqueness assumption: there may be two elements with the same =car= but
different =cdr=. Example: C function declaration and definition for tag
completion.

Until now, whenever two equal strings were sent to =ivy-read=, only the
first one could be selected. Now, each alist car gets an integer index
assigned to it as a text property ='idx=. So it's possible to
differentiate two alist items with the same key.
**** Make =with-ivy-window= not necessary in the action function
This allows for a lot of simplification, e.g. use =insert= instead of
=(lambda (x) (with-ivy-window (insert x)))=.

See [[https://github.com/abo-abo/swiper/issues/639][#639]].
-----
*** =ivy-switch-buffer=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nf-ivy-switch-buffer
:END:
**** Add =ivy-sort-function-buffer=
Puts e.g. the =*scratch*= buffer ahead of the =misc= buffer if the input
is "sc", since it's almost like a prefix match.

See [[https://github.com/abo-abo/swiper/issues/595][#595]].
**** Sort virtual buffers after open buffers
See [[https://github.com/abo-abo/swiper/issues/706][#706]], [[https://github.com/abo-abo/swiper/issues/743][#743]].
**** =ivy-switch-buffer-faces-alist=
Allow to customize faces in =ivy-switch-buffer= by the mode of each buffer.

Example:
#+begin_src elisp
(setq ivy-switch-buffer-faces-alist
      '((emacs-lisp-mode . swiper-match-face-1)
        (dired-mode . ivy-subdir)
        (org-mode . org-level-4)))
#+end_src
-----
*** =swiper=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nf-swiper
:END:
**** Add option for swiper line number to be searchable
See =swiper-include-line-number-in-search= and [[https://github.com/abo-abo/swiper/issues/562][#562]].
**** Restore window position after using swiper.
Relevant for high settings of =scroll-conservatively=.
See [[https://github.com/abo-abo/swiper/issues/643][#643]].
**** Improve fuzzy highlight
If you've set the regex builder to fuzzy (non-default), you'll get a
highlight quality on par with the default one.  See [[https://github.com/abo-abo/swiper/issues/651][#651]], [[https://github.com/abo-abo/swiper/issues/653][#653]].
**** Add =char-fold-to-regexp=
See [[https://github.com/abo-abo/swiper/issues/622][#622]].
**** Add compatibility with =evil-ex-search=
See [[https://github.com/abo-abo/swiper/issues/887][#887]].
**** Apply =evil= search highlighting
See [[https://github.com/abo-abo/swiper/issues/888][#888]].
**** Set =evil-ex-search-direction=
See [[https://github.com/abo-abo/swiper/issues/947][#947]].
**** =swiper-goto-start-of-match=
New defcustom. When non-nil, swiper default action will go to the
beginning of the match instead of on its end. This behavior is
inspired by vim's and evil's way of searching.

See [[https://github.com/abo-abo/swiper/issues/944][#944]], [[https://github.com/abo-abo/swiper/issues/942][#942]].
**** =swiper-avy= works with more regexp builders
See [[https://github.com/abo-abo/swiper/issues/932][#932]].
-----
*** =swiper-all=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nf-swiper-all
:END:
**** Is now async
This means extremely fast startup time.

Additionally, the feedback to input is quite fast even with a hundred
buffers. This is because, unlike =swiper=, line numbers are not
computed. Computing line numbers, while situationally useful, is
really slow for huge buffers, and even slower for dozens of huge
buffers.

See [[https://github.com/abo-abo/swiper/issues/620][#620]].
**** Press ~M-q~ for query-replace
See [[https://github.com/abo-abo/swiper/issues/623][#623]].
**** Ignore TAGS buffers
See [[https://github.com/abo-abo/swiper/issues/787][#787]].
**** Consider magit stash buffers
See [[https://github.com/abo-abo/swiper/issues/819][#819]].
**** Fix =case-fold-search=
See [[https://github.com/abo-abo/swiper/issues/880][#880]].
-----
** New Commands
:PROPERTIES:
:CUSTOM_ID: 0-9-0-new-commands
:END:
*** =counsel-bookmark=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nc-counsel-bookmark
:END:
Completion for =bookmark-jump=.

Can delete and rename bookmarks, see [[https://github.com/abo-abo/swiper/issues/758][#758]].
-----
*** =counsel-colors-emacs=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nc-counsel-colors-emacs
:END:
See [[https://github.com/abo-abo/swiper/issues/815][#815]], [[https://github.com/abo-abo/swiper/issues/921][#921]].
-----
*** =counsel-colors-web=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nc-counsel-colors-web
:END:
See [[https://github.com/abo-abo/swiper/issues/815][#815]].
-----
*** =counsel-command-history=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nc-counsel-command-history
:END:
See [[https://github.com/abo-abo/swiper/issues/826][#826]].
-----
*** =counsel-company=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nc-counsel-company
:END:
Picks up company's candidates and inserts the result into the buffer.
See [[https://github.com/abo-abo/swiper/issues/331][#331]], [[https://github.com/abo-abo/swiper/issues/547][#547]].
-----
*** =counsel-describe-face=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nc-counsel-describe-face
:END:
See [[https://github.com/abo-abo/swiper/issues/585][#585]], [[https://github.com/abo-abo/swiper/issues/703][#703]].
-----
*** =counsel-dired-jump=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nc-counsel-dired-jump
:END:
Like, =counsel-file-jump=, but for directories.
-----
*** =counsel-dpkg=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nc-counsel-dpkg
:END:
Completion for =dpkg -l=.
-----
*** =counsel-faces=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nc-counsel-faces
:END:
See [[https://github.com/abo-abo/swiper/issues/815][#815]].
-----
*** =counsel-file-jump=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nc-counsel-file-jump
:END:
Jump to a file from a list of all files in the current directory, see [[https://github.com/abo-abo/swiper/issues/609][#609]], [[https://github.com/abo-abo/swiper/issues/610][#610]].
-----
*** =counsel-find-library=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nc-counsel-find-library
:END:
A helpful and unsurprising alternative to using ~C-.~ with
=counsel-load-library=.
See [[https://github.com/abo-abo/swiper/issues/794][#794]], [[https://github.com/abo-abo/swiper/issues/801][#801]].
-----
*** =counsel-hydra-heads=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nc-counsel-hydra-heads
:END:
Call a head of the current/last hydra by name.
See [[https://github.com/abo-abo/swiper/issues/696][#696]].
-----
*** =counsel-irony=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nc-counsel-irony
:END:
Inline C++ completion using Irony.
-----
*** =counsel-mark-ring=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nc-counsel-mark-ring
:END:
See [[https://github.com/abo-abo/swiper/issues/834][#834]].
-----
*** =counsel-org-agenda-headlines=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nc-counsel-org-agenda-headlines
:END:
See [[https://github.com/abo-abo/swiper/issues/825][#825]].
-----
*** =counsel-outline=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nc-counsel-outline
:END:
Completion for outlines in the current buffer.
-----
*** =counsel-package=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nc-counsel-package
:END:
Manage packages. Allows installing, deleting, describing etc.
See [[https://github.com/abo-abo/swiper/issues/869][#869]], [[https://github.com/abo-abo/swiper/issues/872][#872]].
-----
*** =counsel-recentf=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nc-counsel-recentf
:END:
Renamed from =ivy-recentf=, see [[https://github.com/abo-abo/swiper/issues/624][#624]].

Added actions in [[https://github.com/abo-abo/swiper/issues/701][#701]]:

- ~j~ for =find-file-other-window=
- ~x~ for =counsel-find-file-extern=

Remove text properties, see [[https://github.com/abo-abo/swiper/issues/770][#770]].
-----
*** =counsel-rg=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nc-counsel-rg
:END:
Grep for a string in the current directory using =rg=.
Use =counsel-rg-base-command= to customize.
See [[https://github.com/abo-abo/swiper/issues/784][#784]], [[https://github.com/abo-abo/swiper/issues/785][#785]], [[https://github.com/abo-abo/swiper/issues/795][#795]], [[https://github.com/abo-abo/swiper/issues/796][#796]].
-----
*** =counsel-rpm=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nc-counsel-rpm
:END:
Call the =rpm= shell command. See [[https://github.com/abo-abo/swiper/issues/695][#695]].
-----
*** =counsel-semantic=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nc-counsel-semantic
:END:
Completion for semantic tags.
-----
*** =counsel-set-variable=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nc-counsel-set-variable
:END:
Completion for setting a variable to a value.
See [[https://github.com/abo-abo/swiper/issues/544][#544]], [[https://github.com/abo-abo/swiper/issues/546][#546]], [[https://github.com/abo-abo/swiper/issues/549][#549]], [[https://github.com/abo-abo/swiper/issues/550][#550]], [[https://github.com/abo-abo/swiper/issues/556][#556]].
-----
*** =counsel-shell-command-history=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nc-counsel-shell-command-history
:END:
Search through history in =shell-mode=. See [[https://github.com/abo-abo/swiper/issues/689][#689]].

When =counsel-mode= is on, ~M-! C-r~ will call
=counsel-shell-command-history=.
-----
*** =ivy-push-view=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nc-ivy-push-view
:END:
And =ivy-pop-view=.

1. Use =ivy-push-view= to store a view - your current window tree.  This
   contains: all windows on the current frame, and their configuration
   w.r.t. horizontal or vertical splits. The point positions in each
   window are stored as well.

2. Use =ivy-switch-buffer= to select stored views.

3. Use =ivy-pop-view= to delete a stored view that you don't want any
   more.

See [[https://github.com/abo-abo/swiper/issues/584][#584]].
-----
*** =ivy-rotate-sort=
:PROPERTIES:
:CUSTOM_ID: 0-9-0-nc-ivy-rotate-sort
:END:
Modify =ivy-sort-functions-alist= to allow a list of sorting functions
to apply to a collection. The car of this list is the current
one. =ivy-rotate-sort= then rotates this list through the different
possibilities. Bound to ~C-c C-s~. Here is a simple example to
illustrate.

#+begin_src elisp
(setq ivy-sort-functions-alist
      '((read-file-name-internal .
                                (ivy-sort-file-function-default string-lessp string-greaterp))
       (internal-complete-buffer . nil)
       (counsel-git-grep-function . nil)
       (Man-goto-section . nil)
       (org-refile . nil)
       (t . string-lessp)))
#+end_src

~M-x~ =find-file= ~RET C-c C-s~ now switches from the default sorting to
using =string-lessp=. ~C-c C-s~ again switches to =string-greaterp= and so
on.

See [[https://github.com/abo-abo/swiper/issues/845][#845]], [[https://github.com/abo-abo/swiper/issues/927][#927]].
-----
#+BEGIN_EXPORT html
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
#+END_EXPORT
* 0.10.0
:PROPERTIES:
:CUSTOM_ID: 0.10.0
:END:
-----
** Fixes
:PROPERTIES:
:CUSTOM_ID: 0-10-0-fixes
:END:
*** counsel-ag
:PROPERTIES:
:CUSTOM_ID: 0-10-0-fx-counsel-ag
:END:
Fix default ag command on Windows, see [[https://github.com/abo-abo/swiper/issues/1221][#1221]].
-----
*** counsel-ag-occur
:PROPERTIES:
:CUSTOM_ID: 0-10-0-fx-counsel-ag-occur
:END:
Don't break when search string begins with "-", see [[https://github.com/abo-abo/swiper/issues/1048][#1048]].

Fix quoting, see [[https://github.com/abo-abo/swiper/issues/1240][#1240]].
-----
*** counsel-company
:PROPERTIES:
:CUSTOM_ID: 0-10-0-fx-counsel-company
:END:
Various fixes, see [[https://github.com/abo-abo/swiper/issues/969][#969]].
-----
*** counsel-descbinds
:PROPERTIES:
:CUSTOM_ID: 0-10-0-fx-counsel-descbinds
:END:
Fix regex, see [[https://github.com/abo-abo/swiper/issues/1089][#1089]].
-----
*** counsel-dired-jump
:PROPERTIES:
:CUSTOM_ID: 0-10-0-fx-counsel-dired-jump
:END:
Obey =find-program=, see [[https://github.com/abo-abo/swiper/issues/1181][#1181]].
-----
*** counsel-find-file
:PROPERTIES:
:CUSTOM_ID: 0-10-0-fx-counsel-find-file
:END:
Fix ~C-y~ when pasting a file path.

Fix magic slash regression, see [[https://github.com/abo-abo/swiper/issues/1027][#1027]].

Don't quote regex for =initial-input=.

Don't bind =find-file-hook= if not necessary, see [[https://github.com/abo-abo/swiper/issues/627][#627]], [[https://github.com/abo-abo/swiper/issues/1118][#1118]].

Fix completion of relative directories, see [[https://github.com/abo-abo/swiper/issues/1055][#1055]].

Make sure foo/ directory goes before foo-bar/ directory, see [[https://github.com/abo-abo/swiper/issues/1315][#1315]].
-----
*** counsel-find-file-occur
:PROPERTIES:
:CUSTOM_ID: 0-10-0-fx-counsel-find-file-occur
:END:
Use =xargs -d '\n'=, see [[https://github.com/abo-abo/swiper/issues/1323][#1323]].
-----
*** counsel-git-grep
:PROPERTIES:
:CUSTOM_ID: 0-10-0-fx-counsel-git-grep
:END:
Fix error on 24.5, see [[https://github.com/abo-abo/swiper/issues/1107][#1107]].
Fix for Windows, see [[https://github.com/abo-abo/swiper/issues/1176][#1176]].
-----
*** counsel-git-grep-occur
:PROPERTIES:
:CUSTOM_ID: 0-10-0-fx-counsel-git-grep-occur
:END:
Fix output with negative pattern, see [[https://github.com/abo-abo/swiper/issues/1173][#1173]].

Fix bug, see [[https://github.com/abo-abo/swiper/issues/1225][#1225]].
-----
*** counsel-git-grep-recenter
:PROPERTIES:
:CUSTOM_ID: 0-10-0-fx-counsel-git-grep-recenter
:END:
Fix warning, see [[https://github.com/abo-abo/swiper/issues/1097][#1097]].
-----
*** counsel-git-grep-transformer
:PROPERTIES:
:CUSTOM_ID: 0-10-0-fx-counsel-git-grep-transformer
:END:
Optimize text props, see [[https://github.com/abo-abo/swiper/issues/1264][#1264]].
-----
*** counsel-git-log
:PROPERTIES:
:CUSTOM_ID: 0-10-0-fx-counsel-git-log
:END:
Ignore blank candidates, see [[https://github.com/abo-abo/swiper/issues/1122][#1122]].
-----
*** counsel-git-occur
:PROPERTIES:
:CUSTOM_ID: 0-10-0-fx-counsel-git-occur
:END:
Fix regex, see [[https://github.com/abo-abo/swiper/issues/1299][#1299]].
-----
*** counsel-grep-base-command
:PROPERTIES:
:CUSTOM_ID: 0-10-0-fx-counsel-grep-base-command
:END:
Add "--", see [[https://github.com/abo-abo/swiper/issues/1266][#1266]].
-----
*** counsel-imenu
:PROPERTIES:
:CUSTOM_ID: 0-10-0-fx-counsel-imenu
:END:
Add trailing space to prompt, see [[https://github.com/abo-abo/swiper/issues/1245][#1245]].
-----
*** counsel-irony
:PROPERTIES:
:CUSTOM_ID: 0-10-0-fx-counsel-irony
:END:
Various fixes, see [[https://github.com/abo-abo/swiper/issues/1018][#1018]].
-----
*** counsel-locate-action-extern
:PROPERTIES:
:CUSTOM_ID: 0-10-0-fx-counsel-locate-action-extern
:END:
Handle cygwin, see [[https://github.com/abo-abo/swiper/issues/1314][#1314]].
-----
*** counsel-M-x
:PROPERTIES:
:CUSTOM_ID: 0-10-0-fx-counsel-m-x
:END:
Don't rebuild cache on every call, see [[https://github.com/abo-abo/swiper/issues/1085][#1085]].
Add own history, see [[https://github.com/abo-abo/swiper/issues/1185][#1185]].
-----
*** counsel-package
:PROPERTIES:
:CUSTOM_ID: 0-10-0-fx-counsel-package
:END:
Fix package removal, see [[https://github.com/abo-abo/swiper/issues/970][#970]].
-----
*** counsel-set-variable
:PROPERTIES:
:CUSTOM_ID: 0-10-0-fx-counsel-set-variable
:END:
Handle defcustom with multiple entries, see [[https://github.com/abo-abo/swiper/issues/960][#960]].
-----
*** counsel-shell-history
:PROPERTIES:
:CUSTOM_ID: 0-10-0-fx-counsel-shell-history
:END:
Work around =ring-elements=, see [[https://github.com/abo-abo/swiper/issues/1148][#1148]].
-----
*** counsel-unquote-regex-parens
:PROPERTIES:
:CUSTOM_ID: 0-10-0-fx-counsel-unquote-regex-parens
:END:
Handle cons arg, see [[https://github.com/abo-abo/swiper/issues/1322][#1322]].
-----
*** ivy
:PROPERTIES:
:CUSTOM_ID: 0-10-0-fx-ivy
:END:
Various fixes, see [[https://github.com/abo-abo/swiper/issues/997][#997]], [[https://github.com/abo-abo/swiper/issues/1327][#1327]], [[https://github.com/abo-abo/swiper/issues/1334][#1334]], [[https://github.com/abo-abo/swiper/issues/1336][#1336]].

Don't add =:preselect= to collection, see [[https://github.com/abo-abo/swiper/issues/1017][#1017]].

Avoid setting ivy window as minibuffer, see [[https://github.com/abo-abo/swiper/issues/1051][#1051]], [[https://github.com/abo-abo/swiper/issues/1053][#1053]].

Init index with 0, see [[https://github.com/abo-abo/swiper/issues/1080][#1080]].

=ivy-initial-inputs-alist= should use =:caller= first, see [[https://github.com/abo-abo/swiper/issues/1068][#1068]].

=ivy--sorted-files= should always use predicate, see [[https://github.com/abo-abo/swiper/issues/1121][#1121]].

Simplify re-builder / highlight, see [[https://github.com/abo-abo/swiper/issues/1147][#1147]].

Ensure bookmarks are loaded, see [[https://github.com/abo-abo/swiper/issues/1160][#1160]].

Fix arrows not working for =ivy--regex-ignore-order=, see [[https://github.com/abo-abo/swiper/issues/1159][#1159]].

Fix ~C-M-j~ for =ivy-completion-in-region-action=, see [[https://github.com/abo-abo/swiper/issues/1178][#1178]].

Correct spelling, see [[https://github.com/abo-abo/swiper/issues/1179][#1179]].

Ensure action and display transformer are called from initial
buffer. See [[https://github.com/abo-abo/swiper/issues/1182][#1182]].

Allow "!" and space to be escaped in =ivy--regex-ignore-order=. See [[https://github.com/abo-abo/swiper/issues/976][#976]].

Call =ivy-overlay-cleanup= only when needed, see [[https://github.com/abo-abo/swiper/issues/1211][#1211]].

Don't require prompt to end in ": ", see [[https://github.com/abo-abo/swiper/issues/1207][#1207]].

Remove empty string from collection, see [[https://github.com/abo-abo/swiper/issues/1230][#1230]], [[https://github.com/abo-abo/swiper/issues/1236][#1236]].

Fix "/sudo::" in current dir, see [[https://github.com/abo-abo/swiper/issues/1232][#1232]].

Fix prefix issue, see [[https://github.com/abo-abo/swiper/issues/1244][#1244]].

Update prompt even if there are no candidates. See [[https://github.com/abo-abo/swiper/issues/1183][#1183]].

Also check =this-command= for sorting, see [[https://github.com/abo-abo/swiper/issues/1294][#1294]].
-----
*** ivy-add-actions
:PROPERTIES:
:CUSTOM_ID: 0-10-0-fx-ivy-add-actions
:END:
Delete action duplicates by key, see [[https://github.com/abo-abo/swiper/issues/1296][#1296]].
-----
*** ivy-avy
:PROPERTIES:
:CUSTOM_ID: 0-10-0-fx-ivy-avy
:END:
Fix logic when scrolled, see [[https://github.com/abo-abo/swiper/issues/1004][#1004]].

Exit silently, see [[https://github.com/abo-abo/swiper/issues/1073][#1073]].

Select correct candidate when using display transformer, see [[https://github.com/abo-abo/swiper/issues/1255][#1255]].
-----
*** ivy-completing-read-handlers-alist
:PROPERTIES:
:CUSTOM_ID: 0-10-0-fx-ivy-completing-read-handlers-alist
:END:
Add some entries, and tests. See [[https://github.com/abo-abo/swiper/issues/1049][#1049]].
-----
*** ivy-completion-in-region
:PROPERTIES:
:CUSTOM_ID: 0-10-0-fx-ivy-completion-in-region
:END:
Fix length bug, see [[https://github.com/abo-abo/swiper/issues/1251][#1251]].

Fix sole match case, see [[https://github.com/abo-abo/swiper/issues/1252][#1252]].
-----
*** ivy-display-function-overlay
:PROPERTIES:
:CUSTOM_ID: 0-10-0-fx-ivy-display-function-overlay
:END:
Fall back when there's no space, see [[https://github.com/abo-abo/swiper/issues/1136][#1136]].
Fall back when there's no vertical space, see [[https://github.com/abo-abo/swiper/issues/1136][#1136]].
Check for point-min, see [[https://github.com/abo-abo/swiper/issues/1267][#1267]].
Fix for =org-indent-mode=.
-----
*** ivy-ffap-url-functions
:PROPERTIES:
:CUSTOM_ID: 0-10-0-fx-ivy-ffap-url-functions
:END:
Check if git is present, see [[https://github.com/abo-abo/swiper/issues/1216][#1216]].

-----
*** ivy-format-function-arrow
:PROPERTIES:
:CUSTOM_ID: 0-10-0-fx-ivy-format-function-arrow
:END:
Fixup, see [[https://github.com/abo-abo/swiper/issues/1004][#1004]].
-----
*** ivy-initial-inputs-alist
:PROPERTIES:
:CUSTOM_ID: 0-10-0-fx-ivy-initial-inputs-alist
:END:
Fix entry for man, see [[https://github.com/abo-abo/swiper/issues/1226][#1226]].
-----
*** ivy-occur
:PROPERTIES:
:CUSTOM_ID: 0-10-0-fx-ivy-occur
:END:
Fix double =pop-to-buffer= issue, see [[https://github.com/abo-abo/swiper/issues/1284][#1284]].

Don't fail if buffer was killed.

Fix regex passed to grep, see [[https://github.com/abo-abo/swiper/issues/1299][#1299]].

Use =setq-local=, see [[https://github.com/abo-abo/swiper/issues/1318][#1318]].

Add =ivy--dirname-p=, see [[https://github.com/abo-abo/swiper/issues/1317][#1317]].
-----
*** ivy-partial
:PROPERTIES:
:CUSTOM_ID: 0-10-0-fx-ivy-partial
:END:
Fix interaction with case-folding, see [[https://github.com/abo-abo/swiper/issues/1019][#1019]], [[https://github.com/abo-abo/swiper/issues/1021][#1021]].
Fix downcase for non-string, see [[https://github.com/abo-abo/swiper/issues/1024][#1024]], [[https://github.com/abo-abo/swiper/issues/1036][#1036]].
-----
*** ivy-previous-line-or-history
:PROPERTIES:
:CUSTOM_ID: 0-10-0-fx-ivy-previous-line-or-history
:END:
Should not insert the last history item unless the currently-selected
completion candidate is the first in the list, otherwise it's
impossible to navigate back up with successive applications of this
command, see [[https://github.com/abo-abo/swiper/issues/1137][#1137]].
-----
*** ivy-re-builders-alist
:PROPERTIES:
:CUSTOM_ID: 0-10-0-fx-ivy-re-builders-alist
:END:
Extend docstring, see [[https://github.com/abo-abo/swiper/issues/1308][#1308]].
-----
*** ivy-with-r
:PROPERTIES:
:CUSTOM_ID: 0-10-0-fx-ivy-with-r
:END:
Use =with-output-to-string=, see [[https://github.com/abo-abo/swiper/issues/1300][#1300]].
-----
*** swiper
:PROPERTIES:
:CUSTOM_ID: 0-10-0-fx-swiper
:END:
Protect against =match-beginning= / =match-end= not integerp. See [[https://github.com/abo-abo/swiper/issues/1188][#1188]],
[[https://github.com/abo-abo/swiper/issues/1192][#1192]].
-----
*** swiper--init
:PROPERTIES:
:CUSTOM_ID: 0-10-0-fx-swiper--init
:END:
Turn off =reveal-mode= for the duration, see [[https://github.com/abo-abo/swiper/issues/1312][#1312]].
-----
*** swiper-all-buffer-p
:PROPERTIES:
:CUSTOM_ID: 0-10-0-fx-swiper-all-buffer-p
:END:
Various mode additions.
-----
*** swiper-font-lock-exclude
:PROPERTIES:
:CUSTOM_ID: 0-10-0-fx-swiper-font-lock-exclude
:END:
Add treemacs-mode, see [[https://github.com/abo-abo/swiper/issues/1212][#1212]].

Add magit-popup-mode, see [[https://github.com/abo-abo/swiper/issues/1274][#1274]].

Add adoc-mode, see [[https://github.com/abo-abo/swiper/issues/1275][#1275]].

Add bbdb-mode, see [[https://github.com/abo-abo/swiper/issues/1276][#1276]].
-----
** New Features
:PROPERTIES:
:CUSTOM_ID: 0-10-0-new-features
:END:
*** counsel
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nf-counsel
:END:
When an external program output is used, first check if the program is
installed, see [[https://github.com/abo-abo/swiper/issues/1076][#1076]].

Allow async commands on Tramp buffers, see [[https://github.com/abo-abo/swiper/issues/1229][#1229]], [[https://github.com/abo-abo/swiper/issues/1233][#1233]].
-----
*** counsel-async-filter-update-time
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nf-counsel-async-filter-update-time
:END:
Configure async delay. See [[https://github.com/abo-abo/swiper/issues/1149][#1149]].
-----
*** counsel-async-ignore-re
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nf-counsel-async-ignore-re
:END:
New defcustom. See [[https://github.com/abo-abo/swiper/issues/1122][#1122]].
-----
*** counsel-describe-function
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nf-counsel-describe-function
:END:
Highlight interactive functions, see [[https://github.com/abo-abo/swiper/issues/981][#981]], [[https://github.com/abo-abo/swiper/issues/982][#982]].
-----
*** counsel-describe-function-function
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nf-counsel-describe-function-function
:END:
Customize =counsel-describe-function=. Useful for
https://github.com/Wilfred/helpful. See [[https://github.com/abo-abo/swiper/issues/1321][#1321]].
-----
*** counsel-describe-function-preselect
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nf-counsel-describe-function-preselect
:END:
Customize which symbol will be initial for =counsel-describe-function=,
see [[https://github.com/abo-abo/swiper/issues/1088][#1088]], [[https://github.com/abo-abo/swiper/issues/1330][#1330]].
-----
*** counsel-describe-variable
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nf-counsel-describe-variable
:END:
Highlight custom variables, see [[https://github.com/abo-abo/swiper/issues/980][#980]], [[https://github.com/abo-abo/swiper/issues/982][#982]].
-----
*** counsel-find-file-ignore-regexp
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nf-counsel-find-file-ignore-regexp
:END:
Offer =completion-ignored-extensions=, see [[https://github.com/abo-abo/swiper/issues/1092][#1092]].
-----
*** counsel-fzf-dir-function
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nf-counsel-fzf-dir-function
:END:
Allow to customize fzf work directory.
-----
*** counsel-git
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nf-counsel-git
:END:
Add optional =initial-input=, see [[https://github.com/abo-abo/swiper/issues/1074][#1074]].
-----
*** counsel-git-grep-skip-counting-lines
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nf-counsel-git-grep-skip-counting-lines
:END:
New defcustom, see [[https://github.com/abo-abo/swiper/issues/524][#524]], [[https://github.com/abo-abo/swiper/issues/1042][#1042]].
-----
*** counsel-git-log-split-string-re
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nf-counsel-git-log-split-string-re
:END:
New defcustom. See [[https://github.com/abo-abo/swiper/issues/1122][#1122]].
-----
*** counsel-grep-or-swiper
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nf-counsel-grep-or-swiper
:END:
Don't attempt to save readonly files, see [[https://github.com/abo-abo/swiper/issues/999][#999]].

Prevent opening an already opened file, see [[https://github.com/abo-abo/swiper/issues/1001][#1001]].

Improve logic, see [[https://github.com/abo-abo/swiper/issues/1290][#1290]].

More uniform interface, see [[https://github.com/abo-abo/swiper/issues/1313][#1313]].
-----
*** counsel-imenu-map
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nf-counsel-imenu-map
:END:
Allows to use ~C-l~ to recenter. See [[https://github.com/abo-abo/swiper/issues/1180][#1180]].
-----
*** counsel-linux-app
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nf-counsel-linux-app
:END:
Various improvements, see [[https://github.com/abo-abo/swiper/issues/897][#897]], [[https://github.com/abo-abo/swiper/issues/959][#959]].

Press ~M-o d~ to open the desktop file, see [[https://github.com/abo-abo/swiper/issues/897][#897]].
-----
*** counsel-mark-ring
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nf-counsel-mark-ring
:END:
Sort by location, see [[https://github.com/abo-abo/swiper/issues/1006][#1006]].

Fixes, see [[https://github.com/abo-abo/swiper/issues/1328][#1328]], [[https://github.com/abo-abo/swiper/issues/1329][#1329]].
-----
*** counsel-mode-map
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nf-counsel-mode-map
:END:
Add =counsel-faces=, see [[https://github.com/abo-abo/swiper/issues/1259][#1259]].
-----
*** counsel-rg
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nf-counsel-rg
:END:
Limit results to 150 columns, see [[https://github.com/abo-abo/swiper/issues/988][#988]].

Never use color results, see [[https://github.com/abo-abo/swiper/issues/1060][#1060]].

Search whole Git repository, not the current directory.
-----
*** counsel-unicode-char
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nf-counsel-unicode-char
:END:
Show candidates in order, see [[https://github.com/abo-abo/swiper/issues/1003][#1003]].

Adapt to =ucs-names= being a hash table in emacs-26, see [[https://github.com/abo-abo/swiper/issues/1223][#1223]].

Make lazy, see [[https://github.com/abo-abo/swiper/issues/1204][#1204]].
-----
*** counsel-up-directory
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nf-counsel-up-directory
:END:
If the current directory is remote and it's not possible to go up any
further, make the remote prefix editable. See [[https://github.com/abo-abo/swiper/issues/1242][#1242]], [[https://github.com/abo-abo/swiper/issues/1227][#1227]].
-----
*** counsel-url-expand
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nf-counsel-url-expand
:END:
Added to =ivy-ffap-url-functions= by default.

Customize =counsel-url-expansions= to be able to browse various links
with ~C-x C-f M-n~. See [[https://github.com/abo-abo/swiper/issues/1164][#1164]].
-----
*** counsel-yank-pop
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nf-counsel-yank-pop
:END:
Don't restrict to 3 chars or more, see [[https://github.com/abo-abo/swiper/issues/973][#973]].

Press ~M-o d~ to remove an item from the kill ring.

Ignore empty candidates, see [[https://github.com/abo-abo/swiper/issues/1043][#1043]].
-----
*** ivy
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nf-ivy
:END:
**** Add ~i~ and ~w~ as global actions
:PROPERTIES:
:CUSTOM_ID: add-~i~-and-~w~-as-global-actions
:END:
In any completion session:
- Press ~M-o w~ to copy the current candidate to the kill ring.
- Press ~M-o i~ to insert the current candidate into the buffer.
**** Bind ~<next>~ and ~<prior>~
:PROPERTIES:
:CUSTOM_ID: bind-~<next>~-and-~<prior>~
:END:
**** Add CONTRIBUTING.org
:PROPERTIES:
:CUSTOM_ID: add-contributing.org
:END:
See [[https://github.com/abo-abo/swiper/issues/1260][#1260]], [[https://github.com/abo-abo/swiper/issues/1332][#1332]].
-----
*** ivy-auto-select-single-candidate
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nf-ivy-auto-select-single-candidate
:END:
Off by default. When on, and there's only one candidate, use it
automatically without a completion session.
-----
*** ivy-backward-delete-char
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nf-ivy-backward-delete-char
:END:
Preselect last dir, see [[https://github.com/abo-abo/swiper/issues/1257][#1257]].
-----
*** ivy-completion-in-region
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nf-ivy-completion-in-region
:END:
Use =:initial-input= and =:unwind=. Previously, Ivy's "prefixing" and
"perfect match" index logic was messed up for
completion-in-region. The reason being is that the initial prefix was
never passed to Ivy: instead, the collection was pre-filtered on the
prefix and a "new" completion session didn't know about it.
-----
*** ivy-dispatching-done-hydra
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nf-ivy-dispatching-done-hydra
:END:
Quit with ~C-g~, see [[https://github.com/abo-abo/swiper/issues/922][#922]].

Break hint into columns, see [[https://github.com/abo-abo/swiper/issues/953][#953]].
-----
*** ivy-magic-slash-non-match-action
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nf-ivy-magic-slash-non-match-action
:END:
Customize what ~/~ does when completing file names, see [[https://github.com/abo-abo/swiper/issues/998][#998]], [[https://github.com/abo-abo/swiper/issues/1009][#1009]].
-----
*** ivy-occur
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nf-ivy-occur
:END:
When completing file names, =counsel-cmd-to-dired= is called, resulting
in a Dired buffer.
-----
*** ivy-occur-mode-map
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nf-ivy-occur-mode-map
:END:
Bind ~R~ to =read-only-mode=, see [[https://github.com/abo-abo/swiper/issues/1273][#1273]].
-----
*** ivy-read
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nf-ivy-read
:END:
Add new argument =def=, see [[https://github.com/abo-abo/swiper/issues/1047][#1047]], [[https://github.com/abo-abo/swiper/issues/1049][#1049]], [[https://github.com/abo-abo/swiper/issues/1052][#1052]], [[https://github.com/abo-abo/swiper/issues/1112][#1112]].
-----
*** ivy-read-action
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nf-ivy-read-action
:END:
Allow to quit with ~ESC~ for better work with evil, see [[https://github.com/abo-abo/swiper/issues/952][#952]].
-----
*** ivy-rotate-preferred-builders
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nf-ivy-rotate-preferred-builders
:END:
Bound to ~C-o m~. Customize with =ivy-preferred-re-builders=.
See [[https://github.com/abo-abo/swiper/issues/1093][#1093]], [[https://github.com/abo-abo/swiper/issues/1094][#1094]].
-----
*** ivy-switch-buffer
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nf-ivy-switch-buffer
:END:
Compose faces better, see [[https://github.com/abo-abo/swiper/issues/992][#992]].

~M-o f~ will call =counsel-find-file= from current directory, see [[https://github.com/abo-abo/swiper/issues/1298][#1298]],
[[https://github.com/abo-abo/swiper/issues/1295][#1295]].
-----
*** ivy-truncate-lines
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nf-ivy-truncate-lines
:END:
New defcustom. See [[https://github.com/abo-abo/swiper/issues/1110][#1110]].
-----
*** ivy-use-selectable-prompt
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nf-ivy-use-selectable-prompt
:END:
When non-nil, make the prompt line selectable like a candidate.

Calling =ivy-done= or =ivy-alt-done= on a selected prompt forwards to
=ivy-immediate-done=, thus exiting with the current user input instead
of the selected candidate.

See [[https://github.com/abo-abo/swiper/issues/1059][#1059]], [[https://github.com/abo-abo/swiper/issues/1063][#1063]], [[https://github.com/abo-abo/swiper/issues/1090][#1090]].
-----
*** swiper-query-replace
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nf-swiper-query-replace
:END:
Disable read-only for the duration, see [[https://github.com/abo-abo/swiper/issues/1273][#1273]].
-----
** New Commands
:PROPERTIES:
:CUSTOM_ID: 0-10-0-new-commands
:END:
*** counsel-ack
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nc-counsel-ack
:END:
Like =counsel-ag=, but with [[https://beyondgrep.com/][ack]]. See [[https://github.com/abo-abo/swiper/issues/1075][#1075]].
-----
*** counsel-apropos
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nc-counsel-apropos
:END:
Completion for [[https://www.gnu.org/software/emacs/manual/html_node/emacs/Apropos.html][apropos]], see [[https://github.com/abo-abo/swiper/issues/1014][#1014]].
-----
*** counsel-file-register
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nc-counsel-file-register
:END:
Completion for [[https://www.gnu.org/software/emacs/manual/html_node/emacs/File-Registers.html][file registers]], see [[https://github.com/abo-abo/swiper/issues/1057][#1057]], [[https://github.com/abo-abo/swiper/issues/1066][#1066]].
-----
*** counsel-fzf
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nc-counsel-fzf
:END:
Completion for [[https://github.com/junegunn/fzf][fzf]]. See [[https://github.com/abo-abo/swiper/issues/1151][#1151]], [[https://github.com/abo-abo/swiper/issues/1263][#1263]].
-----
*** counsel-git-change-worktree
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nc-counsel-git-change-worktree
:END:
Completion for [[https://git-scm.com/docs/git-worktree][git-worktree]].
See [[https://github.com/abo-abo/swiper/issues/989][#989]], [[https://github.com/abo-abo/swiper/issues/1114][#1114]], [[https://github.com/abo-abo/swiper/issues/1115][#1115]].
-----
*** counsel-git-checkout
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nc-counsel-git-checkout
:END:
Completion for [[https://git-scm.com/docs/git-checkout][git-checkout]]. See [[https://github.com/abo-abo/swiper/issues/1187][#1187]].
-----
*** counsel-minibuffer-history
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nc-counsel-minibuffer-history
:END:
Supersedes =counsel-expression-history= and
=counsel-shell-command-history=. See [[https://github.com/abo-abo/swiper/issues/1237][#1237]].
-----
*** counsel-org-capture
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nc-counsel-org-capture
:END:
Completion for [[https://orgmode.org/manual/Capture.html][org-capture]]. See [[https://github.com/abo-abo/swiper/issues/1320][#1320]].
-----
*** counsel-org-file
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nc-counsel-org-file
:END:
Browse all attachments for the current Org file.
-----
*** counsel-org-goto
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nc-counsel-org-goto
:END:
Completion for Org headings. See [[https://github.com/abo-abo/swiper/issues/1005][#1005]], [[https://github.com/abo-abo/swiper/issues/1008][#1008]], [[https://github.com/abo-abo/swiper/issues/1011][#1011]], [[https://github.com/abo-abo/swiper/issues/1012][#1012]], [[https://github.com/abo-abo/swiper/issues/1013][#1013]].
-----
*** counsel-org-goto-all
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nc-counsel-org-goto-all
:END:
Completion for Org headings in all open buffers. See [[https://github.com/abo-abo/swiper/issues/1005][#1005]].
-----
*** counsel-switch-to-shell-buffer
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nc-counsel-switch-to-shell-buffer
:END:
Switch to a shell buffer, or create one. See [[https://github.com/abo-abo/swiper/issues/990][#990]].
-----
*** ivy-occur-delete-candidate
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nc-ivy-occur-delete-candidate
:END:
Bound to ~C-d~ in =ivy-occur-mode=. Allows a sort of a todo-list workflow.
-----
*** ivy-switch-view
:PROPERTIES:
:CUSTOM_ID: 0-10-0-nc-ivy-switch-view
:END:
Switch to one of the window views stored by =ivy-push-view=.
You can use it separately from =ivy-switch-buffer= now.
See [[https://github.com/abo-abo/swiper/issues/929][#929]], [[https://github.com/abo-abo/swiper/issues/1109][#1109]].
-----
* 0.11.0
:PROPERTIES:
:CUSTOM_ID: 0.11.0
:END:
-----
** Fixes
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fixes
:END:
*** colir-blend-face-foreground
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-colir-blend-face-foreground
:END:
Add hack for =:foreground=. Related to =ansi-color-apply=. See [[https://github.com/abo-abo/swiper/issues/1293][#1293]].
-----
*** counsel
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-counsel
:END:
Make process sentinels more robust. See [[https://github.com/abo-abo/swiper/issues/1483][#1483]].

Fix behavior on remote. See [[https://github.com/abo-abo/swiper/issues/1522][#1522]].

Extend unquote-regex-parens tests. See [[https://github.com/abo-abo/swiper/issues/1704][#1704]], [[https://github.com/abo-abo/swiper/issues/1708][#1708]], [[https://github.com/abo-abo/swiper/issues/1863][#1863]].

Use =counsel-async-split-string-re= more. See [[https://github.com/abo-abo/swiper/issues/1384][#1384]], [[https://github.com/abo-abo/swiper/issues/1778][#1778]].

Use =start-file-process= for =counsel--async-command=. See [[https://github.com/abo-abo/swiper/issues/1821][#1821]].

=counsel--async-filter= should write candidates only in the
minibuffer. See [[https://github.com/abo-abo/swiper/issues/1772][#1772]], [[https://github.com/abo-abo/swiper/issues/1837][#1837]], [[https://github.com/abo-abo/swiper/issues/1857][#1857]].

Robustify grep-like ivy-occur. See [[https://github.com/abo-abo/swiper/issues/1845][#1845]], [[https://github.com/abo-abo/swiper/issues/1800][#1800]], [[https://github.com/abo-abo/swiper/issues/1835][#1835]].
-----
*** counsel-ag
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-counsel-ag
:END:
Allow no space before "--" when specifying extra args. See [[https://github.com/abo-abo/swiper/issues/1498][#1498]].

Allow to override the minimum search term length. See [[https://github.com/abo-abo/swiper/issues/1780][#1780]].

Fix "./" issue. See [[https://github.com/abo-abo/swiper/issues/1841][#1841]].
-----
*** counsel-bookmark
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-counsel-bookmark
:END:
Specify =:history=. See [[https://github.com/abo-abo/swiper/issues/1698][#1698]].
-----
*** counsel-colors-list
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-counsel-colors-list
:END:
Improve the display of the current candidate. See [[https://github.com/abo-abo/swiper/issues/921][#921]], [[https://github.com/abo-abo/swiper/issues/1436][#1436]].

Protect against invalid input. See [[https://github.com/abo-abo/swiper/issues/1854][#1854]].
-----
*** counsel-company
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-counsel-company
:END:
Unwind with =company-abort=. See [[https://github.com/abo-abo/swiper/issues/1793][#1793]].
-----
*** counsel-describe-face
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-counsel-describe-face
:END:
Add caller. See [[https://github.com/abo-abo/swiper/issues/1619][#1619]].
-----
*** counsel-describe-function
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-counsel-describe-function
:END:
Fix erroring. See [[https://github.com/abo-abo/swiper/issues/1647][#1647]], [[https://github.com/abo-abo/swiper/issues/1649][#1649]].

Describe also unbound but documented function symbols. See [[https://github.com/abo-abo/swiper/issues/1707][#1707]].
-----
*** counsel-find-file
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-counsel-find-file
:END:
Don't treat URLs as dirs. See [[https://github.com/abo-abo/swiper/issues/1398][#1398]].

Allow use of "$" in dirs. See [[https://github.com/abo-abo/swiper/issues/1316][#1316]].

Fix for ignore-order. See [[https://github.com/abo-abo/swiper/issues/1466][#1466]].

Fix file expansion. See [[https://github.com/abo-abo/swiper/issues/1494][#1494]].

Fix =ivy-resume= not working when the current candidate was a
directory. See [[https://github.com/abo-abo/swiper/issues/1508][#1508]].

=counsel-find-file-mkdir-action= should use =ivy-text=. See [[https://github.com/abo-abo/swiper/issues/1513][#1513]].

Fix dir or file logic error. See [[https://github.com/abo-abo/swiper/issues/1103][#1103]], [[https://github.com/abo-abo/swiper/issues/1623][#1623]].

Fix inability to create a file. See [[https://github.com/abo-abo/swiper/issues/1623][#1623]].

Fix issue of minibuffer height 1. See [[https://github.com/abo-abo/swiper/issues/1667][#1667]].

Remove the change to =post-command-hook= by ESS. See [[https://github.com/abo-abo/swiper/issues/1660][#1660]].

Update minibuffer state after =counsel-find-file-delete=. See [[https://github.com/abo-abo/swiper/issues/1726][#1726]].

Fix for partial match of TRAMP method.

Fix Emacs26 regression when completing TRAMP methods. See [[https://github.com/abo-abo/swiper/issues/1733][#1733]].

Fix Emacs25/26 compat for =ivy--cd=.

Avoid TRAMP related errors in ZIP files. See [[https://github.com/abo-abo/swiper/issues/1797][#1797]].
-----
*** counsel-find-library
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-counsel-find-library
:END:
Check if dirs in =load-path= exist. See [[https://github.com/abo-abo/swiper/issues/1720][#1720]].
-----
*** counsel-fzf
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-counsel-fzf
:END:
Add quotes to =counsel-fzf-cmd=. See [[https://github.com/abo-abo/swiper/issues/1544][#1544]].

Remove 2nd prompt colon. See [[https://github.com/abo-abo/swiper/issues/1768][#1768]].
-----
*** counsel-git-grep
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-counsel-git-grep
:END:
Fix conflicting directories in two ivy-occur buffers. See [[https://github.com/abo-abo/swiper/issues/1392][#1392]].

Run count in base directory. See [[https://github.com/abo-abo/swiper/issues/1402][#1402]].

Rely on =du -s= for repo size. See [[https://github.com/abo-abo/swiper/issues/1402][#1402]].

Ignore =du= errors. See [[https://github.com/abo-abo/swiper/issues/1502][#1502]].

Run =du= only on =.git=.

Call =du= directly. See [[https://github.com/abo-abo/swiper/issues/1502][#1502]], [[https://github.com/abo-abo/swiper/issues/1827][#1827]].
-----
*** counsel-grep
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-counsel-grep
:END:
Reject file-less buffers. See [[https://github.com/abo-abo/swiper/issues/1343][#1343]].

Don't pass too long lines as =:preselect=. See [[https://github.com/abo-abo/swiper/issues/1644][#1644]].

Obey current matcher. See [[https://github.com/abo-abo/swiper/issues/1801][#1801]].
-----
*** counsel-list-processes
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-counsel-list-processes
:END:
Don't mess up the current buffer with a header line.
-----
*** counsel-locate
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-counsel-locate
:END:
Fix for es.exe. Fixes [[https://github.com/abo-abo/swiper/issues/1633][#1633]].

Fix =xdg-open= on Ubuntu. See [[https://github.com/abo-abo/swiper/issues/863][#863]], [[https://github.com/abo-abo/swiper/issues/1401][#1401]], [[https://github.com/abo-abo/swiper/issues/1759][#1759]].

Simplify =xdg-open= call. See [[https://github.com/abo-abo/swiper/issues/1537][#1537]], [[https://github.com/abo-abo/swiper/issues/1759][#1759]], [[https://github.com/abo-abo/swiper/issues/1760][#1760]].
-----
*** counsel-locate-action-extern
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-counsel-locate-action-extern
:END:
Use =start-process-shell-command=. See [[https://github.com/abo-abo/swiper/issues/1401][#1401]].
-----
*** counsel-minibuffer-history
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-counsel-minibuffer-history
:END:
Add =delete-dups=. See [[https://github.com/abo-abo/swiper/issues/1358][#1358]].
-----
*** counsel-M-x
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-counsel-m-x
:END:
Prefer "<f2>" over "C-x 6". See [[https://github.com/abo-abo/swiper/issues/1534][#1534]].

Add =counsel-key-binding= face. See [[https://github.com/abo-abo/swiper/issues/1548][#1548]].
-----
*** counsel-org-agenda-headlines
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-counsel-org-agenda-headlines
:END:
Require org. See [[https://github.com/abo-abo/swiper/issues/1642][#1642]].
-----
*** counsel-org-capture
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-counsel-org-capture
:END:
Don't overlook templates contexts. See [[https://github.com/abo-abo/swiper/issues/1669][#1669]].
-----
*** counsel-org-files
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-counsel-org-files
:END:
Support =org-attach-directory= variable. See [[https://github.com/abo-abo/swiper/issues/1340][#1340]].

Use =org-attach= API. See [[https://github.com/abo-abo/swiper/issues/1345][#1345]].
-----
*** counsel-org-goto
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-counsel-org-goto
:END:
Increase org-goto/org-agenda-headlines UI consistency. See [[https://github.com/abo-abo/swiper/issues/1324][#1324]].

Support older Org. See [[https://github.com/abo-abo/swiper/issues/1422][#1422]], 1431.
-----
*** counsel-org-tag
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-counsel-org-tag
:END:
Fix for Org 9. See [[https://github.com/abo-abo/swiper/issues/1654][#1654]], [[https://github.com/abo-abo/swiper/issues/1656][#1656]], [[https://github.com/abo-abo/swiper/issues/1896][#1896]].

No need to bind =org-setting-tags=. See [[https://github.com/abo-abo/swiper/issues/1656][#1656]].
-----
*** counsel-outline
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-counsel-outline
:END:
Only look for outline regexp at bol. See [[https://github.com/abo-abo/swiper/issues/1681][#1681]].
-----
*** counsel-rg
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-counsel-rg
:END:
Store command persistently. See [[https://github.com/abo-abo/swiper/issues/1474][#1474]].
-----
*** counsel-switch-to-shell-buffer
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-counsel-switch-to-shell-buffer
:END:
Various improvements. See [[https://github.com/abo-abo/swiper/issues/1570][#1570]].
-----
*** counsel-unicode-char
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-counsel-unicode-char
:END:
Optimize. See [[https://github.com/abo-abo/swiper/issues/1704][#1704]].
-----
*** counsel-yank-pop
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-counsel-yank-pop
:END:
Liken to =yank-pop=. Respects =kill-ring-yank-pointer=. See [[https://github.com/abo-abo/swiper/issues/1190][#1190]], [[https://github.com/abo-abo/swiper/issues/1356][#1356]].

Interoperate better with =kill-ring=. See [[https://github.com/abo-abo/swiper/issues/1133][#1133]], [[https://github.com/abo-abo/swiper/issues/1360][#1360]].

Save =window-start= to avoid recentering of the buffer. See [[https://github.com/abo-abo/swiper/issues/1370][#1370]].

Make position more robust. See [[https://github.com/abo-abo/swiper/issues/1420][#1420]].

Make it work in read-only buffers. See [[https://github.com/abo-abo/swiper/issues/1523][#1523]].

Work with =interprogram-paste-function=. See [[https://github.com/abo-abo/swiper/issues/1523][#1523]].
-----
*** docs
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-docs
:END:
Fixed typos. See [[https://github.com/abo-abo/swiper/issues/1405][#1405]], [[https://github.com/abo-abo/swiper/issues/1412][#1412]], [[https://github.com/abo-abo/swiper/issues/1448][#1448]], [[https://github.com/abo-abo/swiper/issues/1477][#1477]], [[https://github.com/abo-abo/swiper/issues/1483][#1483]], [[https://github.com/abo-abo/swiper/issues/1519][#1519]], [[https://github.com/abo-abo/swiper/issues/1521][#1521]],
[[https://github.com/abo-abo/swiper/issues/1535][#1535]], [[https://github.com/abo-abo/swiper/issues/1539][#1539]], [[https://github.com/abo-abo/swiper/issues/1540][#1540]], [[https://github.com/abo-abo/swiper/issues/1575][#1575]], [[https://github.com/abo-abo/swiper/issues/1602][#1602]], [[https://github.com/abo-abo/swiper/issues/1612][#1612]], [[https://github.com/abo-abo/swiper/issues/1620][#1620]], [[https://github.com/abo-abo/swiper/issues/1624][#1624]], [[https://github.com/abo-abo/swiper/issues/1625][#1625]], [[https://github.com/abo-abo/swiper/issues/1627][#1627]],
[[https://github.com/abo-abo/swiper/issues/1629][#1629]], [[https://github.com/abo-abo/swiper/issues/1630][#1630]], [[https://github.com/abo-abo/swiper/issues/1672][#1672]], [[https://github.com/abo-abo/swiper/issues/1675][#1675]], [[https://github.com/abo-abo/swiper/issues/1677][#1677]], [[https://github.com/abo-abo/swiper/issues/1678][#1678]], [[https://github.com/abo-abo/swiper/issues/1682][#1682]], [[https://github.com/abo-abo/swiper/issues/1684][#1684]], [[https://github.com/abo-abo/swiper/issues/1700][#1700]], [[https://github.com/abo-abo/swiper/issues/1710][#1710]],
[[https://github.com/abo-abo/swiper/issues/1715][#1715]], [[https://github.com/abo-abo/swiper/issues/1717][#1717]], [[https://github.com/abo-abo/swiper/issues/1738][#1738]], [[https://github.com/abo-abo/swiper/issues/1804][#1804]], [[https://github.com/abo-abo/swiper/issues/1816][#1816]], 1794, [[https://github.com/abo-abo/swiper/issues/1817][#1817]], [[https://github.com/abo-abo/swiper/issues/1828][#1828]], [[https://github.com/abo-abo/swiper/issues/1849][#1849]].
-----
*** ivy
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-ivy
:END:
Disable =ivy-auto-select-single-candidate= for user@host entry.
See [[https://github.com/abo-abo/swiper/issues/1326][#1326]], [[https://github.com/abo-abo/swiper/issues/1338][#1338]].

Handle =ivy-state-buffer= getting killed. See [[https://github.com/abo-abo/swiper/issues/572][#572]].

Correct highlighting for negation, e.g. =counsel-M-x= "vi mo!ew".
See [[https://github.com/abo-abo/swiper/issues/1418][#1418]].

Fold case during index recomputation. See [[https://github.com/abo-abo/swiper/issues/1447][#1447]], [[https://github.com/abo-abo/swiper/issues/1449][#1449]].

Simplify string splitting logic. See [[https://github.com/abo-abo/swiper/issues/1453][#1453]].

Fix =:preselect= getting deselected with new input. When there's new
input, and it still matches =:preselect=, the current candidate should
not change.

Handle fallback in =ivy--sort-function=. See [[https://github.com/abo-abo/swiper/issues/1561][#1561]], [[https://github.com/abo-abo/swiper/issues/1565][#1565]], [[https://github.com/abo-abo/swiper/issues/1567][#1567]].

=ivy--sort-function= should handle anonymous fns. See [[https://github.com/abo-abo/swiper/issues/1574][#1574]].

Use =ivy-sort-max-size= for collection functions. See [[https://github.com/abo-abo/swiper/issues/1592][#1592]].

Use =copy-sequence= when sorting to avoid corrupting external data.
See [[https://github.com/abo-abo/swiper/issues/1617][#1617]].

Default =:caller= to =this-command=. See [[https://github.com/abo-abo/swiper/issues/1297][#1297]], [[https://github.com/abo-abo/swiper/issues/1606][#1606]], [[https://github.com/abo-abo/swiper/issues/1619][#1619]], [[https://github.com/abo-abo/swiper/issues/1621][#1621]].

=ivy-call= should restore previous buffer. See [[https://github.com/abo-abo/swiper/issues/1607][#1607]].

=ivy--insert-prompt= should use =ivy-add-face-text-property= for
compat. See [[https://github.com/abo-abo/swiper/issues/1634][#1634]].

Use compat shim for =add-face-text-property=. See [[https://github.com/abo-abo/swiper/issues/1635][#1635]].

Move =colir= require to top-level to improve performance. See [[https://github.com/abo-abo/swiper/issues/1571][#1571]].

Fix =:predicate= not getting applied. See [[https://github.com/abo-abo/swiper/issues/1158][#1158]].

Drop preselected candidate after input. See [[https://github.com/abo-abo/swiper/issues/1563][#1563]], [[https://github.com/abo-abo/swiper/issues/1573][#1573]].

Fix =ivy-left-pad= when there's horizontal scroll.

Fix =ivy-state-collection= alist idx not in sync. See [[https://github.com/abo-abo/swiper/issues/1680][#1680]].

Support :annotation-function of completion-extra-properties.
See [[https://github.com/abo-abo/swiper/issues/1489][#1489]].

Fix for alists that require sorting. See [[https://github.com/abo-abo/swiper/issues/1687][#1687]].

Fontify completion annotations. See [[https://github.com/abo-abo/swiper/issues/1489][#1489]], [[https://github.com/abo-abo/swiper/issues/1702][#1702]].

Filter sorted alist. See [[https://github.com/abo-abo/swiper/issues/1705][#1705]].

Avoid modifying alist collection. See [[https://github.com/abo-abo/swiper/issues/1706][#1706]].

Use =string-match-p= where applicable. See [[https://github.com/abo-abo/swiper/issues/1517][#1517]].

Strip text properties from returned alist candidate. See [[https://github.com/abo-abo/swiper/issues/1706][#1706]], [[https://github.com/abo-abo/swiper/issues/1724][#1724]].

Don't trigger =ivy--magic-file-slash= from ~TAB~. See [[https://github.com/abo-abo/swiper/issues/1716][#1716]].

Fix for terminals. See [[https://github.com/abo-abo/swiper/issues/199][#199]], [[https://github.com/abo-abo/swiper/issues/1528][#1528]], [[https://github.com/abo-abo/swiper/issues/1728][#1728]].

Fix overlay interacting with org-mode src blocks. See [[https://github.com/abo-abo/swiper/issues/1732][#1732]].

Don't restore buffer after action. See [[https://github.com/abo-abo/swiper/issues/1766][#1766]], [[https://github.com/abo-abo/swiper/issues/1767][#1767]].

Remove webjump =completing-read= handler. See [[https://github.com/abo-abo/swiper/issues/1802][#1802]], [[https://github.com/abo-abo/swiper/issues/1049][#1049]].

Use =ivy-truncate-lines= also for non-graphical Emacs. See [[https://github.com/abo-abo/swiper/issues/1809][#1809]].

For non-graphical Emacs set resize-mini-windows to 'grow-only.
See [[https://github.com/abo-abo/swiper/issues/1809][#1809]].

Fix minibuffer truncation and resizing. See [[https://github.com/abo-abo/swiper/issues/1811][#1811]].

Work around void =Info-complete-menu-buffer=. See [[https://github.com/abo-abo/swiper/issues/1814][#1814]].

Handle Windows path separator for =ivy-occur=. See [[https://github.com/abo-abo/swiper/issues/1817][#1817]].

Don't switch to a killed buffer for =ivy-occur-press=.
See [[https://github.com/abo-abo/swiper/issues/1834][#1834]], [[https://github.com/abo-abo/swiper/issues/1842][#1842]].

Improve performance =ivy--select-occur-buffer= by avoiding
=pop-to-buffer=.

Use =all-completions= and add test. See [[https://github.com/abo-abo/swiper/issues/1832][#1832]].

Do not let ivy virtual buffer faces creep into the recentf file. See [[https://github.com/abo-abo/swiper/issues/1898][#1898]].
-----
*** ivy-completing-read
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-ivy-completing-read
:END:
Add compat for non-string defaults. See [[https://github.com/abo-abo/swiper/issues/1526][#1526]], [[https://github.com/abo-abo/swiper/issues/1810][#1810]].

Simplify. See [[https://github.com/abo-abo/swiper/issues/1606][#1606]].
-----
*** ivy-completion-in-region
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-ivy-completion-in-region
:END:
Expand =(s-c-t-s)= appropriately. See [[https://github.com/abo-abo/swiper/issues/1361][#1361]].

Allow sorting. See [[https://github.com/abo-abo/swiper/issues/1432][#1432]].

Don't apply predicate twice. See [[https://github.com/abo-abo/swiper/issues/1648][#1648]].
-----
*** ivy--kill-buffer-action
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-ivy--kill-buffer-action
:END:
Remove virtual buffers from =recentf-list=. See [[https://github.com/abo-abo/swiper/issues/1888][#1888]].
-----*** ivy--magic-file-slash
Misc fixes. See [[https://github.com/abo-abo/swiper/issues/1831][#1831]].
-----
*** ivy--occur-insert-lines
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-ivy--occur-insert-lines
:END:
Fix incorrect regexp. See [[https://github.com/abo-abo/swiper/issues/1846][#1846]].

Speed up regex from 5s to 0.01s for 4000 cands.
-----
*** ivy-occur-press
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-ivy-occur-press
:END:
Don't hard-code =display-buffer=. See [[https://github.com/abo-abo/swiper/issues/1838][#1838]], [[https://github.com/abo-abo/swiper/issues/1865][#1865]].
-----
*** ivy-overlay-show-after
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-ivy-overlay-show-after
:END:
Don't inherit existing face.
See [[https://github.com/abo-abo/swiper/issues/1488][#1488]], [[https://github.com/abo-abo/swiper/issues/1547][#1547]], [[https://github.com/abo-abo/swiper/issues/1016][#1016]], 1520, [[https://github.com/abo-abo/swiper/issues/1808][#1808]], [[https://github.com/abo-abo/swiper/issues/1825][#1825]].
-----
*** ivy-partial
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-ivy-partial
:END:
Can change current dir when completing files. See [[https://github.com/abo-abo/swiper/issues/86][#86]].
-----
*** ivy--regex-fuzzy
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-ivy--regex-fuzzy
:END:
Regexp-quote chars to improve performance for searches like
".env.foo". See [[https://github.com/abo-abo/swiper/issues/1435][#1435]].

Generalize. Fix =ivy-occur= highlighting. See [[https://github.com/abo-abo/swiper/issues/1795][#1795]].

Optimize regex "(a).*?(b)" -> "(a)[^b]*(b)". See [[https://github.com/abo-abo/swiper/issues/848][#848]].
-----
*** ivy--regex-ignore-order
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-ivy--regex-ignore-order
:END:
Improve handling of invalid regexes. See [[https://github.com/abo-abo/swiper/issues/1545][#1545]].
-----
*** ivy--regex-plus
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-ivy--regex-plus
:END:
Update and add test for "add path!" input. See [[https://github.com/abo-abo/swiper/issues/1418][#1418]].

Search "defun \([^ ]+\)" now works.
-----
*** ivy-rotate-preferred-builders
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-ivy-rotate-preferred-builders
:END:
Update in the documentation. See [[https://github.com/abo-abo/swiper/issues/1376][#1376]].
-----
*** ivy-string<
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-ivy-string<
:END:
Handle heterogeneous args. See [[https://github.com/abo-abo/swiper/issues/1743][#1743]], [[https://github.com/abo-abo/swiper/issues/1744][#1744]].
-----
*** ivy-thing-at-point
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-ivy-thing-at-point
:END:
Prevent error when =url-handler-mode= is on. See [[https://github.com/abo-abo/swiper/issues/1446][#1446]].

Strip text properties. See [[https://github.com/abo-abo/swiper/issues/1594][#1594]].
-----
*** swiper
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-swiper
:END:
Fix history modified on each char. Fix history duplicate. See [[https://github.com/abo-abo/swiper/issues/1391][#1391]].

Don't replace tabs with spaces (prevents =wgrep= from working
correctly). See [[https://github.com/abo-abo/swiper/issues/1468][#1468]].

Allow =scroll-other-window= use. See [[https://github.com/abo-abo/swiper/issues/1504][#1504]].

Replace obsolete =isearch-lazy-highlight-face=. See [[https://github.com/abo-abo/swiper/issues/1591][#1591]].

Highlight multiple regexps correctly.
See [[https://github.com/abo-abo/swiper/issues/654][#654]], [[https://github.com/abo-abo/swiper/issues/1550][#1550]], [[https://github.com/abo-abo/swiper/issues/1551][#1551]], [[https://github.com/abo-abo/swiper/issues/1587][#1587]], [[https://github.com/abo-abo/swiper/issues/1600][#1600]].

Fix when re-builder returns list. See [[https://github.com/abo-abo/swiper/issues/1692][#1692]].

Add =inhibit-field-text-motion=. See [[https://github.com/abo-abo/swiper/issues/1713][#1713]].

Fix incorrect jump to first match. See [[https://github.com/abo-abo/swiper/issues/1791][#1791]].
-----
*** swiper-avy
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-swiper-avy
:END:
Fix when there's scroll. See [[https://github.com/abo-abo/swiper/issues/1541][#1541]].

Fix off-by-one. See [[https://github.com/abo-abo/swiper/issues/1775][#1775]].

Fix for =ivy-format-function-arrow=. See [[https://github.com/abo-abo/swiper/issues/1885][#1885]].
-----
*** swiper-multi
:PROPERTIES:
:CUSTOM_ID: 0-11-0-fx-swiper-multi
:END:
Add text property =buffer= to candidates. See [[https://github.com/abo-abo/swiper/issues/1491][#1491]], [[https://github.com/abo-abo/swiper/issues/1492][#1492]].
-----

** New Features
:PROPERTIES:
:CUSTOM_ID: 0-11-0-new-features
:END:
*** counsel
:PROPERTIES:
:CUSTOM_ID: 0-11-0-nf-counsel
:END:
New var =counsel-more-chars-alist= to customize per-function the minimum
amount of chars. See [[https://github.com/abo-abo/swiper/issues/1663][#1663]].

New face =counsel-variable-documentation=, =counsel-application-name=,
=counsel-outline-1=, ..., =counsel-outline-8=, =counsel-outline-default=.
See [[https://github.com/abo-abo/swiper/issues/1847][#1847]].
-----
*** counsel-bookmark
:PROPERTIES:
:CUSTOM_ID: 0-11-0-nf-counsel-bookmark
:END:
Add two actions. See [[https://github.com/abo-abo/swiper/issues/948][#948]], [[https://github.com/abo-abo/swiper/issues/1385][#1385]].
-----
*** counsel-dired-jump
:PROPERTIES:
:CUSTOM_ID: 0-11-0-nf-counsel-dired-jump
:END:
New var =counsel-dired-jump-args=. See [[https://github.com/abo-abo/swiper/issues/1889][#1889]].
-----*** counsel-find-file
New var =counsel-find-file-occur-cmd=. Use it to customize what ~C-c C-o~
calls. See [[https://github.com/abo-abo/swiper/issues/1299][#1299]], [[https://github.com/abo-abo/swiper/issues/1351][#1351]], [[https://github.com/abo-abo/swiper/issues/1441][#1441]].

New var =counsel-preselect-current-file=. When non-nil, preselect the
current file in the list of candidates. See [[https://github.com/abo-abo/swiper/issues/1363][#1363]].

Bind ~C-M-y~ to =counsel-yank-directory=. Useful when you want to edit
part of the directory name. See [[https://github.com/abo-abo/swiper/issues/1333][#1333]].

Bind ~M-o d~ to new action =counsel-find-file-mkdir-action=. See [[https://github.com/abo-abo/swiper/issues/1471][#1471]].

Bind ~M-o f~ to =find-file-other-frame=. See [[https://github.com/abo-abo/swiper/issues/1510][#1510]].

Bind ~M-o k~ to =counsel-find-file-delete=. See [[https://github.com/abo-abo/swiper/issues/1671][#1671]].

Bind ~M-o m~ to =counsel-find-file-move=. See [[https://github.com/abo-abo/swiper/issues/1671][#1671]].

=counsel-find-file-occur-use-find= defaults to t on Linux. See [[https://github.com/abo-abo/swiper/issues/1686][#1686]].

Make =counsel-find-file-delete= ask for confirmation. See [[https://github.com/abo-abo/swiper/issues/1774][#1774]].

Make =counsel-find-file-delete= clean up buffers. See [[https://github.com/abo-abo/swiper/issues/1779][#1779]].
-----
*** counsel-find-file-jump
:PROPERTIES:
:CUSTOM_ID: 0-11-0-nf-counsel-find-file-jump
:END:
New var =counsel-file-jump-args=. See [[https://github.com/abo-abo/swiper/issues/1889][#1889]].
-----
*** counsel-fzf
:PROPERTIES:
:CUSTOM_ID: 0-11-0-nf-counsel-fzf
:END:
Support =universal-argument=. See [[https://github.com/abo-abo/swiper/issues/1281][#1281]], [[https://github.com/abo-abo/swiper/issues/1279][#1279]].
-----
*** counsel-git-grep
:PROPERTIES:
:CUSTOM_ID: 0-11-0-nf-counsel-git-grep
:END:
Also works on remote. See [[https://github.com/abo-abo/swiper/issues/1463][#1463]].

New var =counsel--git-grep-count-threshold=. See [[https://github.com/abo-abo/swiper/issues/1470][#1470]].

Add "-I" to =counsel-git-grep-cmd-default= to ignore binaries. Files are
marked as binary in =.gitattributes=.

Calculate the repo size correctly for submodules. See [[https://github.com/abo-abo/swiper/issues/1558][#1558]].
-----
*** counsel-grep
:PROPERTIES:
:CUSTOM_ID: 0-11-0-nf-counsel-grep
:END:
New var =counsel-grep-map=. Bind =swiper-avy= there. See [[https://github.com/abo-abo/swiper/issues/1711][#1711]].
-----
*** counsel-imenu
:PROPERTIES:
:CUSTOM_ID: 0-11-0-nf-counsel-imenu
:END:
Show functions as "Functions: func". See [[https://github.com/abo-abo/swiper/issues/775][#775]].
-----
*** counsel-linux-app
:PROPERTIES:
:CUSTOM_ID: 0-11-0-nf-counsel-linux-app
:END:
Add =~/.local/share/applications/=. See [[https://github.com/abo-abo/swiper/issues/1390][#1390]].

Add guixsd's application directory. See [[https://github.com/abo-abo/swiper/issues/1476][#1476]].

Call =gtk-launch= asynchronously. See [[https://github.com/abo-abo/swiper/issues/1537][#1537]].

Add dir for flatpack. See [[https://github.com/abo-abo/swiper/issues/1754][#1754]].

Ignore non-readable desktop files. See [[https://github.com/abo-abo/swiper/issues/1757][#1757]].

Show also hidden desktop files with prefix arg.

Add XDG defaults. See [[https://github.com/abo-abo/swiper/issues/1851][#1851]].

Truncate Exec to 45 chars.
-----
*** counsel-locate
:PROPERTIES:
:CUSTOM_ID: 0-11-0-nf-counsel-locate
:END:
Bind ~M-o r~ to =counsel-find-file-as-root=. See [[https://github.com/abo-abo/swiper/issues/1676][#1676]].

Works over TRAMP. See [[https://github.com/abo-abo/swiper/issues/1735][#1735]].
-----
*** counsel-mode
:PROPERTIES:
:CUSTOM_ID: 0-11-0-nf-counsel-mode
:END:
Add =counsel-bookmark=. See [[https://github.com/abo-abo/swiper/issues/1381][#1381]].

Add more info to the docs. See [[https://github.com/abo-abo/swiper/issues/1400][#1400]].

Add =counsel-apropos=. See [[https://github.com/abo-abo/swiper/issues/1582][#1582]].

Display local keymap in mode doc. See [[https://github.com/abo-abo/swiper/issues/1718][#1718]].
-----
*** counsel-M-x
:PROPERTIES:
:CUSTOM_ID: 0-11-0-nf-counsel-m-x
:END:
Support =amx= in addition to =smex=. See [[https://github.com/abo-abo/swiper/issues/1557][#1557]], [[https://github.com/abo-abo/swiper/issues/1585][#1585]], [[https://github.com/abo-abo/swiper/issues/1613][#1613]], [[https://github.com/abo-abo/swiper/issues/1615][#1615]].

Filter obsolete commands. See [[https://github.com/abo-abo/swiper/issues/1843][#1843]], [[https://github.com/abo-abo/swiper/issues/1844][#1844]].
-----
*** counsel-rg
:PROPERTIES:
:CUSTOM_ID: 0-11-0-nf-counsel-rg
:END:
Read extra args when =current-prefix-arg= is given. See [[https://github.com/abo-abo/swiper/issues/851][#851]].

Use smart case "-S" in =counsel-rg-base-command=. See [[https://github.com/abo-abo/swiper/issues/1393][#1393]].

To look for e.g. "map}", input "map\}". See [[https://github.com/abo-abo/swiper/issues/1566][#1566]].

Interactively specify switches.
Example in this repo: "-g*.el -- require", "-g*.org -- require",
"-g!*.el -- require". See [[https://github.com/abo-abo/swiper/issues/1408][#1408]], [[https://github.com/abo-abo/swiper/issues/1512][#1512]], [[https://github.com/abo-abo/swiper/issues/1688][#1688]], [[https://github.com/abo-abo/swiper/issues/1559][#1559]].
-----
*** counsel-rhythmbox
:PROPERTIES:
:CUSTOM_ID: 0-11-0-nf-counsel-rhythmbox
:END:
Refresh list with prefix arg.

Re-launch rhythmbox if not playing.

Bind ~M-o s~ to =counsel-rhythmbox-toggle-shuffle=.
-----
*** counsel-semantic
:PROPERTIES:
:CUSTOM_ID: 0-11-0-nf-counsel-semantic
:END:
Add pretty formatting, expand types recursively. See [[https://github.com/abo-abo/swiper/issues/702][#702]].
-----
*** counsel-set-variable
:PROPERTIES:
:CUSTOM_ID: 0-11-0-nf-counsel-set-variable
:END:
Can also be used non-interactively. See [[https://github.com/abo-abo/swiper/issues/1409][#1409]].

Show docstring if =lv= is available. See [[https://github.com/abo-abo/swiper/issues/1595][#1595]].

Add prefix arg behavior: filter out vars without custom-type
properties. See [[https://github.com/abo-abo/swiper/issues/1643][#1643]].
-----
*** counsel-yank-pop
:PROPERTIES:
:CUSTOM_ID: 0-11-0-nf-counsel-yank-pop
:END:
New var =counsel-yank-pop-height=: configure =ivy-height=. See [[https://github.com/abo-abo/swiper/issues/1365][#1365]].

New var =counsel-yank-pop-filter=: All elements of =kill-ring= for which
this function returns nil will be permanently deleted from =kill-ring=
before completion. See [[https://github.com/abo-abo/swiper/issues/1356][#1356]], [[https://github.com/abo-abo/swiper/issues/1367][#1367]].

New var =counsel-yank-pop-preselect-last=: customize whether preselect
the last kill by default. See [[https://github.com/abo-abo/swiper/issues/1371][#1371]], [[https://github.com/abo-abo/swiper/issues/1373][#1373]], [[https://github.com/abo-abo/swiper/issues/1374][#1374]].

New var =counsel-yank-pop-after-point=. See [[https://github.com/abo-abo/swiper/issues/884][#884]], [[https://github.com/abo-abo/swiper/issues/1761][#1761]], [[https://github.com/abo-abo/swiper/issues/1762][#1762]].

New face =ivy-separator=. See [[https://github.com/abo-abo/swiper/issues/1815][#1815]].
-----
*** ivy
:PROPERTIES:
:CUSTOM_ID: 0-11-0-nf-ivy
:END:
Interpret mouse events in the minibuffer managed by ivy.  You can now
scroll with the mouse wheel and click to select a candidate.
See [[https://github.com/abo-abo/swiper/issues/1278][#1278]], [[https://github.com/abo-abo/swiper/issues/1279][#1279]].

Support multi-character action keys. See [[https://github.com/abo-abo/swiper/issues/1394][#1394]].

=ivy-display-functions-alist= can use t key as fallback. See [[https://github.com/abo-abo/swiper/issues/1443][#1443]].

New var =ivy-display-functions-props= useful when customizing display
functions.
See [[https://github.com/abo-abo/swiper/issues/1443][#1443]].

New cmd =ivy-kill-whole-line= overrides =kill-whole-line= in the
minibuffer. See [[https://github.com/abo-abo/swiper/issues/1456][#1456]].

New option for =ivy-virtual-abbreviate=: ='abbreviate=. See [[https://github.com/abo-abo/swiper/issues/1460][#1460]].

New var =ivy-height-alist=. Customize =ivy-height= per-command. See [[https://github.com/abo-abo/swiper/issues/1531][#1531]], [[https://github.com/abo-abo/swiper/issues/1722][#1722]].

New var =ivy-completing-read-dynamic-collection=. See [[https://github.com/abo-abo/swiper/issues/1524][#1524]].

New cmd =ivy-yank-char= similar to =isearch-yank-char=. See [[https://github.com/abo-abo/swiper/issues/1588][#1588]].

New cmd =ivy-yank-symbol=. See [[https://github.com/abo-abo/swiper/issues/1604][#1604]].

Bind ~<right>~ to =ivy-forward-char=. See [[https://github.com/abo-abo/swiper/issues/1622][#1622]].

New var =ivy-highlight-grep-commands= that lists counsel grep-like
commands. See [[https://github.com/abo-abo/swiper/issues/1661][#1661]].

New face =ivy-modified-outside-buffer=. See [[https://github.com/abo-abo/swiper/issues/1742][#1742]], [[https://github.com/abo-abo/swiper/issues/1745][#1745]].

Propertize matches in =ivy-occur= buffers. See [[https://github.com/abo-abo/swiper/issues/1795][#1795]].

=ivy-immediate-done= with empty input will return the default.
See [[https://github.com/abo-abo/swiper/issues/1170][#1170]], [[https://github.com/abo-abo/swiper/issues/1719][#1719]].

=ivy-read= argument =prompt= is no longer a format string. Use only
=ivy-count-format= to add/remove candidate count. See [[https://github.com/abo-abo/swiper/issues/1350][#1350]].

New face =ivy-grep-info= and =ivy-grep-line-number=. See [[https://github.com/abo-abo/swiper/issues/1839][#1839]], [[https://github.com/abo-abo/swiper/issues/1840][#1840]].

New face =ivy-org=, =ivy-completions-annotations=. See [[https://github.com/abo-abo/swiper/issues/1847][#1847]].

Highlight yanked word. New face =ivy-yanked-word=.
See [[https://github.com/abo-abo/swiper/issues/1581][#1581]], [[https://github.com/abo-abo/swiper/issues/1850][#1850]], [[https://github.com/abo-abo/swiper/issues/1856][#1856]], [[https://github.com/abo-abo/swiper/issues/1859][#1859]], [[https://github.com/abo-abo/swiper/issues/1861][#1861]].

New var =ivy-pulse-delay=. See [[https://github.com/abo-abo/swiper/issues/1859][#1859]].

=ivy-initial-inputs-alist= entries can be functions. See [[https://github.com/abo-abo/swiper/issues/1867][#1867]], [[https://github.com/abo-abo/swiper/issues/1868][#1868]].

New var =ivy-hooks-alist=. See [[https://github.com/abo-abo/swiper/issues/1899][#1899]].
-----
*** ivy-occur-grep-mode
:PROPERTIES:
:CUSTOM_ID: 0-11-0-nf-ivy-occur-grep-mode
:END:
Press ~w~ for =ivy-wgrep-change-to-wgrep-mode=. See [[https://github.com/abo-abo/swiper/issues/1341][#1341]].
-----
*** ivy-occur-next-line
:PROPERTIES:
:CUSTOM_ID: 0-11-0-nf-ivy-occur-next-line
:END:
Useful also in the original buffer.

Jump to first candidate when in header.
-----
*** ivy-preferred-re-builders
:PROPERTIES:
:CUSTOM_ID: 0-11-0-nf-ivy-preferred-re-builders
:END:
Renamed from =ivy-preferred-re-builders=.
-----
*** ivy-push-view
:PROPERTIES:
:CUSTOM_ID: 0-11-0-nf-ivy-push-view
:END:
Overwrite view with prefix arg. See [[https://github.com/abo-abo/swiper/issues/1737][#1737]].
-----
*** ivy-switch-buffer
:PROPERTIES:
:CUSTOM_ID: 0-11-0-nf-ivy-switch-buffer
:END:
Extract all actions to defuns so that they can be advised or
reused. See [[https://github.com/abo-abo/swiper/issues/1490][#1490]].
-----
*** swiper
:PROPERTIES:
:CUSTOM_ID: 0-11-0-nf-swiper
:END:
Add test to history even for ~C-g~. See [[https://github.com/abo-abo/swiper/issues/1305][#1305]].

New var =swiper-stay-on-quit=. When non-nil don't go back to
search start on abort. See [[https://github.com/abo-abo/swiper/issues/1319][#1319]].

Add integration with evil s expressions. See [[https://github.com/abo-abo/swiper/issues/1406][#1406]], [[https://github.com/abo-abo/swiper/issues/1452][#1452]].

Obey =dired-isearch-filenames=. See [[https://github.com/abo-abo/swiper/issues/1415][#1415]].

Better negation highlighting. For example, in ivy.el search for "ivy
len!--". See [[https://github.com/abo-abo/swiper/issues/1418][#1418]].
-----
*** swiper-all
:PROPERTIES:
:CUSTOM_ID: 0-11-0-nf-swiper-all
:END:
Add optional =initial-input= arg. See [[https://github.com/abo-abo/swiper/issues/1375][#1375]].
-----
*** swiper-font-lock-exclude
:PROPERTIES:
:CUSTOM_ID: 0-11-0-nf-swiper-font-lock-exclude
:END:
Add =eshell-mode=, =helpful-mode=. See [[https://github.com/abo-abo/swiper/issues/1416][#1416]].

Add =matrix-client-mode=. See [[https://github.com/abo-abo/swiper/issues/1886][#1886]].

Add =deadgrep-mode=. See [[https://github.com/abo-abo/swiper/issues/1902][#1902]].
-----
*** swiper-occur
:PROPERTIES:
:CUSTOM_ID: 0-11-0-nf-swiper-occur
:END:
Allow to capture groups from input.
Example: "defvar \([a-z-]+\)" ~C-c C-o~.
-----

** New Commands
:PROPERTIES:
:CUSTOM_ID: 0-11-0-new-commands
:END:
-----
*** counsel-bookmarked-directory
:PROPERTIES:
:CUSTOM_ID: 0-11-0-nc-counsel-bookmarked-directory
:END:
Completion for bookmarked directories. See [[https://github.com/abo-abo/swiper/issues/1657][#1657]].
-----
*** counsel-down-directory
:PROPERTIES:
:CUSTOM_ID: 0-11-0-nc-counsel-down-directory
:END:
Descend into a directory for =counsel-find-file=. See [[https://github.com/abo-abo/swiper/issues/1891][#1891]].
-----

*** counsel-evil-registers
:PROPERTIES:
:CUSTOM_ID: 0-11-0-nc-counsel-evil-registers
:END:
Ivy replacement for =evil-show-registers=. See [[https://github.com/abo-abo/swiper/issues/1368][#1368]].
-----
*** counsel-ibuffer
:PROPERTIES:
:CUSTOM_ID: 0-11-0-nc-counsel-ibuffer
:END:
Completion for =ibuffer=. See [[https://github.com/abo-abo/swiper/issues/1467][#1467]], [[https://github.com/abo-abo/swiper/issues/1569][#1569]].
-----
*** counsel-org-entity
:PROPERTIES:
:CUSTOM_ID: 0-11-0-nc-counsel-org-entity
:END:
Insert an Org entity using ivy. See [[https://github.com/abo-abo/swiper/issues/1459][#1459]].
-----
*** counsel-semantic-or-imenu
:PROPERTIES:
:CUSTOM_ID: 0-11-0-nc-counsel-semantic-or-imenu
:END:
New command that uses either =counsel-semantic= or =counsel-imenu=. See
[[https://github.com/abo-abo/swiper/issues/702][#702]], [[https://github.com/abo-abo/swiper/issues/1389][#1389]].
-----
*** counsel-wmctrl
:PROPERTIES:
:CUSTOM_ID: 0-11-0-nc-counsel-wmctrl
:END:
Select a desktop window with completion.
-----
*** ivy-switch-buffer-kill
:PROPERTIES:
:CUSTOM_ID: 0-11-0-nc-ivy-switch-buffer-kill
:END:
New command bound to ~C-c C-k~ for =ivy-switch-buffer=. Use this to kill
one or more buffers while still in the minibuffer.
-----

#+BEGIN_EXPORT html
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
#+END_EXPORT
* 0.12.0
:PROPERTIES:
:CUSTOM_ID: 0.12.0
:END:
-----
** Fixes
:PROPERTIES:
:CUSTOM_ID: 0-12-0-fixes
:END:
-----
*** counsel-ag
:PROPERTIES:
:CUSTOM_ID: 0-12-0-fx-counsel-ag
:END:
Don't allow newlines in wildcards when using el:ivy--regex-fuzzy. See [[https://github.com/abo-abo/swiper/issues/1907][#1907]].
-----
*** counsel-company
:PROPERTIES:
:CUSTOM_ID: 0-12-0-fx-counsel-company
:END:
Add caller. See [[https://github.com/abo-abo/swiper/issues/2051][#2051]].

Use el:company-prefix. See [[https://github.com/abo-abo/swiper/issues/2054][#2054]], [[https://github.com/abo-abo/swiper/issues/2074][#2074]].

Don't rely on el:company-point See [[https://github.com/abo-abo/swiper/issues/2071][#2071]].
-----
*** counsel-dired-jump
:PROPERTIES:
:CUSTOM_ID: 0-12-0-fx-counsel-dired-jump
:END:
Fix "-type d". See [[https://github.com/abo-abo/swiper/issues/1965][#1965]].

Fix for OSX. See [[https://github.com/abo-abo/swiper/issues/1990][#1990]].
-----
*** counsel-file-jump
:PROPERTIES:
:CUSTOM_ID: 0-12-0-fx-counsel-file-jump
:END:
Fix file expansion. See [[https://github.com/abo-abo/swiper/issues/1903][#1903]].

Fix dotfiles not being shown. See [[https://github.com/abo-abo/swiper/issues/1820][#1820]].
-----
*** counsel-find-file
:PROPERTIES:
:CUSTOM_ID: 0-12-0-fx-counsel-find-file
:END:
Add nested hidden dotfiles to el:counsel-find-file-ignore-regexp. See [[https://github.com/abo-abo/swiper/issues/1820][#1820]].

Add lockfiles to el:counsel-find-file-ignore-regexp. See [[https://github.com/abo-abo/swiper/issues/2117][#2117]].

Improve mkdir action with el:ivy-call: cd into the created directory.

Improve delete action with el:ivy-call: stay in the directory.

Improve copy and move actions. See [[https://github.com/abo-abo/swiper/issues/2053][#2053]].
-----
*** counsel-git-checkout
:PROPERTIES:
:CUSTOM_ID: 0-12-0-fx-counsel-git-checkout
:END:
Quote branch names. See [[https://github.com/abo-abo/swiper/issues/1905][#1905]], [[https://github.com/abo-abo/swiper/issues/1906][#1906]].
-----
*** counsel-git-log
:PROPERTIES:
:CUSTOM_ID: 0-12-0-fx-counsel-git-log
:END:
Change el:counsel-git-log-split-string-re. See [[https://github.com/abo-abo/swiper/issues/2129][#2129]].

Fix el:ivy-resume. See [[https://github.com/abo-abo/swiper/issues/2133][#2133]].
-----
*** counsel-locate
:PROPERTIES:
:CUSTOM_ID: 0-12-0-fx-counsel-locate
:END:
Use a non-regex locate on BSD. See [[https://github.com/abo-abo/swiper/issues/1950][#1950]].
-----
*** counsel-org-file
:PROPERTIES:
:CUSTOM_ID: 0-12-0-fx-counsel-org-file
:END:
Handle =ATTACH_DIR= property. Re-use el:org-attach-dir. See [[https://github.com/abo-abo/swiper/issues/2042][#2042]].
-----
*** counsel-org-goto-all
:PROPERTIES:
:CUSTOM_ID: 0-12-0-fx-counsel-org-goto-all
:END:
Use org-mode outline settings. See [[https://github.com/abo-abo/swiper/issues/1947][#1947]].
-----
*** counsel-org-tag-agenda
:PROPERTIES:
:CUSTOM_ID: 0-12-0-fx-counsel-org-tag-agenda
:END:
Fix due to Org 9.2.3 API change. See [[https://github.com/abo-abo/swiper/issues/1997][#1997]].

Fix el:org-version testing. See [[https://github.com/abo-abo/swiper/issues/2006][#2006]].
-----
*** counsel-package
:PROPERTIES:
:CUSTOM_ID: 0-12-0-fx-counsel-package
:END:
Strip space from the initial input. See [[https://github.com/abo-abo/swiper/issues/1998][#1998]].
-----
*** counsel-recentf
:PROPERTIES:
:CUSTOM_ID: 0-12-0-fx-counsel-recentf
:END:
Require match. See [[https://github.com/abo-abo/swiper/issues/2043][#2043]].
-----
*** counsel-rhythmbox
:PROPERTIES:
:CUSTOM_ID: 0-12-0-fx-counsel-rhythmbox
:END:
Add =:require-match=.
-----
*** counsel-unicode-char
:PROPERTIES:
:CUSTOM_ID: 0-12-0-fx-counsel-unicode-char
:END:
Don't sort every time. See [[https://github.com/abo-abo/swiper/issues/1204][#1204]], [[https://github.com/abo-abo/swiper/issues/1988][#1988]].

Modify copy action to use actual result. See [[https://github.com/abo-abo/swiper/issues/2075][#2075]].
-----
*** documentation
:PROPERTIES:
:CUSTOM_ID: 0-12-0-fx-documentation
:END:
el:ivy-initial-inputs-alist is now a defcustom.

el:swiper-mc docstring. See [[https://github.com/abo-abo/swiper/issues/1879][#1879]].

Update ivy.org. See [[https://github.com/abo-abo/swiper/issues/1951][#1951]], [[https://github.com/abo-abo/swiper/issues/2046][#2046]], [[https://github.com/abo-abo/swiper/issues/2143][#2143]].

Mention el:char-fold-to-regexp. See [[https://github.com/abo-abo/swiper/issues/1977][#1977]].

Mention automatically integrated packages in ivy.org. See [[https://github.com/abo-abo/swiper/issues/1674][#1674]].

Remove outdated magit customization. See [[https://github.com/abo-abo/swiper/issues/2035][#2035]].

el:ivy-read docstring. See [[https://github.com/abo-abo/swiper/issues/2107][#2107]].

el:ivy-reverse-i-search docstring. See [[https://github.com/abo-abo/swiper/issues/2126][#2126]].

Add autoloads for various commands. See [[https://github.com/abo-abo/swiper/issues/2131][#2131]].
-----
*** ivy-avy
:PROPERTIES:
:CUSTOM_ID: 0-12-0-fx-ivy-avy
:END:
Fix when there's a scroll.
-----
*** ivy-completion-in-region
:PROPERTIES:
:CUSTOM_ID: 0-12-0-fx-ivy-completion-in-region
:END:
Don't insert initial-input if nil. See [[https://github.com/abo-abo/swiper/issues/2086][#2086]].
-----
*** ivy-display-function-overlay
:PROPERTIES:
:CUSTOM_ID: 0-12-0-fx-ivy-display-function-overlay
:END:
Don't assume in-buffer completion. See [[https://github.com/abo-abo/swiper/issues/2048][#2048]], [[https://github.com/abo-abo/swiper/issues/2049][#2049]].
-----
*** ivy-help
:PROPERTIES:
:CUSTOM_ID: 0-12-0-fx-ivy-help
:END:
Set el:org-hide-emphasis-markers. Reveal all Org contents. See [[https://github.com/abo-abo/swiper/issues/2021][#2021]].
Hide Org markup locally. See [[https://github.com/abo-abo/swiper/issues/2085][#2085]].
-----
*** ivy-immediate-done
:PROPERTIES:
:CUSTOM_ID: 0-12-0-fx-ivy-immediate-done
:END:
Improve for el:make-directory. See [[https://github.com/abo-abo/swiper/issues/1170][#1170]], [[https://github.com/abo-abo/swiper/issues/1719][#1719]], [[https://github.com/abo-abo/swiper/issues/2139][#2139]].
-----
*** ivy-insert-current
:PROPERTIES:
:CUSTOM_ID: 0-12-0-fx-ivy-insert-current
:END:
Insert text without properties. See [[https://github.com/abo-abo/swiper/issues/2040][#2040]].
-----
*** ivy-next-history-element
:PROPERTIES:
:CUSTOM_ID: 0-12-0-fx-ivy-next-history-element
:END:
Use el:minibuffer-default for el:dired-dwim-target.

#+begin_src elisp
(setq dired-dwim-target t)
#+end_src

Is a nice productivity boost. Except for the situation when you want to copy the file to
the current directory, and a different directory is preselected instead. When this
happens, you can now press ~M-n~ to select the current directory.
-----
*** ivy-occur
:PROPERTIES:
:CUSTOM_ID: 0-12-0-fx-ivy-occur
:END:
Make ivy-switch-buffer-occur work with multi-pass regex builders. See [[https://github.com/abo-abo/swiper/issues/1973][#1973]].

Make find-file-occur work with multi-pass regex builders. See [[https://github.com/abo-abo/swiper/issues/1984][#1984]].

Make grep-occur work with multi-pass regex builders. See [[https://github.com/abo-abo/swiper/issues/2033][#2033]].

Make swiper occur wgrep work for narrowed buffers. See [[https://github.com/abo-abo/swiper/issues/1848][#1848]].

Don't setq-local el:ivy--directory. See [[https://github.com/abo-abo/swiper/issues/1866][#1866]].

Don't highlight the file name part. See [[https://github.com/abo-abo/swiper/issues/2073][#2073]].

Fix missing line numbers. See [[https://github.com/abo-abo/swiper/issues/2076][#2076]].

Fix for el:counsel-find-file. See [[https://github.com/abo-abo/swiper/issues/2094][#2094]].

el:ivy-occur-revert-buffer should stay on the same line.
-----
*** ivy-occur-press
:PROPERTIES:
:CUSTOM_ID: 0-12-0-fx-ivy-occur-press
:END:
Improve when the window config was changed.
-----
*** ivy-partial
:PROPERTIES:
:CUSTOM_ID: 0-12-0-fx-ivy-partial
:END:
Works better when selecting files. See [[https://github.com/abo-abo/swiper/issues/2103][#2103]].
-----
*** ivy-previous-line-or-history
:PROPERTIES:
:CUSTOM_ID: 0-12-0-fx-ivy-previous-line-or-history
:END:
Improve. See [[https://github.com/abo-abo/swiper/issues/2137][#2137]], [[https://github.com/abo-abo/swiper/issues/2138][#2138]], [[https://github.com/abo-abo/swiper/issues/1137][#1137]].
-----
*** ivy-read
:PROPERTIES:
:CUSTOM_ID: 0-12-0-fx-ivy-read
:END:
Allow to override global actions per command. See [[https://github.com/abo-abo/swiper/issues/1873][#1873]].

Require TRAMP earlier so that there's completion. See [[https://github.com/abo-abo/swiper/issues/1918][#1918]].

Allow all re-builders to use el:ivy-highlight-grep-commands. See [[https://github.com/abo-abo/swiper/issues/1983][#1983]].

Improve column calculation in el:ivy-dispatching-done-hydra.

Allow recursive minibuffers to use el:ivy-display-functions-alist. See [[https://github.com/abo-abo/swiper/issues/1995][#1995]].

Don't use invalid =:preselect= as a regexp. See [[https://github.com/abo-abo/swiper/issues/2002][#2002]].

Allow to select "" when prompt is selectable. See [[https://github.com/abo-abo/swiper/issues/1924][#1924]].

Fix el:all-completions returning $$. See [[https://github.com/abo-abo/swiper/issues/2012][#2012]].

Fix matcher not called on input "". See [[https://github.com/abo-abo/swiper/issues/2013][#2013]].

Fix filter for el:ivy--regex-ignore-order. See [[https://github.com/abo-abo/swiper/issues/2015][#2015]].

Don't offer virtual buffers for plain el:switch-to-buffer. See [[https://github.com/abo-abo/swiper/issues/839][#839]].

el:ivy-completion-in-region-action obeys :exit-function.

Shrink ivy window after reading action. See [[https://github.com/abo-abo/swiper/issues/2079][#2079]].

Use single face for highlighting adjacent groups. See [[https://github.com/abo-abo/swiper/issues/2080][#2080]].

Use el:ivy-flx-limit more. See [[https://github.com/abo-abo/swiper/issues/2081][#2081]].

Fix el:ivy-read-action. See [[https://github.com/abo-abo/swiper/issues/2082][#2082]].

Set el:line-spacing to nil in the minibuffer. See [[https://github.com/abo-abo/swiper/issues/2118][#2118]].
-----
*** ivy-reverse-i-search
:PROPERTIES:
:CUSTOM_ID: 0-12-0-fx-ivy-reverse-i-search
:END:
Don't bind ivy-recursive-restore to nil. See [[https://github.com/abo-abo/swiper/issues/1215][#1215]].
-----
*** ivy--sort
:PROPERTIES:
:CUSTOM_ID: 0-12-0-fx-ivy--sort
:END:
Higher priority for el:ivy-sort-matches-functions-alist. See [[https://github.com/abo-abo/swiper/issues/2136][#2136]].
-----
*** ivy-switch-buffer
:PROPERTIES:
:CUSTOM_ID: 0-12-0-fx-ivy-switch-buffer
:END:
Preserve the index after kill. See [[https://github.com/abo-abo/swiper/issues/1787][#1787]], [[https://github.com/abo-abo/swiper/issues/1910][#1910]].

Fix ~M-o f~ for virtual buffers. See [[https://github.com/abo-abo/swiper/issues/2111][#2111]].
-----
*** ivy-thing-at-point
:PROPERTIES:
:CUSTOM_ID: 0-12-0-fx-ivy-thing-at-point
:END:
Extend. See [[https://github.com/abo-abo/swiper/issues/1871][#1871]].
-----
*** ivy-use-selectable-prompt
:PROPERTIES:
:CUSTOM_ID: 0-12-0-fx-ivy-use-selectable-prompt
:END:
Don't highlight if not needed.
-----
*** swiper
:PROPERTIES:
:CUSTOM_ID: 0-12-0-fx-swiper
:END:
Fix blinks in non-graphical Emacs. See [[https://github.com/abo-abo/swiper/issues/1921][#1921]], [[https://github.com/abo-abo/swiper/issues/1923][#1923]].

Documentation. See [[https://github.com/abo-abo/swiper/issues/643][#643]].

Don't rely on el:window-start in terminal.  el:window-start and el:window-end is not
reliable when in a terminal. It can be made reliable if a el:redisplay is performed, but
then we get annoying blinking. See [[https://github.com/abo-abo/swiper/issues/1928][#1928]].

Add extra condition to recenter in terminal. See [[https://github.com/abo-abo/swiper/issues/2059][#2059]].

Fix overlays clean up. See [[https://github.com/abo-abo/swiper/issues/2064][#2064]].

Obey el:search-invisible. See [[https://github.com/abo-abo/swiper/issues/1739][#1739]].

Improve highlighting with el:char-fold-to-regexp. See [[https://github.com/abo-abo/swiper/issues/2124][#2124]].

Add group for faces. See [[https://github.com/abo-abo/swiper/issues/2135][#2135]].
-----
*** swiper-avy
:PROPERTIES:
:CUSTOM_ID: 0-12-0-fx-swiper-avy
:END:
If the input is 1 char, re-highlight. See [[https://github.com/abo-abo/swiper/issues/1915][#1915]].

Warn if no input.

Fix for el:swiper-background-faces. See [[https://github.com/abo-abo/swiper/issues/2019][#2019]].

Handle quit. See [[https://github.com/abo-abo/swiper/issues/2062][#2062]].

Work for el:swiper-isearch. See [[https://github.com/abo-abo/swiper/issues/2134][#2134]].
-----
*** swiper-font-lock-exclude-p
:PROPERTIES:
:CUSTOM_ID: 0-12-0-fx-swiper-font-lock-exclude-p
:END:
Exclude el:xref--xref-buffer-mode from font-lock. See [[https://github.com/abo-abo/swiper/issues/1917][#1917]].

Try checking for non prog-mode.
-----
*** swiper-multi
:PROPERTIES:
:CUSTOM_ID: 0-12-0-fx-swiper-multi
:END:
Misc fixes. See [[https://github.com/abo-abo/swiper/issues/2101][#2101]], [[https://github.com/abo-abo/swiper/issues/2102][#2102]].
-----
*** swiper-query-replace
:PROPERTIES:
:CUSTOM_ID: 0-12-0-fx-swiper-query-replace
:END:
Fix for el:ivy--regex-ignore-order.

Check for empty input. See [[https://github.com/abo-abo/swiper/issues/2066][#2066]].
** New Features
:PROPERTIES:
:CUSTOM_ID: 0-12-0-new-features
:END:
-----
*** counsel-descbinds
:PROPERTIES:
:CUSTOM_ID: 0-12-0-nf-counsel-descbinds
:END:
Add ~M-o x~ el:counsel-descbinds-action-exec. See [[https://github.com/abo-abo/swiper/issues/2024][#2024]].
-----
*** counsel-file-jump
:PROPERTIES:
:CUSTOM_ID: 0-12-0-nf-counsel-file-jump
:END:
Add ~M-o d~ that opens the item in el:dired. See [[https://github.com/abo-abo/swiper/issues/2057][#2057]].
-----
*** counsel-find-file
:PROPERTIES:
:CUSTOM_ID: 0-12-0-nf-counsel-find-file
:END:
Press ~`~ to get completion for bookmarks. This allows you to efficiently jump between
recent directories. See [[https://github.com/abo-abo/swiper/issues/1956][#1956]], [[https://github.com/abo-abo/swiper/issues/1958][#1958]].

Press ~$~ to get completion for your environment variables that are directories. See [[https://github.com/abo-abo/swiper/issues/1932][#1932]],
[[https://github.com/abo-abo/swiper/issues/1937][#1937]].

New action: ~M-o c~ el:counsel-find-file-copy. See [[https://github.com/abo-abo/swiper/issues/1955][#1955]].

New var el:counsel-up-directory-level that customizes ~C-DEL~. See [[https://github.com/abo-abo/swiper/issues/1096][#1096]].

New var el:counsel-find-file-extern-extensions. Allows to press ~RET~ instead of ~M-o x~ for
selected file types, for which it doesn't make sense to be opened in Emacs.

When on a remote, ~//~ will cd to the remote root, instead of the local root. If you want to
go to the local root, use ~/ C-j~. See [[https://github.com/abo-abo/swiper/issues/1487][#1487]].

When on a remote, ~~~ will cd to the remote home, instead of the local home. If you want to
go to the local home, use ~/ C-j ~~. You can also try =`=.

New binding when completing file names ~C-M-y~ el:ivy-insert-current-full that obsoletes
el:counsel-yank-directory. See [[https://github.com/abo-abo/swiper/issues/2092][#2092]].

You can now use ~RET~ or ~C-m~ (in place of ~C-M-j~) to create a directory, even if it matches
an existing file.
-----
*** counsel-git-grep
:PROPERTIES:
:CUSTOM_ID: 0-12-0-nf-counsel-git-grep
:END:
New variable el:counsel-git-grep-cmd-function. Customize how git-grep is called based on
input.
-----
*** counsel-git-log
:PROPERTIES:
:CUSTOM_ID: 0-12-0-nf-counsel-git-log
:END:
Bind ~M-o v~ el:counsel-git-log-show-commit-action to visit the item in
el:magit-show-commit. See [[https://github.com/abo-abo/swiper/issues/2129][#2129]], [[https://github.com/abo-abo/swiper/issues/2148][#2148]].
-----
*** counsel-grep
:PROPERTIES:
:CUSTOM_ID: 0-12-0-nf-counsel-grep
:END:
Add el:counsel-grep-history. See [[https://github.com/abo-abo/swiper/issues/1914][#1914]].
-----
*** counsel-grep-use-swiper-p
:PROPERTIES:
:CUSTOM_ID: 0-12-0-nf-counsel-grep-use-swiper-p
:END:
When this function returns non-nil, el:counsel-grep-or-swiper will call el:swiper, else
el:counsel-grep-or-swiper. See [[https://github.com/abo-abo/swiper/issues/1908][#1908]].
-----
*** counsel-locate
:PROPERTIES:
:CUSTOM_ID: 0-12-0-nf-counsel-locate
:END:
Automatically call =updatedb= when your home folder is encrypted.
Use el:counsel-locate-db-path to customize.
-----
*** counsel-mark-ring
:PROPERTIES:
:CUSTOM_ID: 0-12-0-nf-counsel-mark-ring
:END:
Add preview and highlight by candidate. See [[https://github.com/abo-abo/swiper/issues/2078][#2078]].

New variable el:counsel-descbinds-function. See [[https://github.com/abo-abo/swiper/issues/1876][#1876]], [[https://github.com/abo-abo/swiper/issues/2091][#2091]].
-----
*** counsel-M-x
:PROPERTIES:
:CUSTOM_ID: 0-12-0-nf-counsel-m-x
:END:
Optionally expand aliases.  For example, if =rb= is aliased to el:revert-buffer, and bound
to ~C-c r~, el:counsel-M-x will show: =rb (revert-buffer) (C-c r)=.
Customize with el:counsel-alias-expand, enabled by default.
See [[https://github.com/abo-abo/swiper/issues/1904][#1904]].
-----
*** counsel-rg
:PROPERTIES:
:CUSTOM_ID: 0-12-0-nf-counsel-rg
:END:
Dynamically handle look-arounds. See [[https://github.com/abo-abo/swiper/issues/1935][#1935]].

Anchor pcre lookarounds to bol. See [[https://github.com/abo-abo/swiper/issues/1976][#1976]], [[https://github.com/abo-abo/swiper/issues/1979][#1979]].

Add an example of inclusion patterns to the doc.

Press ~C-x C-d~ calls el:counsel-cd that allows you to change the current directory.

Add dynamic case folding. Make sure el:counsel-ag-base-command or
el:counsel-rg-base-command does not include "-i": it will be added automatically based on
your input and el:ivy-case-fold-search. See [[https://github.com/abo-abo/swiper/issues/1869][#1869]].
-----
*** counsel-set-variable
:PROPERTIES:
:CUSTOM_ID: 0-12-0-nf-counsel-set-variable
:END:
Better annotations for options.
If the option is e.g.:
#+begin_example
(const :tag "Dotfiles and Lockfiles" "\\(?:\\`\\|[/\\]\\)\\(?:[#.]\\)")
#+end_example
then display:
#+begin_example
Dotfiles and Lockfiles: \(?:\`\|[/\]\)\(?:[#.]\)
#+end_example
instead of:
#+begin_example
\\(?:\\`\\|[/\\]\\)\\(?:[#.]\\)
#+end_example

If the option's value is nil, but a =:tag= is present, display the option.
-----
*** ivy-avy
:PROPERTIES:
:CUSTOM_ID: 0-12-0-nf-ivy-avy
:END:
Allow to scroll with ~C-v~ and ~M-v~.
-----
*** ivy-dispatching-done-hydra
:PROPERTIES:
:CUSTOM_ID: 0-12-0-nf-ivy-dispatching-done-hydra
:END:
New variable el:ivy-dispatching-done-hydra-exit-keys. In case you bind
el:ivy-dispatching-done-hydra to a custom key.
-----
*** ivy-read
:PROPERTIES:
:CUSTOM_ID: 0-12-0-nf-ivy-read
:END:
Allow to mark/unmark candidates with ~m~, ~u~, ~DEL~, ~t~. The bindings are similar to what
el:dired provides. They are available in the ~C-o~ hydra. See [[https://github.com/abo-abo/swiper/issues/561][#561]].

Add =:multi-action= argument. If multiple candidates are marked and this argument is
present, call it with the whole list of marked candidates, instead of calling =:action= in
turn for each marked candidate. See [[https://github.com/abo-abo/swiper/issues/561][#561]], [[https://github.com/abo-abo/swiper/issues/2068][#2068]].

el:ivy-inhibit-action can be a function. This allows you to effectively override the
=:action= argument to el:ivy-read.

New var el:ivy-dispatching-done-idle can delay the hint by a specified amount of seconds.

=:update-fn= argument can now be ='auto=. This will call =:action= each time the current
candidate changes.

New var el:ivy-format-functions-alist that obsoletes el:ivy-format-function. See [[https://github.com/abo-abo/swiper/issues/2083][#2083]],
[[https://github.com/abo-abo/swiper/issues/2084][#2084]], [[https://github.com/abo-abo/swiper/issues/2130][#2130]].

New var el:ivy-display-functions-alist that obsoletes el:ivy-display-function. See [[https://github.com/abo-abo/swiper/issues/2089][#2089]].

Add ability to resume dynamic collections. See [[https://github.com/abo-abo/swiper/issues/1095][#1095]], [[https://github.com/abo-abo/swiper/issues/2112][#2112]].
-----
*** ivy--regex
:PROPERTIES:
:CUSTOM_ID: 0-12-0-nf-ivy--regex
:END:
Match initial dot in the input as a literal dot.  This brings much more usability,
e.g. enter ".org" to switch between Org-mode files, ".el" for Elisp etc.
-----
*** ivy-reverse-i-search
:PROPERTIES:
:CUSTOM_ID: 0-12-0-nf-ivy-reverse-i-search
:END:
New binding ~C-k~ el:ivy-reverse-i-search-kill. Remove elements from history.
-----
*** ivy-sort-matches-functions-alist
:PROPERTIES:
:CUSTOM_ID: 0-12-0-nf-ivy-sort-matches-functions-alist
:END:
Sort shorter matches first for el:ivy-completion-in-region.
-----
*** ivy-switch-buffer
:PROPERTIES:
:CUSTOM_ID: 0-12-0-nf-ivy-switch-buffer
:END:
Add ~M-o x~ el:counsel-open-buffer-file-externally. See [[https://github.com/abo-abo/swiper/issues/2108][#2108]], [[https://github.com/abo-abo/swiper/issues/2115][#2115]].

Move ~C-c C-k~ el:ivy-switch-buffer-kill to ~C-k~.

Fix el:ivy-push-view windows layout. See [[https://github.com/abo-abo/swiper/issues/2109][#2109]].
-----
*** swiper
:PROPERTIES:
:CUSTOM_ID: 0-12-0-nf-swiper
:END:
New variable el:swiper-use-visual-line-p. Configure to prevent el:swiper from becoming
slow in huge buffers where el:visual-line-mode is enabled.

Add preview overlays. See [[https://github.com/abo-abo/swiper/issues/1948][#1948]].
-----
*** swiper-query-replace
:PROPERTIES:
:CUSTOM_ID: 0-12-0-nf-swiper-query-replace
:END:
Use el:query-replace-compile-replacement to allow using Elisp in replacements.  Simply use
~M-i~ to insert and edit the suggested replacement. See [[https://github.com/abo-abo/swiper/issues/2096][#2096]].

For example, suppose in swiper.el, we want to rename:
#+begin_example
(defTYPE swiper- to (defTYPE ivy
#+end_example
where TYPE is (group, face, fun, var ...).

1. el:swiper-isearch for =(def\sw+ swiper=
2. ~M-q~ to replace and ~TAB~ to get: =\,(concat \1 " " \2)=
3. Modify it to =\,(concat \1 " ivy")=
** New Commands
:PROPERTIES:
:CUSTOM_ID: 0-12-0-new-commands
:END:
-----
*** counsel-compile
:PROPERTIES:
:CUSTOM_ID: 0-12-0-nc-counsel-compile
:END:
Call el:compile, completing with smart suggestions. See [[https://github.com/abo-abo/swiper/issues/1941][#1941]], [[https://github.com/abo-abo/swiper/issues/1963][#1963]], [[https://github.com/abo-abo/swiper/issues/1966][#1966]], [[https://github.com/abo-abo/swiper/issues/1968][#1968]], [[https://github.com/abo-abo/swiper/issues/1972][#1972]],
[[https://github.com/abo-abo/swiper/issues/2077][#2077]].

Add el:counsel-compile-env. See [[https://github.com/abo-abo/swiper/issues/2030][#2030]].
-----
*** counsel-dired
:PROPERTIES:
:CUSTOM_ID: 0-12-0-nc-counsel-dired
:END:
Like el:counsel-find-file, but open el:dired instead. See [[https://github.com/abo-abo/swiper/issues/1993][#1993]], [[https://github.com/abo-abo/swiper/issues/1999][#1999]].
-----
*** counsel-minor
:PROPERTIES:
:CUSTOM_ID: 0-12-0-nc-counsel-minor
:END:
Toggle minor mode. The interface is similar to el:counsel-package, you enable modes with
"+mode" and disable with "-mode". See [[https://github.com/abo-abo/swiper/issues/2000][#2000]], [[https://github.com/abo-abo/swiper/issues/2070][#2070]].
-----
*** counsel-register
:PROPERTIES:
:CUSTOM_ID: 0-12-0-nc-counsel-register
:END:
Completion for registers: buffer positions, text, rectangles, window configs, frame
configs, macros etc. See [[https://github.com/abo-abo/swiper/issues/2056][#2056]].
-----
*** counsel-switch-buffer
:PROPERTIES:
:CUSTOM_ID: 0-12-0-nc-counsel-switch-buffer
:END:
Like el:ivy-switch-buffer, but you get automatic live preview.
See [[https://github.com/abo-abo/swiper/issues/1895][#1895]], [[https://github.com/abo-abo/swiper/issues/1897][#1897]], [[https://github.com/abo-abo/swiper/issues/1954][#1954]], [[https://github.com/abo-abo/swiper/issues/1971][#1971]], [[https://github.com/abo-abo/swiper/issues/1959][#1959]], [[https://github.com/abo-abo/swiper/issues/2009][#2009]], [[https://github.com/abo-abo/swiper/issues/2113][#2113]].
-----
*** counsel-switch-buffer-other-window
:PROPERTIES:
:CUSTOM_ID: 0-12-0-nc-counsel-switch-buffer-other-window
:END:
Switch to another buffer in another window, with preview. See [[https://github.com/abo-abo/swiper/issues/2022][#2022]], [[https://github.com/abo-abo/swiper/issues/2067][#2067]].
-----
*** swiper-all-thing-at-point
:PROPERTIES:
:CUSTOM_ID: 0-12-0-nc-swiper-all-thing-at-point
:END:
Start el:swiper-all with el:symbol-at-point as input. See [[https://github.com/abo-abo/swiper/issues/2106][#2106]].
-----
*** swiper-isearch
:PROPERTIES:
:CUSTOM_ID: 0-12-0-nc-swiper-isearch
:END:
A faster version of el:swiper that's not line-based:
- Much faster startup
- When there are many matches on the same line, you can select each on individually

See [[https://github.com/abo-abo/swiper/issues/1931][#1931]], [[https://github.com/abo-abo/swiper/issues/2014][#2014]], [[https://github.com/abo-abo/swiper/issues/2018][#2018]], [[https://github.com/abo-abo/swiper/issues/2029][#2029]], [[https://github.com/abo-abo/swiper/issues/2031][#2031]], [[https://github.com/abo-abo/swiper/issues/2034][#2034]], [[https://github.com/abo-abo/swiper/issues/2039][#2039]], [[https://github.com/abo-abo/swiper/issues/2058][#2058]], [[https://github.com/abo-abo/swiper/issues/2069][#2069]], [[https://github.com/abo-abo/swiper/issues/2119][#2119]], [[https://github.com/abo-abo/swiper/issues/2146][#2146]], [[https://github.com/abo-abo/swiper/issues/2151][#2151]].

New variable el:swiper-isearch-highlight-delay. Used to delay matches that are just one
character by 0.2s. Usually in that time frame a second key will be added to the input.

Obey el:search-default-mode. See [[https://github.com/abo-abo/swiper/issues/622][#622]], [[https://github.com/abo-abo/swiper/issues/2095][#2095]].
-----
*** swiper-isearch-thing-at-point
:PROPERTIES:
:CUSTOM_ID: 0-12-0-nc-swiper-isearch-thing-at-point
:END:
Start el:swiper-isearch with el:symbol-at-point as input. See [[https://github.com/abo-abo/swiper/issues/2025][#2025]], [[https://github.com/abo-abo/swiper/issues/2029][#2029]].
-----
*** swiper-isearch-toggle
:PROPERTIES:
:CUSTOM_ID: 0-12-0-nc-swiper-isearch-toggle
:END:
A two-way toggle between el:swiper and el:isearch-mode. See [[https://github.com/abo-abo/swiper/issues/2061][#2061]], [[https://github.com/abo-abo/swiper/issues/2065][#2065]].
-----
*** swiper-thing-at-point
:PROPERTIES:
:CUSTOM_ID: 0-12-0-nc-swiper-thing-at-point
:END:
Start el:swiper with el:symbol-at-point as input. See [[https://github.com/abo-abo/swiper/issues/2027][#2027]].
-----
*** swiper-backward
:PROPERTIES:
:CUSTOM_ID: 0-12-0-nc-swiper-backward
:END:
el:isearch-backward with an overview. See [[https://github.com/abo-abo/swiper/issues/1172][#1172]], [[https://github.com/abo-abo/swiper/issues/2132][#2132]].
-----
*** counsel-grep-or-swiper-backward
:PROPERTIES:
:CUSTOM_ID: 0-12-0-nc-counsel-grep-or-swiper-backward
:END:
See [[https://github.com/abo-abo/swiper/issues/2132][#2132]].
-----
*** swiper-isearch-backward
:PROPERTIES:
:CUSTOM_ID: 0-12-0-nc-swiper-isearch-backward
:END:
See [[https://github.com/abo-abo/swiper/issues/2125][#2125]].
-----
* 0.13.0
:PROPERTIES:
:CUSTOM_ID: 0.13.0
:END:
-----
** Fixes
:PROPERTIES:
:CUSTOM_ID: 0.13.0-fixes
:END:
-----
*** counsel--async-last-command
:PROPERTIES:
:CUSTOM_ID: 0.13.0-fx-counsel--async-last-command
:END:
New variable. Store the last command ran by el:counsel--async-command.
-----
*** counsel--async-last-error-string
:PROPERTIES:
:CUSTOM_ID: 0.13.0-fx-counsel--async-last-error-string
:END:
New variable. If a command that relies on el:counsel--async-command returns non-0, store
the output here. See [[https://github.com/abo-abo/swiper/issues/2160][#2160]].
-----
*** counsel-cd
:PROPERTIES:
:CUSTOM_ID: 0.13.0-fx-counsel-cd
:END:
Fix for el:counsel-ag. See [[https://github.com/abo-abo/swiper/issues/2261][#2261]].
-----
*** counsel-compile
:PROPERTIES:
:CUSTOM_ID: 0.13.0-fx-counsel-compile
:END:
Delete duplicates. Favor project root over el:default-directory. See [[https://github.com/abo-abo/swiper/issues/2253][#2253]].
-----
*** counsel-compile-env-pattern
:PROPERTIES:
:CUSTOM_ID: 0.13.0-fx-counsel-compile-env-pattern
:END:
Fix regex typo. See [[https://github.com/abo-abo/swiper/issues/2193][#2193]].
-----
*** counsel-file-jump
:PROPERTIES:
:CUSTOM_ID: 0.13.0-fx-counsel-file-jump
:END:
Use temp buffer instead of el:split-string. See [[https://github.com/abo-abo/swiper/issues/2120][#2120]].

Make el:counsel--find-return-list work with or without the "./" prefix. See [[https://github.com/abo-abo/swiper/issues/2196][#2196]].
-----
*** counsel-git-grep-action
:PROPERTIES:
:CUSTOM_ID: 0.13.0-fx-counsel-git-grep-action
:END:
Check the result of el:re-search-forward. See [[https://github.com/abo-abo/swiper/issues/2209][#2209]].
-----
*** counsel-imenu
:PROPERTIES:
:CUSTOM_ID: 0.13.0-fx-counsel-imenu
:END:
Work with =:update-fn 'auto=. See [[https://github.com/abo-abo/swiper/issues/2188][#2188]].
-----
*** counsel-locate-cmd-es
:PROPERTIES:
:CUSTOM_ID: 0.13.0-fx-counsel-locate-cmd-es
:END:
Encode the command to local codepage. See [[https://github.com/abo-abo/swiper/issues/2278][#2278]].
-----
*** counsel-mark-ring
:PROPERTIES:
:CUSTOM_ID: 0.13.0-fx-counsel-mark-ring
:END:
Refactor. See [[https://github.com/abo-abo/swiper/issues/2237][#2237]].

Add the latest mark to selection. See [[https://github.com/abo-abo/swiper/issues/2252][#2252]].

Go to actual point instead of line. See [[https://github.com/abo-abo/swiper/issues/2254][#2254]].

Fix highlight line. See [[https://github.com/abo-abo/swiper/issues/2255][#2255]].

Handle read-only strings. See [[https://github.com/abo-abo/swiper/issues/2258][#2258]], [[https://github.com/abo-abo/swiper/issues/2262][#2262]].
-----
*** counsel-M-x
:PROPERTIES:
:CUSTOM_ID: 0.13.0-fx-counsel-m-x
:END:
Respect el:counsel-describe-function-function. See [[https://github.com/abo-abo/swiper/issues/2251][#2251]].
-----
*** counsel--py-action
:PROPERTIES:
:CUSTOM_ID: 0.13.0-fx-counsel--py-action
:END:
Don't auto-insert parens. See [[https://github.com/abo-abo/swiper/issues/2229][#2229]].
-----
*** counsel-rg-base-command
:PROPERTIES:
:CUSTOM_ID: 0.13.0-fx-counsel-rg-base-command
:END:
Don't include directory on non-Windows. See  [[https://github.com/abo-abo/swiper/issues/795][#795]], [[https://github.com/abo-abo/swiper/issues/2180][#2180]].

Ensure =/= is the path-separator on Windows. See [[https://github.com/abo-abo/swiper/issues/2279][#2279]].
-----
*** Documentation
:PROPERTIES:
:CUSTOM_ID: 0.13.0-fx-documentation
:END:
=ivy.info= is not installed from GNU ELPA. See [[https://github.com/abo-abo/swiper/issues/697][#697]].

Fix typo. See [[https://github.com/abo-abo/swiper/issues/2170][#2170]].

Fix el:ivy-read docstring. See [[https://github.com/abo-abo/swiper/issues/2201][#2201]].

Add full text of licences. See [[https://github.com/abo-abo/swiper/issues/2206][#2206]].

Document the marking feature. See [[https://github.com/abo-abo/swiper/issues/2214][#2214]].

Update GFDL licence. See [[https://github.com/abo-abo/swiper/issues/2187][#2187]].

Ivy now requires at least Emacs-24.5 (released on 2015-04-10). Up from Emacs-24.1
(released 2012-06-10).
-----
*** hydra-ivy
:PROPERTIES:
:CUSTOM_ID: 0.13.0-fx-hydra-ivy
:END:
Use el:ivy-read-action-by-key. See [[https://github.com/abo-abo/swiper/issues/2239][#2239]], [[https://github.com/abo-abo/swiper/issues/2250][#2250]].
-----
*** ivy
:PROPERTIES:
:CUSTOM_ID: 0.13.0-fx-ivy
:END:
Lazy load el:ffap. See [[https://github.com/abo-abo/swiper/issues/2215][#2215]].
-----
*** ivy-completion-in-region
:PROPERTIES:
:CUSTOM_ID: 0.13.0-fx-ivy-completion-in-region
:END:
Add workaround for el:package-menu-filter. See [[https://github.com/abo-abo/swiper/issues/2244][#2244]].
-----
*** ivy--directory-done
:PROPERTIES:
:CUSTOM_ID: 0.13.0-fx-ivy--directory-done
:END:
Handle ~/ C-j~ on remote. See [[https://github.com/abo-abo/swiper/issues/2205][#2205]].
-----
*** ivy-dispatching-done-hydra
:PROPERTIES:
:CUSTOM_ID: 0.13.0-fx-ivy-dispatching-done-hydra
:END:
Fix for el:ivy-resume. Modify the action list non-desctructively. See [[https://github.com/abo-abo/swiper/issues/2195][#2195]].
-----
*** ivy--done
:PROPERTIES:
:CUSTOM_ID: 0.13.0-fx-ivy--done
:END:
Check if given a string. See [[https://github.com/abo-abo/swiper/issues/2200][#2200]].
-----
*** ivy-immediate-done
:PROPERTIES:
:CUSTOM_ID: 0.13.0-fx-ivy-immediate-done
:END:
Add el:copy-sequence to fix el:read-directory-name. See [[https://github.com/abo-abo/swiper/issues/1170][#1170]], [[https://github.com/abo-abo/swiper/issues/2149][#2149]], [[https://github.com/abo-abo/swiper/issues/2165][#2165]].

Fix for when ~C-j~ changed cwd. See [[https://github.com/abo-abo/swiper/issues/2165][#2165]].

Fix parent dirs for el:read-directory-name. See [[https://github.com/abo-abo/swiper/issues/2165][#2165]], [[https://github.com/abo-abo/swiper/issues/2198][#2198]].
-----
*** ivy--input
:PROPERTIES:
:CUSTOM_ID: 0.13.0-fx-ivy--input
:END:
Fix point moving in TRAMP sessions sometimes. See [[https://github.com/abo-abo/swiper/issues/2160][#2160]].

Fix for el:ediff. See [[https://github.com/abo-abo/swiper/issues/2175][#2175]].
-----
*** ivy--magic-file-slash
:PROPERTIES:
:CUSTOM_ID: 0.13.0-fx-ivy--magic-file-slash
:END:
Make less aggressive. Check that the prompt is not selected before performing the
ivy-magic-slash-non-match-cd-selected action. See [[https://github.com/abo-abo/swiper/issues/2240][#2240]].
-----
*** ivy-occur
:PROPERTIES:
:CUSTOM_ID: 0.13.0-fx-ivy-occur
:END:
Set up for el:next-error. See [[https://github.com/abo-abo/swiper/issues/1354][#1354]], [[https://github.com/abo-abo/swiper/issues/2257][#2257]].
-----
*** ivy-occur-revert-buffer
:PROPERTIES:
:CUSTOM_ID: 0.13.0-fx-ivy-occur-revert-buffer
:END:
Don't error if the el:swiper buffer was killed.
-----
*** ivy-overlay-show-after
:PROPERTIES:
:CUSTOM_ID: 0.13.0-fx-ivy-overlay-show-after
:END:
Check window height better. See [[https://github.com/abo-abo/swiper/issues/2161][#2161]].
-----
*** ivy-partial
:PROPERTIES:
:CUSTOM_ID: 0.13.0-fx-ivy-partial
:END:
Fix trailing space issue. See [[https://github.com/abo-abo/swiper/issues/2103][#2103]].

Use el:ivy--filter in place of el:all-completions. See [[https://github.com/abo-abo/swiper/issues/2199][#2199]].
-----
*** ivy-read
:PROPERTIES:
:CUSTOM_ID: 0.13.0-fx-ivy-read
:END:
Fix conflict with an existing el:read-key session. See [[https://github.com/abo-abo/swiper/issues/2230][#2230]].
-----
*** ivy-resume
:PROPERTIES:
:CUSTOM_ID: 0.13.0-fx-ivy-resume
:END:
Restore use-ignore setting. See [[https://github.com/abo-abo/swiper/issues/2179][#2179]].
-----
*** ivy-yank-word
:PROPERTIES:
:CUSTOM_ID: 0.13.0-fx-ivy-yank-word
:END:
Handle case fold. See [[https://github.com/abo-abo/swiper/issues/2194][#2194]].
-----
*** swiper
:PROPERTIES:
:CUSTOM_ID: 0.13.0-fx-swiper
:END:
Fix overlay faces using el:ivy--regex-ignore-order. See [[https://github.com/abo-abo/swiper/issues/2162][#2162]].

Fix symbol bounds with el:char-fold-to-regexp. See [[https://github.com/abo-abo/swiper/issues/2177][#2177]].
-----
*** swiper-isearch
:PROPERTIES:
:CUSTOM_ID: 0.13.0-fx-swiper-isearch
:END:
Improve matching. See [[https://github.com/abo-abo/swiper/issues/2154][#2154]].

Fix for el:ivy-resume. See [[https://github.com/abo-abo/swiper/issues/2153][#2153]], 2154.

Make el:swiper-isearch-function work with el:ivy--regex-ignore-order. See [[https://github.com/abo-abo/swiper/issues/2155][#2155]].

Fix return value. See [[https://github.com/abo-abo/swiper/issues/2163][#2163]].

Fix regexes for el:ivy--regex-ignore-order. See [[https://github.com/abo-abo/swiper/issues/2164][#2164]].

Fix scroll on ~RET~. See [[https://github.com/abo-abo/swiper/issues/2159][#2159]].

Set el:case-fold-search. See [[https://github.com/abo-abo/swiper/issues/2226][#2226]].
-----
*** swiper-isearch-action
:PROPERTIES:
:CUSTOM_ID: 0.13.0-fx-swiper-isearch-action
:END:
Make el:ivy-previous-line-or-history work. See [[https://github.com/abo-abo/swiper/issues/2158][#2158]].
-----
*** swiper-occur
:PROPERTIES:
:CUSTOM_ID: 0.13.0-fx-swiper-occur
:END:
Fix for el:wgrep. See [[https://github.com/abo-abo/swiper/issues/2156][#2156]].
-----
*** swiper-query-replace
:PROPERTIES:
:CUSTOM_ID: 0.13.0-fx-swiper-query-replace
:END:
For for "^$" search term. See [[https://github.com/abo-abo/swiper/issues/2232][#2232]].
-----
*** swiper-recenter-top-bottom
:PROPERTIES:
:CUSTOM_ID: 0.13.0-fx-swiper-recenter-top-bottom
:END:
Now works for el:swiper-isearch.
-----
*** swiper-thing-at-point
:PROPERTIES:
:CUSTOM_ID: 0.13.0-fx-swiper-thing-at-point
:END:
Fix for el:swiper-isearch. See [[https://github.com/abo-abo/swiper/issues/2157][#2157]].
-----
*** Tests
:PROPERTIES:
:CUSTOM_ID: 0.13.0-fx-tests
:END:
Keep the test files in worktree instead of in a =test= branch. See [[https://github.com/abo-abo/swiper/issues/2187][#2187]].

Fix tests using file names on Windows. See [[https://github.com/abo-abo/swiper/issues/2217][#2217]].
-----
** New Features
:PROPERTIES:
:CUSTOM_ID: 0.13.0-new-features
:END:
-----
*** counsel-dired
:PROPERTIES:
:CUSTOM_ID: 0.13.0-nf-counsel-dired
:END:
Filter to directories only. See [[https://github.com/abo-abo/swiper/issues/2275][#2275]].
-----
*** counsel-dired-jump-args
:PROPERTIES:
:CUSTOM_ID: 0.13.0-nf-counsel-dired-jump-args
:END:
The variable is now a list. See [[https://github.com/abo-abo/swiper/issues/2120][#2120]].
-----
*** counsel-file-jump-args
:PROPERTIES:
:CUSTOM_ID: 0.13.0-nf-counsel-file-jump-args
:END:
The variable is now a list. See [[https://github.com/abo-abo/swiper/issues/2120][#2120]].
-----
*** counsel-find-file
:PROPERTIES:
:CUSTOM_ID: 0.13.0-nf-counsel-find-file
:END:
Use =~~= to move to the local home directory from remote.  Using =/ RET ~= is still an option,
but more cumbersome. This also works for =/sudo::=. See [[https://github.com/abo-abo/swiper/issues/2276][#2276]].

Use el:file-name-at-point-functions. See [[https://github.com/abo-abo/swiper/issues/1446][#1446]], [[https://github.com/abo-abo/swiper/issues/2181][#2181]], [[https://github.com/abo-abo/swiper/issues/2184][#2184]].

Use el:dired-current-directory if in el:dired. See [[https://github.com/abo-abo/swiper/issues/2274][#2274]].

Bind ~M-o R~ to el:find-file-read-only. See [[https://github.com/abo-abo/swiper/issues/2236][#2236]].
-----
*** counsel-find-file-mkdir-action
:PROPERTIES:
:CUSTOM_ID: 0.13.0-nf-counsel-find-file-mkdir-action
:END:
Make parents too. See [[https://github.com/abo-abo/swiper/issues/2178][#2178]].
-----
*** counsel-git-grep
:PROPERTIES:
:CUSTOM_ID: 0.13.0-nf-counsel-git-grep
:END:
Use ~C-x C-d~ to switch current directory. See [[https://github.com/abo-abo/swiper/issues/2259][#2259]].

Works with el:ivy--regex-fuzzy. el:ivy-occur works as well. See [[https://github.com/abo-abo/swiper/issues/2243][#2243]].

Nicer message when no match was found. See [[https://github.com/abo-abo/swiper/issues/2265][#2265]].
-----
*** counsel-M-x
:PROPERTIES:
:CUSTOM_ID: 0.13.0-nf-counsel-m-x
:END:
Propertize names of active modes with el:counsel-active-mode. See [[https://github.com/abo-abo/swiper/issues/2189][#2189]], [[https://github.com/abo-abo/swiper/issues/2258][#2258]].

Some commands are intended to be called only via their key binding. Make them disappear
from el:counsel-M-x like this:
#+begin_src elisp
(put 'counsel-find-symbol 'no-counsel-M-x t)
#+end_src
See [[https://github.com/abo-abo/swiper/issues/2270][#2270]].
-----
*** counsel-package
:PROPERTIES:
:CUSTOM_ID: 0.13.0-nf-counsel-package
:END:
Refresh contents automatically.
-----
*** counsel-rg
:PROPERTIES:
:CUSTOM_ID: 0.13.0-nf-counsel-rg
:END:
Ivy will add "-i" appropriately, based on el:ivy-case-fold-search-default.
You should remove the "-S" flag from el:counsel-rg-base-command if you customized it.

When in el:dired, operate on marked files. This also applies to ivy-occur buffers of
el:counsel-find-file and el:counsel-git.
-----
*** counsel-switch-buffer
:PROPERTIES:
:CUSTOM_ID: 0.13.0-nf-counsel-switch-buffer
:END:
Add actions. See [[https://github.com/abo-abo/swiper/issues/2233][#2233]].
-----
*** ivy-configure
:PROPERTIES:
:CUSTOM_ID: 0.13.0-nf-ivy-configure
:END:
New function to configure many things at once. Example:
#+begin_src elisp
(ivy-configure 'counsel-find-file
  :occur #'counsel-find-file-occur
  :display-transformer-fn #'ivy-read-file-transformer)
#+end_src
Instead of configuring many alists separately using the =:caller= key of el:ivy-read,
configure everything together.
-----
*** ivy-ffap-url-functions
:PROPERTIES:
:CUSTOM_ID: 0.13.0-nf-ivy-ffap-url-functions
:END:
Add el:vc-git-log-view-mode.
-----
*** ivy-partial
:PROPERTIES:
:CUSTOM_ID: 0.13.0-nf-ivy-partial
:END:
Obey el:completion-cycle-threshold. See [[https://github.com/abo-abo/swiper/issues/2225][#2225]].
-----
*** ivy-partial-or-done
:PROPERTIES:
:CUSTOM_ID: 0.13.0-nf-ivy-partial-or-done
:END:
Work with el:completion-cycle-threshold. See [[https://github.com/abo-abo/swiper/issues/2225][#2225]].
If you set this to an integer, and the amount of candidates is less than that number,
pressing ~TAB~ will cycle to the next candidate.
-----
*** ivy-pre-prompt-function
:PROPERTIES:
:CUSTOM_ID: 0.13.0-nf-ivy-pre-prompt-function
:END:
When non-nil, add strings before the el:ivy-read prompt. See [[https://github.com/abo-abo/swiper/issues/2185][#2185]].
-----
*** ivy-read
:PROPERTIES:
:CUSTOM_ID: 0.13.0-nf-ivy-read
:END:
New API for asynchronous calls. See [[https://github.com/abo-abo/swiper/issues/2263][#2263]].

To use it, pass to el:ivy-read: =:dynamic-collection t=, and a collection function that
takes a user input string, starts some asynchronous process based on that input, and
returns 0. The 0 return result tells Ivy that no candidates were returned; instead,
el:ivy-update-candidates is used in the async callback.

See el:counsel-google for a reference implementation.
-----
*** ivy-read-action-function
:PROPERTIES:
:CUSTOM_ID: 0.13.0-nf-ivy-read-action-function
:END:
New defcustom that allows you to read the action via: key, or Ivy, or Hydra. See [[https://github.com/abo-abo/swiper/issues/2176][#2176]].
-----
*** ivy-restrict-to-matches
:PROPERTIES:
:CUSTOM_ID: 0.13.0-nf-ivy-restrict-to-matches
:END:
Work for dynamic collection. See [[https://github.com/abo-abo/swiper/issues/2168][#2168]].
-----
*** ivy-update-fns-alist
:PROPERTIES:
:CUSTOM_ID: 0.13.0-nf-ivy-update-fns-alist
:END:
Allow to customize =:update-fn=. See [[https://github.com/abo-abo/swiper/issues/2188][#2188]].
Example:
#+begin_src elisp
(ivy-configure 'counsel-imenu
  :update-fn 'auto)
#+end_src
-----
*** ivy-use-virtual-buffers
:PROPERTIES:
:CUSTOM_ID: 0.13.0-nf-ivy-use-virtual-buffers
:END:
Allow to choose between: recent files, or bookmarks, or both, or none. See [[https://github.com/abo-abo/swiper/issues/2169][#2169]], [[https://github.com/abo-abo/swiper/issues/2172][#2172]].
-----
*** swiper-goto-start-of-match
:PROPERTIES:
:CUSTOM_ID: 0.13.0-nf-swiper-goto-start-of-match
:END:
Also works for el:counsel-grep and el:counsel-git-grep. See [[https://github.com/abo-abo/swiper/issues/2209][#2209]].
-----
*** swiper-isearch
:PROPERTIES:
:CUSTOM_ID: 0.13.0-nf-swiper-isearch
:END:
Bind ~M-o w~ to copy the current line.
-----
** New Commands
:PROPERTIES:
:CUSTOM_ID: 0.13.0-new-commands
:END:
-----
*** counsel-buffer-or-recentf
:PROPERTIES:
:CUSTOM_ID: 0.13.0-nc-counsel-buffer-or-recentf
:END:
Lists buffers visiting files (highlighted) then the recentf file list. See [[https://github.com/abo-abo/swiper/issues/2182][#2182]].
-----
*** counsel-fonts
:PROPERTIES:
:CUSTOM_ID: 0.13.0-nc-counsel-fonts
:END:
Show a list of all supported font families for a particular frame. See [[https://github.com/abo-abo/swiper/issues/2220][#2220]].
-----
*** counsel-google
:PROPERTIES:
:CUSTOM_ID: 0.13.0-nc-counsel-google
:END:
Asynchronously query the Google predictive search API.
-----
*** counsel-major
:PROPERTIES:
:CUSTOM_ID: 0.13.0-nc-counsel-major
:END:
Switch el:major-mode. See [[https://github.com/abo-abo/swiper/issues/378][#378]].
-----
*** counsel-slime-repl-history
:PROPERTIES:
:CUSTOM_ID: 0.13.0-nc-counsel-slime-repl-history
:END:
Browse Slime REPL history. See [[https://github.com/abo-abo/swiper/issues/2234][#2234]].
-----
