[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#15631: 24.3; ido : invert effect of ido-restrict-to-matches with pre
bug#15631: 24.3; ido : invert effect of ido-restrict-to-matches with prefix arg
Tue, 30 Jun 2015 17:28:38 +0200
Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux)
Nicolas Richard <address@hidden> writes:
> The function `ido-restrict-to-matches' is used within ido to restrict
> focus on currently matched items. It was asked on #emacs to have a
> function with the opposite effect : restrict focus on unmatched items.
> I found it was useful for me and came up with this solution (adding an
> optional argument to the existing function) :
I modified the patch a tiny bit and now use the new library seq.el and
add a NEWS entry. If nobody complains I'll install this patch in the
next few days.
>From c8469c5892c7d01045f81a99a7535b3ed76abd2d Mon Sep 17 00:00:00 2001
From: Nicolas Richard <address@hidden>
Date: Tue, 30 Jun 2015 09:18:27 +0200
Subject: [PATCH] Add argument to reverse the meaning of
* lisp/ido.el (ido-restrict-to-matches): Add an optional argument
to reverse the meaning.
; * etc/NEWS: Mention the change
etc/NEWS | 3 +++
lisp/ido.el | 17 +++++++++++++----
2 files changed, 16 insertions(+), 4 deletions(-)
diff --git a/etc/NEWS b/etc/NEWS
index 1f8cbbc..8ee8364 100644
@@ -398,6 +398,9 @@ If you need your objects to be named, do it by inheriting
*** 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 those elements that do not match
+the current input.
diff --git a/lisp/ido.el b/lisp/ido.el
index 5995fcd..1f12fbf 100644
@@ -322,6 +322,7 @@
@@ -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."
+(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")
- (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-cur-list
- bug#15631: 24.3; ido : invert effect of ido-restrict-to-matches with prefix arg,
Nicolas Richard <=