- Optimize frame repositioning.
- Auto completion code factored out to
corfu-auto.el. - Overall code simplifications.
- Optimized completion of non-exclusive Capfs.
- Use
when-let*instead ofwhen-let.
corfu-popupinfo-hide: Change default to nil.corfu-popupinfo-delay: Reduce delay when changing candidates to 0.5.corfu-popupinfo-margin-width: New customization variable.corfu-border-width: New customization variable.corfu-popupinfo: Faster scrolling speed.corfu-popupinfo: Fix Emacs 30 deprecation warning.- Fix Corfu popup position at the right edge of the parent frame.
- Work around Emacs bug#79792, where the
*Help*buffer is replaced unexpectedly. - Use new function
set-frame-size-and-position-pixelwiseon Emacs 31.
- Bugfixes.
- Add name to Corfu child frame to improve readability of
(frame-list). - TTY: Fix child frame misalignment due to internal border.
- TTY: Hide frame immediately.
- TTY: Adjust default faces for low-color terminals.
corfu-auto-trigger: New customization variable to trigger immediate completion after certain characters. See alsocape-capf-trigger.corfu-on-exact-match: Change default frominserttonil, which is more compatible with auto completion and template/snippet/abbreviation expansion.- Improve compatibility with Eglot. Fix a manual completion bug in the case when Eglot provided no matching candidates.
- Experimental: Use new function
set-frame-position-and-sizeif available.
- Require Emacs 29.1.
- Handle mixed tty/graphical displays.
- Do not enable Corfu in read-only buffers.
- Minor corrections and fixes.
- Guard Corfu hooks to automatically print stack traces in order to ease debugging.
corfu-history-duplicateandcorfu-history-decay: New customization options to adjust the rank of duplicate history elements, such that they appear earlier in the completion list.corfu-history-mode: Addcorfu-historytosavehist-minibuffer-history-variablesin order to save the history ifsavehist-modeis enabled.
corfu-quick: Ensure that popup does not move.
- Bugfixes only.
- Require Emacs 28.1.
- Use fringe to display scroll bar. This change improves performance and makes
sure that the scroll bar cannot be pushed outside the child frame by the
content. This affects for example
cape-emoji. - Improve suffix alignment.
- Remember popup width during completion to avoid width fluctuations. Basically the popup is only allowed to grow.
corfu-insert-separator: Jump back to prompt if a candidate is previewed.
- New customization variable
global-corfu-minibufferto enable Corfu in the minibuffer. - Unbind
C-aincorfu-map. This binding is only needed in modes which overrideC-ainstead of remappingmove-beginning-of-line. - Unbind
<tab>incorfu-map. This binding is only needed in modes which bind<tab>instead ofTAB, as was the case in old versions of Org. If you use such a mode, please report this as a bug for this mode. In the meantime you can use(keymap-set corfu-map "<tab>" #'corfu-complete). - Add new command
corfu-sendas alternative tocorfu-insert. corfu-popupinfo: Support bothfaceandfont-lock-facehighlighting.- Bump Compat dependency to Compat 30.
corfu-auto-commands: Adddelete-backward-char.
- Preserve currently selected candidate on further input. This matters if
candidate preview is disabled (
corfu-preview-current=nil). - Add new command
corfu-expandbound toM-TABby default. The command expands the input viacompletion-try-completion, for example thebasiccompletion style expands the common prefix of all candidates.
- Support the EXWM window manager.
- Optimization: Reduce auto completion timer overhead.
- Use
internal-border-widthinstead ofchild-frame-border-width. - Internal refactoring: Do not use buffer-local variables.
- Internal refactoring: Store
completion-extra-propertiesas part ofcompletion-in-region--data.
- Deduplicate candidates with respect to
equal-including-properties, such that backends can provide equal candidate strings, which only differ in their text properties and annotations. - Ensure that the string passed to the
:exit-functionretains the candidate properties, when possible. The properties are guaranteed to exist when a candidate is selected explicitly, but may be missing when candidates are completed in a stepwise manner. corfu-on-exact-match: Add valueshowto the customization option. With this setting the Corfu popup will be shown even if there is only a single matching candidate.
- Bug fixes.
corfu-quick: Use a slightly different scheme to support more candidates.corfu-reset: Quit immediately if input did not change.- Support
completion-lazy-hilit.
corfu-quick: Bugfix.corfu-mode-map: Add mode map.- Replace
corfu-excluded-modeswithglobal-corfu-modes, the Emacs 28 convention for globalized minor modes.
- Bugfixes.
- Improve child frame display code,
corfu--popup-showtakes aposnargument. - Ensure that the popup font matches the font of the parent frame.
- Close popup when window selection changes.
- Remove
corfu-history-length. Instead set thehistory-lengthproperty ofcorfu-historyvariable. corfu-info-documentation,corfu-info-location: Make buffer and window persistent if called with prefix argument.
- Drop obsolete
corfu-preselect-first. corfu-popupinfo-delayandcorfu-echo-delay: Remove support for valuet. Instant updates are not recommended. It is still possible to use a small value for the delay.- Rename
corfu-excluded-modestocorfu-exclude-modes(Naming convention). - Remove call to
undo-boundary, which caused issues with auto completion.
corfu-popupinfo: Take more text into account when computing popup width.corfu-popupinfo: Change keybindings, remapcorfu-info-documentation/location.corfu-popupinfo: Add commandscorfu-popupinfo-beginning/end.corfu-popupinfo: Improve popup placement.- Add
corfu-prompt-beginningandcorfu-prompt-endcommands. - Add
corfu-preselectoption, deprecatecorfu-preselect-first. - Use
cl-defgenericinternally as mechanism to allow extensions to override functionality, e.g., the candidate formatting and display.
- Bugfixes
- Popup frame code updated for Emacs 29. Please report any issues.
corfu-popupinfo-direction: Variable must be a list of directions.- Support height adjustments of
corfu-defaultface
corfu-popupinfo: Bugfixes
corfu-echo,corfu-quick: Bugfixes for interaction issue.
corfu-popupinfo: Bugfixes and improvements.
- BREAKING: Extract the
corfu-echoextension fromcorfu.el. In order to see echo messages, enablecorfu-echo-mode. You probably want to enable eithercorfu-echo-modeorcorfu-popupinfo-mode. - BREAKING: Rename
corfu-echo-documentationtocorfu-echo-delay. - Add
corfu-popupinfoextension to display candidate documentation and location in a small child frame next to the candidate menu. This extension has been contributed by Yuwei Tian who assigned copyright to the FSF. The extension supersedes Yuwei’scorfu-docpackage.
- Start of changelog.