Commit 2f020e82 authored by Nicolas Richard's avatar Nicolas Richard

Add argument to reverse the meaning of ido-restrict-to-matches

* lisp/ido.el (ido-restrict-to-matches): Add an optional argument
to reverse the meaning (Bug#15631).

; * etc/NEWS: Mention the change.
parent 7d5a7a43
......@@ -398,6 +398,9 @@ If you need your objects to be named, do it by inheriting from `eieio-named'.
*** New command `ido-bury-buffer-at-head' bound to C-S-b
Bury the buffer at the head of `ido-matches', analogous to how C-k
kills the buffer at head.
*** A prefix argument to `ido-restrict-to-matches' will reverse its
meaning, and the list is restricted to those elements that do not
match the current input.
** Minibuffer
......
......@@ -322,6 +322,7 @@
;;; Code:
(defvar recentf-list)
(require 'seq)
;;;; Options
......@@ -3180,11 +3181,19 @@ for first matching file."
(if (> i 0)
(setq ido-cur-list (ido-chop ido-cur-list (nth i ido-matches)))))))
(defun ido-restrict-to-matches ()
"Set current item list to the currently matched items."
(interactive)
(defun ido-restrict-to-matches (&optional removep)
"Set current item list to the currently matched items.
When argument REMOVEP is non-nil, the currently matched items are
instead removed from the current item list."
(interactive "P")
(when ido-matches
(setq ido-cur-list ido-matches
(setq ido-cur-list (if removep
;; An important feature is to preserve the
;; order of the elements.
(seq-difference ido-cur-list ido-matches)
ido-matches)
ido-matches ido-cur-list
ido-text-init ""
ido-rescan nil
ido-exit 'keep)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment