[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
feature/minibuffer-completion-enhancements c80749e4bee 18/35: ; Adapt so
From: |
Eshel Yaron |
Subject: |
feature/minibuffer-completion-enhancements c80749e4bee 18/35: ; Adapt some recent changes around completion categories |
Date: |
Sun, 21 Jan 2024 03:54:30 -0500 (EST) |
branch: feature/minibuffer-completion-enhancements
commit c80749e4bee5224d53c81dfb8caeb01c5ca4f26a
Author: Eshel Yaron <me@eshelyaron.com>
Commit: Eshel Yaron <me@eshelyaron.com>
; Adapt some recent changes around completion categories
* doc/lispref/minibuf.texi (Completion Variables):
* lisp/minibuffer.el (completion-extra-properties)
(completion-category-defaults): Mention 'narrow-completions-function'.
(completion-category-overrides): Do that, and improve Custom type.
---
doc/lispref/minibuf.texi | 3 ++
lisp/minibuffer.el | 78 +++++++++++++++++++++++-------------------------
2 files changed, 41 insertions(+), 40 deletions(-)
diff --git a/doc/lispref/minibuf.texi b/doc/lispref/minibuf.texi
index 2e77f252362..d2cf1ee9215 100644
--- a/doc/lispref/minibuf.texi
+++ b/doc/lispref/minibuf.texi
@@ -2015,6 +2015,9 @@ The function to add annotations to completions.
@item affixation-function
The function to add prefixes and suffixes to completions.
+
+@item narrow-completions-function
+Function that reads and returns a completions predicate.
@end table
@noindent
diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el
index 7eb68737e64..b948cabdd3d 100644
--- a/lisp/minibuffer.el
+++ b/lisp/minibuffer.el
@@ -1172,6 +1172,7 @@ an association list that can specify properties such as:
- `group-function': function for grouping the completion candidates.
- `annotation-function': function to add annotations in *Completions*.
- `affixation-function': function to prepend/append a prefix/suffix.
+- `narrow-completions-function': function to restrict the completions list.
Categories are symbols such as `buffer' and `file', used when
completing buffer and file names, respectively.
@@ -1193,6 +1194,7 @@ possible values are the same as in `completions-sort'.
- `group-function': function for grouping the completion candidates.
- `annotation-function': function to add annotations in *Completions*.
- `affixation-function': function to prepend/append a prefix/suffix.
+- `narrow-completions-function': function for narrowing the completions list.
See more description of metadata in `completion-metadata'.
Categories are symbols such as `buffer' and `file', used when
@@ -1201,46 +1203,40 @@ completing buffer and file names, respectively.
If a property in a category is specified by this variable, it
overrides the default specified in `completion-category-defaults'."
:version "25.1"
- :type `(alist :key-type (choice :tag "Category"
- (const buffer)
- (const file)
- (const unicode-name)
- (const bookmark)
- symbol)
- :value-type
- (set :tag "Properties to override"
- (cons :tag "Completion Styles"
- (const :tag "Select a style from the menu;" styles)
- ,completion--styles-type)
- (cons :tag "Completion Cycling"
- (const :tag "Select one value from the menu." cycle)
- ,completion--cycling-threshold-type)
- (cons :tag "Cycle Sorting"
- (const :tag "Select one value from the menu."
- cycle-sort-function)
- (choice (function :tag "Custom function")))
- (cons :tag "Completion Sorting"
- (const :tag "Select one value from the menu."
- display-sort-function)
- (choice (const :tag "Use default" nil)
- (const :tag "No sorting" identity)
- (const :tag "Alphabetical sorting"
- minibuffer-sort-alphabetically)
- (const :tag "Historical sorting"
- minibuffer-sort-by-history)
- (function :tag "Custom function")))
- (cons :tag "Completion Groups"
- (const :tag "Select one value from the menu."
- group-function)
- (choice (function :tag "Custom function")))
- (cons :tag "Completion Annotation"
- (const :tag "Select one value from the menu."
- annotation-function)
- (choice (function :tag "Custom function")))
- (cons :tag "Completion Affixation"
- (const :tag "Select one value from the menu."
- affixation-function)
- (choice (function :tag "Custom function"))))))
+ :type `(alist
+ :key-type (choice :tag "Category"
+ (const buffer)
+ (const file)
+ (const unicode-name)
+ (const bookmark)
+ symbol)
+ :value-type (set :tag "Properties to override"
+ (cons :tag "Completion Styles"
+ (const styles) ,completion--styles-type)
+ (cons :tag "Cycling threshold"
+ (const cycle)
+ ,completion--cycling-threshold-type)
+ (cons :tag "Cycle order"
+ (const cycle-sort-function) function)
+ (cons :tag "Sorting for display"
+ (const display-sort-function)
+ (choice
+ (const :tag "Default sorting" nil)
+ (const :tag "No sorting" identity)
+ (const :tag "Alphabetical"
+ minibuffer-sort-alphabetically)
+ (const :tag "Historical"
+ minibuffer-sort-by-history)
+ (function :tag "Custom function")))
+ (cons :tag "Grouping"
+ (const group-function) function)
+ (cons :tag "Annotation"
+ (const annotation-function) function)
+ (cons :tag "Affixation"
+ (const affixation-function) function)
+ (cons :tag "Restriction"
+ (const narrow-completions-function)
+ function))))
(defun completion--category-override (category tag)
(or (assq tag (cdr (assq category completion-category-overrides)))
@@ -2576,6 +2572,8 @@ These include:
`:cycle-sort-function': Function to sort entries when cycling.
+`:narrow-completions-function': function for narrowing the completions list.
+
See more information about these functions above
in `completion-metadata'.
- feature/minibuffer-completion-enhancements 35f0d1820d2 19/35: New commands for cycling completions and restoring completed input, (continued)
- feature/minibuffer-completion-enhancements 35f0d1820d2 19/35: New commands for cycling completions and restoring completed input, Eshel Yaron, 2024/01/21
- feature/minibuffer-completion-enhancements af71861125a 01/35: Support narrowing (restricting) minibuffer completions, Eshel Yaron, 2024/01/21
- feature/minibuffer-completion-enhancements 9877858fa29 07/35: ; Support removing individual completions restrictions, Eshel Yaron, 2024/01/21
- feature/minibuffer-completion-enhancements b0e66d1d9cc 11/35: ; Bind 'minibuffer-complete-and-exit' in "Minibuf" menu, Eshel Yaron, 2024/01/21
- feature/minibuffer-completion-enhancements ca72ed2f7a7 15/35: New command 'minibuffer-set-completion-styles', Eshel Yaron, 2024/01/21
- feature/minibuffer-completion-enhancements 68d33f872e9 24/35: Show completions category in heading line, Eshel Yaron, 2024/01/21
- feature/minibuffer-completion-enhancements a8434d8b285 26/35: ; * etc/NEWS: (re-)announce 'completions-auto-update-mode'., Eshel Yaron, 2024/01/21
- feature/minibuffer-completion-enhancements 4f85e6f58a4 06/35: ; Respect 'completion-boundaries' in 'completions-auto-update', Eshel Yaron, 2024/01/21
- feature/minibuffer-completion-enhancements f9c59caa378 13/35: Improve handling of file name completion predicate, Eshel Yaron, 2024/01/21
- feature/minibuffer-completion-enhancements 26bca940e12 17/35: ; Fix typos in recent documentation additions, Eshel Yaron, 2024/01/21
- feature/minibuffer-completion-enhancements c80749e4bee 18/35: ; Adapt some recent changes around completion categories,
Eshel Yaron <=
- feature/minibuffer-completion-enhancements dc4ce1052ba 32/35: New command 'crm-complete-and-insert-separator', Eshel Yaron, 2024/01/21
- feature/minibuffer-completion-enhancements bc5c729d69f 33/35: ; (crm-change-separator): Enable recursive minibuffers., Eshel Yaron, 2024/01/21
- feature/minibuffer-completion-enhancements 5fae8cef46d 35/35: ; * doc/emacs/mini.texi (Completion Multi): Fix typo., Eshel Yaron, 2024/01/21
- feature/minibuffer-completion-enhancements 8ecd4371b9a 22/35: ; Avoid attempting to restore stale previous completion input, Eshel Yaron, 2024/01/21
- feature/minibuffer-completion-enhancements 370936bef90 23/35: New helper function for creating completion tables with metadata, Eshel Yaron, 2024/01/21
- feature/minibuffer-completion-enhancements cea254f1483 27/35: Add completion annotations for file name completion, Eshel Yaron, 2024/01/21
- feature/minibuffer-completion-enhancements 4f1e41bc064 29/35: ; Elaborate minibuffer file name reading documentation, Eshel Yaron, 2024/01/21
- feature/minibuffer-completion-enhancements 5725301b016 02/35: * doc/lispref/minibuf.texi (Completion Commands): Fix typos., Eshel Yaron, 2024/01/21
- feature/minibuffer-completion-enhancements fd705bffffa 04/35: Add Completions Auto Update minor mode, Eshel Yaron, 2024/01/21
- feature/minibuffer-completion-enhancements c896c757a9d 05/35: ; Respect 'completion-boundaries' in narrow-completions commands, Eshel Yaron, 2024/01/21