]> git.eshelyaron.com Git - emacs.git/commitdiff
New command 'minibuffer-narrow-completions-by-regexp'
authorEshel Yaron <me@eshelyaron.com>
Mon, 18 Mar 2024 08:08:37 +0000 (09:08 +0100)
committerEshel Yaron <me@eshelyaron.com>
Mon, 18 Mar 2024 08:08:37 +0000 (09:08 +0100)
lisp/minibuffer.el

index 27351ad56da629ec53d4b96a081f5b472dd305e0..5fc4a9254d5cf3bbb8baa502ef1ad0fed1585698 100644 (file)
@@ -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,