#+title: cape.el - Changelog #+author: Daniel Mendler #+language: en * Development - ~cape-file~: Add location metadata for file preview via ~corfu-popupinfo-mode~. * Version 2.3 (2025-11-15) - Mark ~cape-capf-purify~ and ~cape-wrap-purify~ as obsolete. - ~cape-capf-sort~: Make ~SORT~ function argument optional. If the ~SORT~ argument is nil or not given, the completion UI sorting will take over. - ~cape-capf-trigger~, ~cape-wrap-trigger~: New Capf transformer for trigger characters. The Capf will only complete if the trigger character occurs before point. See also ~corfu-auto-trigger~. - ~cape-capf-choose~, ~cape-wrap-choose~: New Capf transformer to choose from multiple Capfs. * Version 2.2 (2025-10-13) - Minor improvements. - Require Emacs 29. * Version 2.1 (2025-05-21) - Simplify ~cape-dabbrev~ configuration. - ~cape-dabbrev-buffer-function~: New variable to configure the buffers searched by ~cape-dabbrev~. - ~cape-dabbrev-check-other-buffers~: Removed in favor of ~cape-dabbrev-buffer-function~. - ~cape-dabbrev-min-length~: Remove variable, since it leads to confusion due to missing completion candidates. - ~cape-same-mode-buffers~: New public function, renamed from ~cape--buffers-major-mode~. - ~cape-text-buffers~: New function. - ~cape-dabbrev-buffer-function~, ~cape-line-buffer-function~: Use ~cape-same-mode-buffers~. * Version 2.0 (2025-03-11) - ~cape-file~: Improve handling of environment variables as part of the path, e.g., ~$HOME~. - ~cape-company-to-capf~: Handle updated return value convention of the ~prefix~ action of Company backends. * Version 1.9 (2025-01-28) - ~cape-capf-super~: Use extra metadata instead of completion table metadata. - ~cape-emoji~: Improve emoji name normalization. * Version 1.8 (2024-12-22) - Require Emacs 28.1. - ~cape-capf-properties~: Add ~:strip~ keyword to strip a Capf of its metadata. - ~cape-capf-sort~: New function. - Add ~:display-sort-function~ and ~:cycle-sort-function~ functions to the various Capf property lists. * Version 1.7 (2024-08-26) - ~cape-elisp-symbol~: Add wrappers only if not yet there. - ~cape-elisp-symbol~: Add wrappers in ~emacs-lisp-mode~ inside strings/comments. * Version 1.6 (2024-07-23) - Add ~cape-prefix-map~ for simplified configuration. - ~cape-wrap-super~: Bugfix. Ensure that annotation functions are called with candidates belonging to the originating Capf. - Disallow ~cape-company-to-capf~ if ~company-mode~ is enabled. - Bump Compat dependency to Compat 30. * Version 1.5 (2024-04-12) - ~cape-file-prefix~: New variable to customize file name completion prefix. If the input matches one of the configured prefixes, file completion is started. - ~cape-capf-super~: Support Capfs which return different prefix lengths. This change improves compatibility with Company. - ~cape-capf-super~: Add support for the ~:with~ keyword. See the docstring of ~cape-wrap-super~ for details. This change improves compatibility with Company. - ~cape-capf-super~: The resulting Capf is exclusive if one of the main Capfs (the Capfs listed before the ~:with~ keyword) is exclusive. - ~cape-capf-super~: If the resulting Capf is non-exclusive, one of the main Capfs must have returned candidates, in order for the resulting Capf to return candidates. - ~cape-capf-super~: Normalize plists which are attached to candidates. This helps with deduplication, such that only candidates with different annotations or icons appear twice. - ~cape-dabbrev-check-other-buffers~: Support function as customization value. The function should return the exact list of buffers to search. * Version 1.4 (2024-03-08) - =cape-char=: Look back from point, instead of using the match at point. This makes sure that double quotes of a string literal behind point are not included in the completion. - =cape-capf-inside-faces=: Use the face before point to handle completion at the end of comments more gracefully. * Version 1.3 (2024-02-14) - Add =cape-wrap-inside-code= and =cape-capf-inside-code=. * Version 1.2 (2024-01-23) - =cape-capf-super=: Bugfixes. * Version 1.1 (2023-12-27) - =cape-capf-super=, =cape-company-to-capf=: Support duplicate candidates. - Remove obsolete function aliases ~cape-super-capf~, ~cape-interactive-capf~ and ~cape-symbol~. * Version 1.0 (2023-12-01) - =cape-emoji=: New Capf available on Emacs 29 and newer. - =cape-wrap-debug=, =cape-capf-debug=: New Capf transformers to add debug messages to a Capf. - =cape-wrap-passthrough=, =cape-capf-passthrough=: New Capf transformers to defeat completion style filtering. - =cape-capf-inside-faces=, =cape-wrap-inside-faces=: New transformer - Rename =cape-super-capf= to =cape-capf-super=. Add =cape-wrap-super= for consistency with other Capf combinators. - Rename =cape-interactive-capf= to =cape-capf-interactive= for consistency with other Capf combinators. - Rename =cape-symbol= to =cape-elisp-symbol=. * Version 0.17 (2023-08-14) - Bugfixes. - =cape-dict=: Always use grep, remove =cape-dict-use-grep=. - =cape-dict=: Add =cape-dict-limit=. - Remove obsolete alias =cape-ispell=. - Generalize =cape--cached-table=. The candidate computation function must return a pair of a predicate function and the list of candidates. * Version 0.16 (2023-07-02) - =cape-dabbrev=: Respect =dabbrev-abbrev-char-regexp= and =dabbrev-abbrev-skip-leading-regexp=. - =cape-file=: Quote file names in comint/eshell buffers. * Version 0.15 (2023-04-17) - Bugfixes * Version 0.14 (2023-04-13) - =cape-wrap-buster=, =cape-capf-buster= and =cape-company-to-capf=: The argument VALID must be a function taking two arguments, the old and new input. It should return nil if the input must be considered invalid such that the candidates must be recomputed. - =cape-ispell=: Deprecate in favor of improved =cape-dict=. Note that =cape-ispell= and =ispell-lookup-words= did not really consult =ispell= or =aspell=, but only grep through the word list specified by =ispell-alternate-dictionary=. - =cape-dict-file=: Support multiple dictionary files or a function returning one or more files. - =cape-dict=, =cape-dabbrev=: Replace case depending on initial input. - =cape-dict-case-replace=: New variable to configure case replacement, similar to =dabbrev-case-replace=. - =cape-dict-case-fold=: New variable to configure if case is ignored during search and completion. - =cape-elisp-block=: Complete Elisp in Org or Markdown code block. This Capf is particularly useful for literate Emacs configurations. * Version 0.13 (2023-02-15) - Start of changelog.