- BREAKING: The key convention has been updated. The old key convention is not
supported anymore. Keys must now be strings valid according to
key-valid-p
. This changes affects the keysconsult-narrow-key
,consult-widen-key
,consult-preview-key
and the:preview-key
of sources and passed as keyword argument toconsult--read
. See the example configurations in the manual. - BREAKING: Remove the “.” argument from
consult-grep-args
andconsult-ripgrep-args
, since directories or files to search are appended by the command line builder. Take this change into account, when you use a customized version of those variables. consult-grep
: Add support for grep and find over multiple files or directory. If the prefix argument DIR is a single C-u, prompt for comma separated directories or files to search recursively viacompleting-read-multiple
.consult-buffer
andconsult-isearch-history
: Align annotations dynamically depending on candidate width, instead of computing the alignment beforehand.- Add the full path as
help-echo
property to abbreviated directory paths and project names. Enabletooltip-mode
and hover with the mouse over the abbreviated directory path to see the full path. consult-grep/find/etc
: Print first line of stderr output if command failed.
- Bugfixes
- Deprecate the old key convention. Keys must now be strings valid according to
key-valid-p
. This changes affects the keysconsult-narrow-key
,consult-widen-key
,consult-preview-key
and the:preview-key
of sources and passed as keyword argument toconsult--read
. See the example configurations in the manual. - Add
consult-info
command (#634, #727). consult-buffer
: Always select the first candidate when narrowing (#714).consult-locate-args
: Remove--existing
, which is not supported byplocate
on Debian stable.consult-ripgrep-args
: Add--search-zip
option to automatically search through compressed files. This will allow you to search Elisp files bundled with your Emacs installation. Move to an Elisp library viafind-library
, then invokeconsult-ripgrep
.- Drop obsolete
consult-apropos
. Alternatives:describe-symbol
in combination withembark-export
. See alsoconsult-info
andconsult-ripgrep
to search through info manuals and Elisp source code. - Drop obsolete
consult-multi-occur
. Alternative: Built-inmulti-occur
,multi-occur-in-matching-buffers
orconsult-line-multi
. - Drop obsolete
consult-file-externally
. The command has been moved to Embark under the nameembark-open-externally
.
- Version bump to update the Compat package dependency (29.1.0.1)
- Bugfixes
- Drop Selectrum support
- Deprecate
consult-file-externally
in favor ofembark-open-externally
- Deprecate
consult-multi-occur
. Themulti-occur
command should be improved upstream to take advantage ofcompleting-read-multiple
. Consult provides the commandconsult-line-multi
as an alternative. consult-history
: Use input as initial completion input
- Bugfixes
consult-line-multi
has been rewritten completely. The candidates are computed on demand based on the input. This reduces startup speed greatly. The command behaves likeconsult-grep
, but operates on buffers instead of files.- Add
consult--source-file-register
, and make the registers available inconsult-buffer
. Registers are often used as quick access keys for files, e.g.,(add-to-list 'register-alist '(?i file . "~/.emacs.d/init.el")))
. - Remove obsolete
consult-line-point-placement
consult-grep/find
: Always show directory in the prompt- Add variable
consult-yank-rotate
,consult-yank-from-kill-ring
rotates kill ring - Emacs 29:
consult-register
supportsbuffer
register type - Emacs 29: Support
outline-search-function
- Org 9.6: Support new
org-fold-core
API (both overlays and text-properties) - Support abbreviated file names in
recentf-list
, seerecentf-filename-handler
. - Deprecate
consult-apropos
- Bugfixes
- Allow
consult-*-args
to be a string, or a list of strings or expressions. - Introduce face
consult-highlight-match
to highlight grep matches in the completion buffer. - Highlight full matches in
consult-line
,consult-outline
,consult-*grep
andconsult-flymake
. - Remove face
consult-preview-error
. - Deprecate
consult-line-point-placement
in favor of more generalconsult-point-placement
, which is also used by theconsult-*grep
commands. consult-imenu
: Support imenu-after-jump-hook and non-defaultimenu-default-goto-function
consult-history
: Add support for history index variables, which are updated after selection.- Deprecate support for Selectrum in favor of Vertico. If you use Selectrum consider switching to Vertico, Icomplete, Mct or default completion.
- Bugfixes
- Allow
consult-flymake
to work across all buffers in a project - Remove deprecated
consult-completing-read-multiple
consult-grep/git-grep/ripgrep
: Add--fixed-strings
supportconsult-grep
: Respectgrep-find-ignored-directories/files
consult-org-heading
: Add tags to completion candidates- Add
consult-preview-excluded-files
consult-themes
: Support regexps
- Bugfixes
- Removed obsolete
consult-recent-file-filter
andconsult-preview-excluded-hooks
- Deprecate
consult-completing-read-multiple
. See #567 for details. - Add
consult--source-modified-buffer
- Bugfixes
- Drop Emacs 26 support.
consult-goto-line
: Usegoto-line-history
on Emacs 28.consult-customize
: Evaluate settings at runtime. This change makes it possible to usething-at-point
to overwrite the:initial
and:add-history
settings.- Rename
consult--read-config
toconsult--customize-alist
and change the format. The configuration is an alist. The car must be a command symbol. The cdr must be a plist of keys and expressions, where the expressions evaluate to the actual configuration values. - Mode hooks in previewed file buffers are delayed. The buffer is only fully initialized when leaving the minibuffer for recursive editing.
- Increase
consult-preview-raw-size
. - Replace
consult-preview-excluded-hooks
byconsult-preview-allowed-hooks
. - Add
consult-preview-variables
to bind variables for file preview. - BREAKING API CHANGE of
consult--read
,consult--prompt
,consult--multi
: The state function protocol changed. The function gets notified of more completion state changes. See the docstring ofconsult--with-preview
for details. - BREAKING API CHANGE of
consult--read
: The lookup function protocol changed. The function must now accept four or more arguments. - Remove unused
consult-preview-map
. - Remove unnecessary
consult-recent-file-filter
. Userecentf-exclude
instead. consult--multi
sources can have a:new
function to create candidates. When narrowed to a source, new candidates will be created by calling the respective:new
function.consult--multi
returns:match
information.:match
can be nil, t, or new, depending on if the candidate does not exist, exists or has been created.consult-locate
treats the input literally to take advantage of the db index.
- Bugfixes
- Deprecate
consult-project-root-function
in favor ofconsult-project-function
. - Preconfigure
consult-project-function
with a default function based on project.el. - Add
consult-project-buffer
, a variant ofconsult-buffer
restricted to the current project. - Add
consult-register-prefix
option. - Introduced a generic and extensible
consult-register
implementation. - Lazy marker creation in
consult-line/outline
(performance improvements)
- Bugfixes
consult-xref
: Prettify the group titles, usexref--group-name-for-display
if available.consult-focus-lines
: Thanks to @jdtsmith, the command is much faster and actually useable in large files.- Added Mct integration, auto refreshing of asynchronous Consult commands.
- Bugfixes
- Add
consult-recent-file-filter
- Rename
consult--source-(project-)file
toconsult-source-(project-)recent-file
consult-keep-lines
makes read-only buffers temporarily writable if confirmed
- Bugfixes
consult-register
: Add support for file register values.- Rename
consult-isearch
toconsult-isearch-history
. The command is a history browsing command and not a replacement for Isearch. consult-grep
support -[ABC] grep options- Add
consult-grep-context
face
- Bugfixes
- Removed obsolete
consult-project-imenu
andconsult-x-command
variables consult-grep
: Use--null
argument to support file names with colons
- Bugfixes only
consult-mark
,consult-global-mark
: Add optional marker list argumentconsult-completing-read-multiple
: New function- Rename
consult-project-imenu
toconsult-imenu-multi
- Add
consult-line-multi
to search multiple buffers - Removed obsolete
consult-yank
,consult-async-default-split
,consult-config
consult-ripgrep
: Use--smart-case
consult-grep/git-grep
: Use--ignore-case
- Deprecate
consult-<cmd>-command
in favor ofconsult-<cmd>-config.
consult-find
: Use regular expressions instead of globbing/wildcards by default. Due to the changes toconsult-find
it is not possible anymore to configurefd
as backend forconsult-find
. A replacement is documented in the wiki.consult-find/locate/man
: Add highlighting to the matching file/man page names.consult-grep/git-grep/ripgrep/find/locate
: Add support for multiple unordered patterns. Each of the input patterns must be matched. For example,consult-find
transforms the input “first second third” to “first -and second -and third”.consult-grep/git-grep/ripgrep
: Compute the highlighting based on the input, instead of relying on the ANSI-escaped output. This works better with multiple patterns, but may occasionally produce false highlighting.- Deprecate
consult-x-command
configuration variables in favor ofconsult-x-args
. The variables have been renamed since the configuration format changed. consult-async-split-styles-alist
: Remove thespace
splitting style, since it has been obsoleted by the support for multiple unordered patterns.
- Add
consult-preview-excluded-hooks
consult--read/consult--prompt
: Add:inherit-input-method
argument- Add debouncing support for preview
- Async commands: Do not fix vertical height in Selectrum.
consult-imenu
: Deduplicate items (some imenu backends generate duplicates).consult-org-heading
: Deduplicate items.consult-buffer-filter
: Hide more buffers.consult-line
: Matching line preview overlay only in the selected window.consult-yank/completion-in-region
: Insertion preview only in selected window.consult-yank
: Rename toconsult-yank-from-kill-ring
(Emacs 28 naming).consult-yank
commands:delete-selection-mode
support, added properties.consult-preview-at-point
,consult-preview-at-point-mode
: New command and minor mode to preview candidate at point in*Completions*
buffer.- Add
consult-async-split-style
andconsult-async-split-styles-alist
. consult-async-default-split
: Obsoleted in favor ofconsult-async-split-style
.- Deprecate
consult-config
in favor of newconsult-customize
macro. consult-buffer
: Enable previews for files and bookmarks by default.consult-buffer=/=consult--multi
: Add support for:preview-key
per source.consult-buffer
: Push visible buffers down in the buffer list.consult-flycheck
: Moved to separate repository prior to ELPA submission.- Submitted Consult to ELPA.
- Bugfixes
consult-buffer
: Respectconfirm-nonexistent-file-or-buffer
consult-widen-key
: Change default setting to twice theconsult-narrow-key
consult-flycheck
: Sort errors first- Added support for the Vertico completion system
- Consult adds disambiguation suffixes as suffix instead of as prefix now
for the commands
consult-line
,consult-buffer
, etc. This enables support for thebasic
completion style and TAB completion. consult--read
: The:title
function must accept two arguments now, the candidate string and a flag. If the flag is nil, the function should return the title of the candidate, otherwise the function should return the transformed candidate.consult-grep
and related commands: Strip the file name if grouping is used.consult-find/grep
: Ensure that the commands work with Trampconsult-outline
: Add narrowing- Added
consult-org-heading
andconsult-org-agenda
consult-line
: Highlight visual line during jump previewconsult-line
: Start search at current line, add configuration variableconsult-start-from-top
. The starting point can be toggled by the prefix argumentC-u
.
- Bugfixes
consult-keep/focus-lines
: Align behavior on regions with built-inkeep-lines
.consult-buffer
: Enable file sources only whenrecentf-mode
is enabledconsult--multi
: Add:default
flag, use flag forconsult--source-buffer
- Add
consult-grep-max-columns
to prevent performance issues for long lines - Add
consult-fontify-preserve
customization variable consult-line
: Quits Isearch, when started from an Isearch sessionconsult-register-load
: Align prefix argument handling withinsert-register
- Rename
consult-error
toconsult-compile-error
consult-compile-error
: Allow calling the command from any buffer, use the errors from all compilation buffers related to the current buffer.consult-man
: Handle aggregated entries returned by mandocconsult-completion-in-region
: Added preview andconsult-preview-region
face- Added
consult-completion-in-region-styles
customization variable - Added
consult-xref
. The function can be set asxref-show-xrefs-function
andxref-show-definitions-function
. - Added support for the candidate grouping function
x-group-function
- Bugfixes
consult-keep/focus-lines
: If region is active, operate only on the region.consult-register-format
: Do not truncate register strings.consult-buffer
multi sources: Ensure that original buffer is shown, when the currently selected source does not perform preview.- Add
consult-preview-raw-size
- Expose preview functionality for multi-source bookmarks/files
- Multi sources: Add
:enabled
,:state
and:action
fields consult-imenu
: Add faces depending on item types
- Bugfixes
- Introduce multi sources, reimplement
consult-buffer
with multi sources consult-isearch
: Add preview highlightingconsult-line
: Useisearch-string
when invoked from running isearch
- Bugfixes
- New command
consult-isearch
- New functions
consult-register-format
,consult-register-window
, removedconsult-register-preview
- Initial stable release