changeset 107077:25a0d9b486ba

iswitchb.el (iswitchb-completions): Add bookmark files to the list of files considered for "virtual buffer" completions.
author jwiegley@gmail.com
date Wed, 03 Feb 2010 15:47:25 -0500
parents 59d8f3cc91f4
children 2343eacdeb7d 444ecbd20d25
files lisp/ChangeLog lisp/iswitchb.el
diffstat 2 files changed, 25 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Wed Feb 03 07:16:34 2010 +0100
+++ b/lisp/ChangeLog	Wed Feb 03 15:47:25 2010 -0500
@@ -1,3 +1,8 @@
+2010-02-03  John Wiegley  <jwiegley@gmail.com>
+
+	* iswitchb.el (iswitchb-completions): Add bookmark files to the
+	list of files considered for "virtual buffer" completions.
+
 2010-02-03  Michael Albinus  <michael.albinus@gmx.de>
 
 	* net/ange-ftp.el (ange-ftp-insert-directory): Parse directory
--- a/lisp/iswitchb.el	Wed Feb 03 07:16:34 2010 +0100
+++ b/lisp/iswitchb.el	Wed Feb 03 15:47:25 2010 -0500
@@ -1274,7 +1274,7 @@
     ;; consult the list of past visited files, to see if we can find
     ;; the file which the user might thought was still open.
     (when (and iswitchb-use-virtual-buffers (null comps)
-	       recentf-list)
+	       (or recentf-list bookmark-alist))
       (setq iswitchb-virtual-buffers nil)
       (let ((head recentf-list) name)
 	(while head
@@ -1289,15 +1289,30 @@
 	      (setq iswitchb-virtual-buffers
 		    (cons (cons name (car head))
 			  iswitchb-virtual-buffers)))
-	  (setq head (cdr head)))
-	(setq iswitchb-virtual-buffers (nreverse iswitchb-virtual-buffers)
-	      comps (mapcar 'car iswitchb-virtual-buffers))
+	  (setq head (cdr head))))
+      (let ((head bookmark-alist) name path)
+	(while head
+	  (if (and (setq path (cdr (assq 'filename (cdar head))))
+		   (setq name (file-name-nondirectory path))
+		   (string-match (if iswitchb-regexp
+				     iswitchb-text
+				   (regexp-quote iswitchb-text)) name)
+		   (null (get-file-buffer path))
+		   (not (assoc name iswitchb-virtual-buffers))
+		   (not (iswitchb-ignore-buffername-p name))
+		   (file-exists-p path))
+	      (setq iswitchb-virtual-buffers
+		    (cons (cons name path)
+			  iswitchb-virtual-buffers)))
+	  (setq head (cdr head))))
+      (setq iswitchb-virtual-buffers (nreverse iswitchb-virtual-buffers)
+	    comps (mapcar 'car iswitchb-virtual-buffers))
 	(let ((comp comps))
 	  (while comp
 	    (put-text-property 0 (length (car comp))
 			       'face 'iswitchb-virtual-matches
 			       (car comp))
-	    (setq comp (cdr comp))))))
+	    (setq comp (cdr comp)))))
 
     (cond ((null comps) (format " %sNo match%s"
 				open-bracket-determined