changeset 57065:4bf76a50a989

(ido-enable-dot-prefix): Doc fix. (ido-enable-dot-prefix): New defcustom. (ido-set-matches1): Use it.
author Kim F. Storm <storm@cua.dk>
date Sat, 11 Sep 2004 21:43:42 +0000
parents b20cb8dd9053
children bb03bc287e9c
files lisp/ido.el
diffstat 1 files changed, 20 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ido.el	Sat Sep 11 21:42:50 2004 +0000
+++ b/lisp/ido.el	Sat Sep 11 21:43:42 2004 +0000
@@ -482,14 +482,20 @@
   :group 'ido)
 
 (defcustom ido-enable-prefix nil
-  "*Nil means that `ido' will match if the inserted text is an
-arbitrary substring (default). If non-nil `ido' will only match if the inserted
-text is a prefix \(this behavior is like the standard unix- or
-emacs-completion works).
+  "*Non-nil means only match if the entered text is a prefix of file name.
+This behavior is like the standard emacs-completion.
+Nil means to match if the entered text is an arbitrary substring.
 Value can be toggled within `ido' using `ido-toggle-prefix'."
   :type 'boolean
   :group 'ido)
 
+(defcustom ido-enable-dot-prefix nil
+  "*Non-nil means to match leading dot as prefix.
+I.e. hidden files and buffers will match only if you type a dot
+as first char even if `ido-enable-prefix' is nil."
+  :type 'boolean
+  :group 'ido)
+
 (defcustom ido-confirm-unique-completion nil
   "*Non-nil means that even a unique completion must be confirmed.
 This means that \\[ido-complete] must always be followed by \\[ido-exit-minibuffer]
@@ -2928,13 +2934,22 @@
 		       (concat "\\`" re "\\'")))
 	 (prefix-re (and full-re (not ido-enable-prefix)
 			 (concat "\\`" rexq)))
+	 (non-prefix-dot (or (not ido-enable-dot-prefix)
+			     (not ido-process-ignore-lists)
+			     ido-enable-prefix
+			     (= (length ido-text) 0)))
+
 	 full-matches
 	 prefix-matches
 	 matches)
     (mapcar
      (lambda (item)
        (let ((name (ido-name item)))
-	 (if (string-match re name)
+	 (if (and (or non-prefix-dot
+		      (if (= (aref ido-text 0) ?.)
+			  (= (aref name 0) ?.)
+			(/= (aref name 0) ?.)))
+		  (string-match re name))
 	     (cond
 	      ((and full-re (string-match full-re name))
 	       (setq full-matches (cons item full-matches)))