]> code.delx.au - gnu-emacs/blobdiff - lisp/ido.el
* server.el (server-buffer-done): Avoid changing the buffer when
[gnu-emacs] / lisp / ido.el
index 314f495a7b1437993b901eeec9f5e946517c71c3..4d786eb8e333d0e14e08e444a94b1fccba46f6a8 100644 (file)
@@ -9,10 +9,10 @@
 
 ;; This file is part of GNU Emacs.
 
-;; GNU Emacs is free software; you can redistribute it and/or modify
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 3, or (at your option)
-;; any later version.
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
 
 ;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -20,9 +20,7 @@
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 
 
 ;;; Commentary:
 ;; to show you more of the matching files (depending on the setting
 ;; of the variables `resize-mini-windows' and `max-mini-window-height').
 ;; If you want ido to behave differently from the default minibuffer
-;; resizing behaviour, set the variable `ido-max-window-height'.
+;; resizing behavior, set the variable `ido-max-window-height'.
 ;;
 ;; Also, to improve the responsiveness of ido, the maximum number of
 ;; matching items is limited to 12, but you can increase or removed
 ;; To use ido for all buffer and file selections in Emacs, customize the
 ;; variable `ido-everywhere'.
 
-;; Using ido-like behaviour in other lisp packages
+;; Using ido-like behavior in other lisp packages
 ;; -----------------------------------------------
 
 ;; If you don't want to rely on the `ido-everywhere' functionality,
 
 ;;; Code:
 
-(provide 'ido)
-
 (defvar cua-inhibit-cua-keys)
 
 ;;; User Variables
@@ -357,7 +353,7 @@ Setting this variable directly does not take effect;
 use either \\[customize] or the function `ido-mode'."
   :set #'(lambda (symbol value)
           (ido-mode value))
-  :initialize 'custom-initialize-set
+  :initialize 'custom-initialize-default
   :require 'ido
   :link '(emacs-commentary-link "ido.el")
   :set-after '(ido-save-directory-list-file
@@ -390,7 +386,7 @@ call the function `ido-everywhere'."
   "*List of regexps or functions matching buffer names to ignore.
 For example, traditional behavior is not to list buffers whose names begin
 with a space, for which the regexp is `\\` '.  See the source file for
-example functions that filter buffernames."
+example functions that filter buffer names."
   :type '(repeat (choice regexp function))
   :group 'ido)
 
@@ -501,7 +497,7 @@ Value can be toggled within `ido' using `ido-toggle-regexp'."
 
 (defcustom ido-enable-prefix nil
   "*Non-nil means only match if the entered text is a prefix of file name.
-This behavior is like the standard emacs-completion.
+This behavior is like the standard Emacs completion.
 If nil, match if the entered text is an arbitrary substring.
 Value can be toggled within `ido' using `ido-toggle-prefix'."
   :type 'boolean
@@ -537,14 +533,14 @@ Note that the non-ido equivalent command is recorded."
   :group 'ido)
 
 (defcustom ido-max-prospects 12
-  "*Non-zero means that the prospect list will be limited to than number of items.
+  "*Non-zero means that the prospect list will be limited to that number of items.
 For a long list of prospects, building the full list for the minibuffer can take a
 non-negligible amount of time; setting this variable reduces that time."
   :type 'integer
   :group 'ido)
 
 (defcustom ido-max-file-prompt-width 0.35
-  "*Non-zero means that the prompt string be limited to than number of characters.
+  "*Non-zero means that the prompt string be limited to that number of characters.
 If value is a floating point number, it specifies a fraction of the frame width."
   :type '(choice
          (integer :tag "Characters" :value 20)
@@ -615,7 +611,7 @@ A tramp file name uses the following syntax: /method:user@host:filename."
   :group 'ido)
 
 (defcustom ido-merge-ftp-work-directories nil
-  "*If nil means merging ignores ftp file names in the work directory list."
+  "*If nil, merging ignores ftp file names in the work directory list."
   :type 'boolean
   :group 'ido)
 
@@ -674,7 +670,7 @@ If zero, UNC host shares are not cached."
 
 (defcustom ido-max-work-file-list 10
   "*Maximum number of names of recently opened files to record.
-This is the list the file names (sans directory) which have most recently
+This is the list of the file names (sans directory) which have most recently
 been opened.  See `ido-work-file-list' and `ido-save-directory-list-file'."
   :type 'integer
   :group 'ido)
@@ -761,7 +757,7 @@ ask user whether to create buffer, or 'never to never create new buffer."
 (defcustom ido-setup-hook  nil
   "*Hook run after the ido variables and keymap have been setup.
 The dynamic variable `ido-cur-item' contains the current type of item that
-is read by ido, possible values are file, dir, buffer, and list.
+is read by ido; possible values are file, dir, buffer, and list.
 Additional keys can be defined in `ido-completion-map'."
   :type 'hook
   :group 'ido)
@@ -859,7 +855,7 @@ variables:
   max-width - the max width of the resulting dirname; nil means no limit
   prompt    - the basic prompt (e.g. \"Find File: \")
   literal   - the string shown if doing \"literal\" find; set to nil to omit
-  vc-off    - the string shown if version control is inhibited; set to nit to omit
+  vc-off    - the string shown if version control is inhibited; set to nil to omit
   prefix    - either nil or a fixed prefix for the dirname
 
 The following variables are available, but should not be changed:
@@ -1317,7 +1313,6 @@ Value is an integer which is number of chars to right of prompt.")
            (if (listp ido-unc-hosts-cache)
                (ido-pp 'ido-unc-hosts-cache)
              (insert "\n;; ----- ido-unc-hosts-cache -----\nt\n"))
-           (insert "\n")
            (write-file ido-save-directory-list-file nil))
        (kill-buffer buf)))))
 
@@ -1509,7 +1504,9 @@ This function also adds a hook to the minibuffer."
       (if ido-minor-mode-map-entry
          (setcdr ido-minor-mode-map-entry map)
        (setq ido-minor-mode-map-entry (cons 'ido-mode map))
-       (add-to-list 'minor-mode-map-alist ido-minor-mode-map-entry)))))
+       (add-to-list 'minor-mode-map-alist ido-minor-mode-map-entry))))
+
+  (message "Ido mode %s" (if ido-mode "enabled" "disabled")))
 
 
 (defun ido-everywhere (arg)
@@ -2164,7 +2161,9 @@ If cursor is not at the end of the user input, move to end of input."
 
       (cond
        ((eq ido-exit 'find-file)
-       (ido-file-internal ido-default-file-method nil nil nil nil ido-text))
+       (ido-file-internal
+        (if (memq method '(other-window other-frame)) method ido-default-file-method)
+        nil nil nil nil ido-text))
 
        ((eq ido-exit 'insert-file)
        (ido-file-internal 'insert 'insert-file nil "Insert file: " nil ido-text 'ido-enter-insert-buffer))
@@ -2270,7 +2269,7 @@ If cursor is not at the end of the user input, move to end of input."
           (or ido-use-url-at-point ido-use-filename-at-point))
       (let (fn d)
        (require 'ffap)
-       ;; Duplicate code from ffap-guesser as we want different behaviour for files and URLs.
+       ;; Duplicate code from ffap-guesser as we want different behavior for files and URLs.
        (cond
         ((with-no-warnings
            (and ido-use-url-at-point
@@ -2320,7 +2319,9 @@ If cursor is not at the end of the user input, move to end of input."
          (call-interactively this-command)))
 
        ((eq ido-exit 'switch-to-buffer)
-       (ido-buffer-internal ido-default-buffer-method nil nil nil ido-text))
+       (ido-buffer-internal
+        (if (memq method '(other-window other-frame)) method ido-default-buffer-method)
+        nil nil nil ido-text))
 
        ((eq ido-exit 'insert-buffer)
        (ido-buffer-internal 'insert 'insert-buffer "Insert buffer: " nil ido-text 'ido-enter-insert-file))
@@ -2361,7 +2362,7 @@ If cursor is not at the end of the user input, move to end of input."
              (ido-record-command method dirname)
              (ido-record-work-directory)
              (funcall method dirname))
-            ((y-or-n-p (format "Directory %s does not exist. Create it? " filename))
+            ((y-or-n-p (format "Directory %s does not exist.  Create it? " filename))
              (ido-record-command method dirname)
              (ido-record-work-directory dirname)
              (make-directory-internal dirname)
@@ -2540,10 +2541,10 @@ If no merge has yet taken place, toggle automatic merging option."
 (defun ido-magic-forward-char (arg)
   "Move forward in user input or perform magic action.
 If no user input is present, or at end of input, perform magic actions:
-C-x C-b ... C-f  switch to ido-find-file.
-C-x C-f ... C-f  fallback to non-ido find-file.
-C-x C-d ... C-f  fallback to non-ido brief dired.
-C-x d ... C-f    fallback to non-ido dired."
+C-x C-b ... C-f  switch to `ido-find-file'.
+C-x C-f ... C-f  fallback to non-ido `find-file'.
+C-x C-d ... C-f  fallback to non-ido brief `dired'.
+C-x d ... C-f    fallback to non-ido `dired'."
   (interactive "P")
   (cond
    ((or arg (not (eobp)))
@@ -2587,7 +2588,7 @@ C-x C-b C-b  fallback to non-ido `switch-to-buffer'."
 (defun ido-magic-delete-char (arg)
   "Delete following char in user input or perform magic action.
 If at end of user input, perform magic actions:
-C-x C-f ... C-d  enter dired on current directory."
+C-x C-f ... C-d  enter `dired' on current directory."
   (interactive "P")
   (cond
    ((or arg (not (eobp)))
@@ -2885,7 +2886,7 @@ If input stack is non-empty, delete current directory component."
 
 (defun ido-pop-dir (arg)
   "Pop directory from input stack back to input.
-With \\[universal-argument], pop all element."
+With \\[universal-argument], pop all elements."
   (interactive "P")
   (when ido-input-stack
     (setq ido-exit (if arg 'pop-all 'pop))
@@ -4657,6 +4658,14 @@ DEF, if non-nil, is the default value."
        (ido-choice-list choices))
     (ido-read-internal 'list prompt hist def require-match initial-input)))
 
+(defun ido-unload-function ()
+  "Unload the Ido library."
+  (ido-mode -1)
+  (setq minor-mode-map-alist (assq-delete-all 'ido-mode minor-mode-map-alist))
+  ;; continue standard unloading
+  nil)
+
+(provide 'ido)
 
 ;; arch-tag: b63a3500-1735-41bd-8a01-05373f0864da
 ;;; ido.el ends here