- Bugfixes.
- Improve default completion UI support on Emacs 31.
- Remove
consult-separatorface. - Remove obsolete
consult-preview-at-point-modeandconsult-preview-at-point.
- BREAKING CHANGE: The syntax to pass options to
consult-ripgrep,consult-fdetc. has changed. The overall syntax should be familiar since it resembles the usual shell syntax. The input after a dash is treated as options. In order to search for a token starting with a dash, escape the dash with a backslash. Input after two standalone dashes is treated as search pattern. Examples:#word -C2or#-C2 -- word: Grep forwordwith a context of two lines.#\-Cor#-- -C: Grep for-C.#--newer 1h: Find files which are newer than 1h withconsult-fd.
- New face
consult-async-optionwhich is used to highlight options passed to asynchronous commands. consult-fd,consult-find: Start search if either pattern or options are given.- Remove obsolete
consult--source-*variables. Use the public variablesconsult-source-*instead.
- Improve default completion UI support on Emacs 31.
- Make
consult-preview-at-point-modeandconsult-preview-at-pointobsolete. The preview functionality in completion buffers is enabled automatically.
consult-line,consult-line-multi,consult-outline: Use lazy fontification for completion candidates. This greatly reduces the startup cost of the commands.consult-linebecomes usable on very large files now, up to files like the SQLite amalgamation. Furthermoreconsult-line-multicandidates are fontified, which was not the case before.consult-focus-lines: Do not fontify buffer eagerly to reduce startup cost. The focused lines are fontified lazily when they come into sight.consult--read: Stop providing anannotation-function. Rely on theaffixation-functiononly.
- Make
consult-source-*variables public. These variables are commonly customized viaconsult-customizeand they are referenced by the customizable variableconsult-buffer-sources. Keep obsoleteconsult--source-*variable aliases.
- Minor fixes.
- Require Emacs 29.
consult-info: Reuse current info buffer when jumping to a search result.
- New command
consult-grep-matchbased onconsult-compile-error, which shows Grep matches of related Grep buffers. consult-compile-error: Exclude Grep matches. Show only compilation errors from compilation buffers.consult-compile-error: Removegnarrow key.
consult-buffer-list-function: New customizable variable to support frame or tab isolation (seetab-bar-mode). Set toconsult--frame-buffer-listfor frame isolation. Alternatively use buffer functions provided by packages like beframe.consult--source-other-buffer: Buffer source which lists all buffers which missing from the list returned byconsult-buffer-list-function. If buffers are restricted to the current frame or tab by default, then this source will list the buffers belonging to other frames or tabs.
consult--read,consult--prompt: Accept a:commandkeyword argument which specifies the current command symbol to lookup the customization (seeconsult-customize). This change fixes an issue inembark-consult.
consult--source-buffer-register: New source for buffer registers.consult--jump-ensure-buffer: Reuse window if possible.consult-compile-error: Add prefix argument to jump to error message in the compilation buffer instead of error location.consult--read,consult--prompt: Add:commandkeyword argument. Avoid overridingthis-commandforconsult-xrefandconsult-completion-in-region.
consult-register-store: AddM-baction to store the buffer in a register.consult-compile: Ignore messages without a location.consult-compile: Introduce keygfor grep locations.
- Bugfix:
consult--readaccepts list of symbols. - Bugfix:
consult-themehandles invalid themes gracefully.
- Add
consult-info-defineto conveniently define customconsult-info-*commands to search through a subset of info manuals. consult-focus-lines: Add mode line indicator if active.consult-grep: Preserve empty context lines.consult-register-store: Support Dired buffers.
- Remove obsolete
consult--async-*APIs. - File preview: Ensure that remote files do not slow down preview.
- File preview: Do not preview gpg files.
consult-yank-pop,consult-history: Respect display properties when previewing to avoid leaking hidden data.consult-completion-in-region: Auto-detect completion UI.consult-completion-in-region: Improve handling of single candidates.
- New features:
consult--multi: Add support for asynchronous sources.consult-man: Add preview.
- BREAKING CHANGE: New async API
- Async functions must have the uniform curried form
(lambda (sink) (lambda (action) ...)and are composed withconsult--async-pipeline. See the docstring ofconsult--async-pipelinefor details. consult--read: New:async-wrapkeyword argument.consult--multi: Add support for:asyncsources.consult--async-min-input: New async function which enforces a minimum input length. The input length check has been removed fromconsult--async-split.consult--async-transform: Macro converted to function.consult--process-collection: New function replacingconsult--async-command. The function accepts keyword arguments to customize the pipeline.consult--dynamic-collection: The function accepts more keyword arguments to customize the pipeline.consult--async-refresh-timerandconsult--async-refresh-immediate: Replaced byconsult--async-refreshwith aDELAYargument.consult--async-split-thingatptandconsult--async-split-initial: Removed sinceconsult--readautomatically inserts the splitter prefix if needed.
- Async functions must have the uniform curried form
- Minor changes:
- Remove obsolete
consult-yank-rotate. - Add customizable variable
consult-async-indicator. consult-completion-in-region: When inside minibuffer, use minibuffer content as prompt.
- Remove obsolete
- Require Emacs 28.1.
consult-grep,consult-findand similar commands: Ask for project first, when invoked with double prefix argumentC-u C-u.- Deprecate
consult-yank-rotatein favor ofyank-from-kill-ring-rotate. consult-grep-max-columns: Support valuenilto disable truncation.consult-line: Enforce global completion style settings for compatibility with buffer-local completion style settings, which may be used by Corfu.- Support the value 0 for
consult-async-min-input. - Remove special
org-foldcode. Setorg-fold-core-styletooverlaysif unfolding in Org files does not work for you. consult-info: Support sub files.consult-buffer,consult-project-buffer: Add sources for known project roots.consult--multi: Support multiple narrow keys per source. Used by the project buffer and project recent file source.consult--async-sink: The new actioncancelwas added to the async protocol.consult--read: Add new keyword argument:initial-narrow.
consult-preview-excluded-buffers: New customization variable.consult-fd: Support multiple paths.- Bump Compat dependency to Compat 30.
- Emacs 30 bug fix: Ensure that font locking is enabled when previewing files.
consult-preview-allowed-hooks: Global minor modes, which should be enabled during preview, can be added to this list. See the README for examples.consult-xref: Bug fix: Do not error when project root directory is nil.consult-fd: Bug fix: Avoid confusion of input pattern with options by prefixing the input pattern with--and.consult--buffer-sort-visibility: Bug fix: Only add current buffer to sorted list, if already present in the original list.
consult-xref: Compatibility with xref.el in Emacs 30.consult-grep(and similar): Preserve files which are already open literally and do not reopen them in normal mode.consult-preview-allowed-hooks: Run delayed mode hooks listed in this variable during preview.consult--buffer-query: Add buffer-list keyword argument.
- Bugfix
consult-buffer: Handle buffer renaming during minibuffer completion gracefully, by attaching the actual buffer objects to the completion candidate strings. - Bugfix
consult-register: Ignore marker registers pointing to dead buffers.
- Bugfix: File preview: Ensure that binary files are not previewed partially.
Otherwise
pdf-view-modemay observe corrupted PDF files. consult--async-refresh-timer: Optimize timer reuse and efficiency. This change improves the performance of commands likeconsult-ripgrepfor small values ofconsult-async-refresh-delay.consult-completion-in-region: Remove:cycle-thresholdand:completion-stylescustomization options.
consult-bookmark-narrow: More flexible grouping which supports multiple bookmark handlers per group.- Bugfix: Ensure that preview is always executed in a non-minibuffer window.
- Bugfix: File preview: Do not preview
hexl-modebuffers. - Bugfix: File preview: use
error-message-stringto access error string. - Bugfix: Buffer preview: Retrieve original window correctly.
- Bugfix: Fix
consult-global-markforembark-export.
consult-buffer: Bugfix. Ensure that null completion works properly.- File preview: Add indication if previewed file got truncated.
- Bugfixes:
consult-xref: Do not error for an empty location list.consult--read: Catch null completion if require-match is non-nil.consult--multi: Ensure that :new action is invoked on visible source.
- File preview: Check for long lines when previewing files partially.
- Use
minibuffer-local-filename-syntaxandread-file-name-completion-ignore-casefor directory prompt of theconsult-grepandconsult--findfamily of commands. - Remove obsolete variables
consult-preview-max-sizeandconsult-preview-raw-size.
- Bugfixes.
- Preview large files partially. Add new customization variables
consult-preview-partial-chunkandconsult-preview-partial-limit. This new feature is experimental. Please report any issues you observe. - Obsoleted
consult-preview-max-sizeandconsult-preview-raw-size. consult-buffer-other-tab: New command.consult-fd: New command based on the fastfd/fdfindsearch utility.consult-outline: New prefix argument to specify initial narrowing level.consult-org-heading: Specify categoryorg-headingsuch that Embark provides appropriate Org heading actions.consult-org-heading: Add annotation.consult-locate: Split input into multiple words.- Remove unreliable
consult--maybe-recenter. - Save input history even when using
embark-exportor when aborting from a command via C-g. This change affects commands likeconsult-lineandconsult-grep. - Unify history of
consult-line,consult-keep-linesandconsult-focus-lines.
- Bugfixes.
consult--readnow accepts programmable completion tables as argument, e.g.,completion-table-dynamicorcompletion--file-name-table. This allows you to reuse existing completion tables to write completion commands enhanced with Consult candidate preview.- Replace
consult-preview-cursorface withcursor-highlight-mark. - Change calling convention of
consult-focus-linesandconsult-keep-lines. - The regexps in
consult-buffer-filterare matched case sensitively now. Similarly, theINCLUDEandEXCLUDEarguments ofconsult--buffer-queryare also case sensitive. - Do not preview remote files by default, see
consult-preview-excluded-files. - Use
consult--maybe-recenterinstead ofrecenterinconsult-after-jump-hook. consult-goto-line: Supportline:columninput.
- Bugfixes.
consult-org-heading: Support tag inheritance.- Use pure
consult--fast-abbreviate-file-namefunction to abbreviate file names inconsult-bufferandconsult-recent-file. This ensures that abbreviation does not access the file system (or worse remote hosts via Tramp) and is always fast. The downside is that some paths may not get abbreviated. - Introduce buffer sources
consult--source-project-buffer-hiddenandconsult--source-project-recent-file-hidden. Set the buffer sources ofconsult-projecttoconsult--source-project-bufferandconsult--source-project-recent-fileto ease customization. consult-buffer: Explicitly savewindow-next-buffersandwindow-prev-buffers.- When previewing files literally (
consult-preview-raw-size), set the multi byte flag of the previewed buffer, such that UTF-8 buffers are not garbled. - Do not create preview cursor overlay. Instead display the actual point by
ensuring that
cursor-in-non-selected-windowsis set.
- 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-keyand the:preview-keyof sources and passed as keyword argument toconsult--read. See the example configurations in the manual. - BREAKING: Remove the “.” argument from
consult-grep-argsandconsult-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-bufferandconsult-isearch-history: Align annotations dynamically depending on candidate width, instead of computing the alignment beforehand.- Add the full path as
help-echoproperty to abbreviated directory paths and project names. Enabletooltip-modeand 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-keyand the:preview-keyof sources and passed as keyword argument toconsult--read. See the example configurations in the manual. - Add
consult-infocommand (#634, #727). consult-buffer: Always select the first candidate when narrowing (#714).consult-locate-args: Remove--existing, which is not supported byplocateon Debian stable.consult-ripgrep-args: Add--search-zipoption 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-symbolin combination withembark-export. See alsoconsult-infoandconsult-ripgrepto search through info manuals and Elisp source code. - Drop obsolete
consult-multi-occur. Alternative: Built-inmulti-occur,multi-occur-in-matching-buffersorconsult-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-externallyin favor ofembark-open-externally - Deprecate
consult-multi-occur. Themulti-occurcommand should be improved upstream to take advantage ofcompleting-read-multiple. Consult provides the commandconsult-line-multias an alternative. consult-history: Use input as initial completion input
- Bugfixes
consult-line-multihas 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-ringrotates kill ring - Emacs 29:
consult-registersupportsbufferregister type - Emacs 29: Support
outline-search-function - Org 9.6: Support new
org-fold-coreAPI (both overlays and text-properties) - Support abbreviated file names in
recentf-list, seerecentf-filename-handler. - Deprecate
consult-apropos
- Bugfixes
- Allow
consult-*-argsto be a string, or a list of strings or expressions. - Introduce face
consult-highlight-matchto highlight grep matches in the completion buffer. - Highlight full matches in
consult-line,consult-outline,consult-*grepandconsult-flymake. - Remove face
consult-preview-error. - Deprecate
consult-line-point-placementin favor of more generalconsult-point-placement, which is also used by theconsult-*grepcommands. consult-imenu: Support imenu-after-jump-hook and non-defaultimenu-default-goto-functionconsult-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-flymaketo work across all buffers in a project - Remove deprecated
consult-completing-read-multiple consult-grep/git-grep/ripgrep: Add--fixed-stringssupportconsult-grep: Respectgrep-find-ignored-directories/filesconsult-org-heading: Add tags to completion candidates- Add
consult-preview-excluded-files consult-themes: Support regexps
- Bugfixes
- Removed obsolete
consult-recent-file-filterandconsult-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-historyon Emacs 28.consult-customize: Evaluate settings at runtime. This change makes it possible to usething-at-pointto overwrite the:initialand:add-historysettings.- Rename
consult--read-configtoconsult--customize-alistand 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-hooksbyconsult-preview-allowed-hooks. - Add
consult-preview-variablesto 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-previewfor 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-excludeinstead. consult--multisources can have a:newfunction to create candidates. When narrowed to a source, new candidates will be created by calling the respective:newfunction.consult--multireturns:matchinformation.:matchcan be nil, t, or new, depending on if the candidate does not exist, exists or has been created.consult-locatetreats the input literally to take advantage of the db index.
- Bugfixes
- Deprecate
consult-project-root-functionin favor ofconsult-project-function. - Preconfigure
consult-project-functionwith a default function based on project.el. - Add
consult-project-buffer, a variant ofconsult-bufferrestricted to the current project. - Add
consult-register-prefixoption. - Introduced a generic and extensible
consult-registerimplementation. - Lazy marker creation in
consult-line/outline(performance improvements)
- Bugfixes
consult-xref: Prettify the group titles, usexref--group-name-for-displayif 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-)filetoconsult-source-(project-)recent-file consult-keep-linesmakes read-only buffers temporarily writable if confirmed
- Bugfixes
consult-register: Add support for file register values.- Rename
consult-isearchtoconsult-isearch-history. The command is a history browsing command and not a replacement for Isearch. consult-grepsupport -[ABC] grep options- Add
consult-grep-contextface
- Bugfixes
- Removed obsolete
consult-project-imenuandconsult-x-commandvariables consult-grep: Use--nullargument 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-imenutoconsult-imenu-multi - Add
consult-line-multito search multiple buffers - Removed obsolete
consult-yank,consult-async-default-split,consult-config consult-ripgrep: Use--smart-caseconsult-grep/git-grep: Use--ignore-case- Deprecate
consult-<cmd>-commandin favor ofconsult-<cmd>-config. consult-find: Use regular expressions instead of globbing/wildcards by default. Due to the changes toconsult-findit is not possible anymore to configurefdas 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-findtransforms 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-commandconfiguration variables in favor ofconsult-x-args. The variables have been renamed since the configuration format changed. consult-async-split-styles-alist: Remove thespacesplitting 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-methodargument- 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-yankcommands:delete-selection-modesupport, 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-styleandconsult-async-split-styles-alist. consult-async-default-split: Obsoleted in favor ofconsult-async-split-style.- Deprecate
consult-configin favor of newconsult-customizemacro. consult-buffer: Enable previews for files and bookmarks by default.consult-buffer=/=consult--multi: Add support for:preview-keyper 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-bufferconsult-widen-key: Change default setting to twice theconsult-narrow-keyconsult-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 thebasiccompletion style and TAB completion. consult--read: The:titlefunction 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-grepand 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-headingandconsult-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-modeis enabledconsult--multi: Add:defaultflag, use flag forconsult--source-buffer- Add
consult-grep-max-columnsto prevent performance issues for long lines - Add
consult-fontify-preservecustomization variable consult-line: Quits Isearch, when started from an Isearch sessionconsult-register-load: Align prefix argument handling withinsert-register- Rename
consult-errortoconsult-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-regionface- Added
consult-completion-in-region-stylescustomization variable - Added
consult-xref. The function can be set asxref-show-xrefs-functionandxref-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-buffermulti 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,:stateand:actionfields consult-imenu: Add faces depending on item types
- Bugfixes
- Introduce multi sources, reimplement
consult-bufferwith multi sources consult-isearch: Add preview highlightingconsult-line: Useisearch-stringwhen invoked from running isearch
- Bugfixes
- New command
consult-isearch - New functions
consult-register-format,consult-register-window, removedconsult-register-preview
- Initial stable release