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.
This commit is contained in:
parent
7d5a7a43f1
commit
2f020e8219
2 changed files with 16 additions and 4 deletions
3
etc/NEWS
3
etc/NEWS
|
@ -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
|
||||
|
||||
|
|
17
lisp/ido.el
17
lisp/ido.el
|
@ -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)
|
||||
|
|
Loading…
Add table
Reference in a new issue