From 52fd707c22f27d0b7a406d6b29fc0c7695a55843 Mon Sep 17 00:00:00 2001 From: Eshel Yaron Date: Mon, 18 Mar 2024 09:08:37 +0100 Subject: [PATCH] New command 'minibuffer-narrow-completions-by-regexp' --- lisp/minibuffer.el | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el index 27351ad56da..5fc4a9254d5 100644 --- a/lisp/minibuffer.el +++ b/lisp/minibuffer.el @@ -3626,6 +3626,7 @@ The completion method is determined by `completion-at-point-functions'." "n" #'minibuffer-narrow-completions-to-current "h" #'minibuffer-narrow-completions-to-history "m" #'minibuffer-narrow-completions + "g" #'minibuffer-narrow-completions-by-regexp "w" #'minibuffer-widen-completions) (defvar-keymap minibuffer-local-ns-map @@ -5665,7 +5666,7 @@ instead of the completion table." result)) (defvar minibuffer-narrow-completions-function - #'minibuffer-narrow-completions-by-regexp + #'minibuffer-completions-regexp-predicate "Function to use for restricting the list of completions candidates. Minibuffer command `minibuffer-narrow-completions' calls this @@ -5684,7 +5685,7 @@ the *Completions* buffer, and DESC is a string describing PRED.") (buffer-substring (point) (point-max))))) (cons (+ prompt-end (car beg-end)) (+ (point) (cdr beg-end))))) -(defun minibuffer-narrow-completions-by-regexp () +(defun minibuffer-completions-regexp-predicate () "Narrow completion candidates by matching a given regular expression. This function is the default value of variable `minibuffer-narrow-completions-function', which see." @@ -5726,6 +5727,13 @@ DESC is a string describing predicate PRED." minibuffer-narrow-completions-function)))) (minibuffer--add-completions-predicate (car filter-desc) (cdr filter-desc)))) +(defun minibuffer-narrow-completions-by-regexp () + "Restrict completion candidates by matching a given regular expression." + (interactive "" minibuffer-mode) + (let* ((enable-recursive-minibuffers t) + (filter-desc (minibuffer-completions-regexp-predicate))) + (minibuffer--add-completions-predicate (car filter-desc) (cdr filter-desc)))) + (defun minibuffer-narrow-completions-to-current (arg) "Restrict completion candidates according to current minibuffer input. ARG is the numeric prefix argument. When ARG is negative, -- 2.39.5