All notable changes to this project will be documented in this file. The format is based on Keep a Changelog.
- Improved evil-mode's search history integration so it will now use
the translations defined in
ctrlf-style-alist
(#124).
- Previously
C-g
would fail to reset point to its original position in some cases. This has been fixed (#110, #114).
- You can now customize more faces:
ctrlf-minibuffer-message-face
andctrlf-in-buffer-message-face
, both of which inherit fromctrlf-message-face
, which defaults to inheriting fromminibuffer-prompt
as per previous behavior (#99).
- The window is now less likely to randomly get its scroll position changed when exiting a search (#113).
- Add a new matching style for matching words (#61).
- Add ability to customize default and alternative search styles
through
ctrlf-default-search-style
andctrlf-alternate-search-style
(#83). - Keybinding customization is now available via the
ctrlf-mode-map
and thectrlf-minibuffer-mode-map
keymaps. Existing customization viactrlf-mode-bindings
andctrlf-minibuffer-bindings
are still available at the moment to remain backward compatibility but will be removed in a future release (#62).
- When
ctrlf-auto-recenter
is enabled, recentering only begins after you start typing your search query, not immediately on typingC-s
. This way, if you abort the search immediately, your window is not scrolled (#93).
- Since version 1.2, CTRLF had a number of bugs related to third-party
minibuffer bindings. Specifically, it would override
C-s
andC-r
bindings in the minibuffer even when that was totally inappropriate. This was due to a side effect of the fix for #51 (where CTRLF would be overridden by globalminibuffer-local-map
bindings established by e.g. Helm). We now have a more clever hack that solves both problems. The new version restores the previous use ofremap
for CTRLF mode bindings, which means your customizations of Isearch bindings will again carry over automatically to CTRLF by default. Furthermore, CTRLF bindings will override other bindings in the minibuffer if and only if you are inside an active CTRLF session. Solves #52, #67, and #80. - Window scroll positions would sometimes be messed up when a buffer was visible in multiple windows. This has been fixed ([#81]).
- When a regexp translation function throws an error, we now treat it like an invalid regexp rather than CTRLF breaking and not responding to further inputs.
- CTRLF previously would crash when moving point over invisible text
that had a custom
isearch-open-invisible-temporary
property. This has been fixed (#100, #101).
- New user option
ctrlf-go-to-end-of-match
, if non-nil, puts point at the end of a match when exiting a search, rather than the beginning (#66, #73)
- Compatibility with evil-mode's jump list and search history features was included in #59. This integration happens automatically and requires no user input/customisation.
- More Isearch compatibility was added in #48. Additions include:
ctrlf-occur
,ctrlf-forward-symbol
,ctrlf-forward-symbol-at-point
,ctrlf-toggle-regexp
,ctrlf-toggle-symbol
, and matching Isearch bindings for those. - Autoload
ctrlf-forward-fuzzy
,ctrlf-forward-fuzzy-regexp
,ctrlf-backward-fuzzy
, andctrlf-backward-fuzzy-regexp
(#50). - We bind
C-s
,C-r
,C-M-s
, andC-M-r
directly instead of usingremap
, which means that bindings from unrelated packages may not conflict with them. If you remapped the Isearch commands in your configuration, this means you will need to updatectrlf-mode-bindings
. See #51. - It is now possible to disable
ctrlf-mode
buffer-locally by means ofctrlf-local-mode
(#52, #53).
- Previously, bindings would not work correctly during a CTRLF search if it was performed immediately after Emacs started up, before using any other command that uses the minibuffer. This has now been fixed (#55).
- It is now possible to use the standard Isearch bindings within the minibuffer to search the current user input and the minibuffer history. Note that this functionality is not compatible with Selectrum. See #41.
- We now disable
blink-matching-paren
automatically when entering CTRLF, because (for some reason) it usessit-for
to display its blink and this of course causes search results to be delayed (#45).
- CTRLF previously caused an error during Emacs startup unless the
map
library was already loaded. This has been fixed (#49). - Several corner cases relating to minibuffer overlays have been fixed by improving the generality of the overlay management code (#46).
- Package
ctrlf
- Minor mode
ctrlf-mode
- Faces:
ctrlf-highlight-active
ctrlf-highlight-passive
ctrlf-highlight-line
- Interface user options:
ctrlf-highlight-current-line
ctrlf-auto-recenter
ctrlf-show-match-count-at-eol
ctrlf-mode-bindings
ctrlf-minibuffer-bindings
ctrlf-zero-length-match-width
- Navigation commands:
ctrlf-next-match
ctrlf-previous-match
ctrlf-first-match
ctrlf-last-match
ctrlf-next-page
ctrlf-previous-page
ctrlf-cancel
- Utility commands:
ctrlf-change-search-style
ctrlf-toggle-case-fold-search
ctrlf-recenter-top-bottom
- Search commands:
ctrlf-forward-literal
ctrlf-backward-literal
ctrlf-forward-regexp
ctrlf-backward-regexp
ctrlf-forward-fuzzy
ctrlf-backward-fuzzy
ctrlf-forward-fuzzy-regexp
ctrlf-backward-fuzzy-regexp
- Low-level user options, variables, and functions:
ctrlf-style-alist
ctrlf-search-history
ctrlf-forward
ctrlf-backward
- Functions for use in configuration:
ctrlf-split-fuzzy
ctrlf-translate-fuzzy-literal
ctrlf-translate-fuzzy-regexp
ctrlf-no-uppercase-literal-p
ctrlf-no-uppercase-regexp-p