]> code.delx.au - gnu-emacs/blobdiff - lisp/hippie-exp.el
(compilation-mode): Add a mode-class property.
[gnu-emacs] / lisp / hippie-exp.el
index 02a3917d81ed8579acd3d90655c12055c42a6973..aeaa747659c0838fc4c1dea8719e9e1a7ccfd74a 100644 (file)
@@ -1,12 +1,12 @@
 ;;; hippie-exp.el --- expand text trying various ways to find its expansion.
 
+;; Copyright (C) 1992 Free Software Foundation, Inc.
+
 ;; Author: Anders Holst <aho@sans.kth.se>
 ;; Last change: 6 August 1995
 ;; Version: 1.4
 ;; Keywords: abbrev
 
-;; Copyright (C) 1992 Free Software Foundation, Inc.
-;;
 ;; This file is part of GNU Emacs.
 
 ;; GNU Emacs is free software; you can redistribute it and/or modify
 ;; 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, 675 Mass Ave, Cambridge, MA 02139, USA.
+;; along with GNU Emacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
 
 ;;; Commentary:
-;;  
+
 ;;  `hippie-expand' is a single function for a lot of different kinds
 ;;  of completions and expansions.  Called repeatedly it tries all
 ;;  possible completions in succession. 
 
 ;;; Code:
 
+(defgroup hippie-expand nil
+  "Expand text trying various ways to find its expansion."
+  :group 'abbrev)
+
 (defvar he-num -1)
 
 (defvar he-string-beg (make-marker))
@@ -196,19 +201,26 @@ To change the behavior of `hippie-expand', remove, change the order of,
 or insert functions in this list.")
 
 ;;;###autoload
-(defvar hippie-expand-verbose t
-  "*Non-nil makes `hippie-expand' output which function it is trying.")
+(defcustom hippie-expand-verbose t
+  "*Non-nil makes `hippie-expand' output which function it is trying."
+  :type 'boolean
+  :group 'hippie-expand)
 
 ;;;###autoload
-(defvar hippie-expand-max-buffers ()
+(defcustom hippie-expand-max-buffers ()
   "*The maximum number of buffers (apart from the current) searched.
-If nil, all buffers are searched.")
+If nil, all buffers are searched."
+  :type '(choice (const :tag "All" nil)
+                integer)
+  :group 'hippie-expand)
 
 ;;;###autoload
-(defvar hippie-expand-ignore-buffers '("^ \\*.*\\*$" dired-mode)
+(defcustom hippie-expand-ignore-buffers '("^ \\*.*\\*$" dired-mode)
   "*A list specifying which buffers not to search (if not current).
 Can contain both regexps matching buffer names (as strings) and major modes
-\(as atoms)")
+\(as atoms)"
+  :type '(repeat (choice regexp (symbol :tag "Major Mode")))
+  :group 'hippie-expand)
 
 ;;;###autoload
 (defun hippie-expand (arg)
@@ -247,9 +259,9 @@ undoes the expansion."
              (ding))
            (if (and hippie-expand-verbose
                     (not (window-minibuffer-p (selected-window))))
-               (message (concat "Using "
-                                (prin1-to-string (nth he-num 
-                                  hippie-expand-try-functions-list)))))))
+               (message "Using %s"
+                        (prin1-to-string (nth he-num 
+                                  hippie-expand-try-functions-list))))))
       (if (and (>= he-num 0)
               (eq (marker-buffer he-string-beg) (current-buffer)))
          (progn
@@ -444,7 +456,7 @@ otherwise."
 (defvar he-file-name-chars
   (cond ((memq system-type '(vax-vms axp-vms))
         "-a-zA-Z0-9_/.,~^#$+=:\\[\\]")
-       ((memq system-type '(ms-dos ms-windows))
+       ((memq system-type '(ms-dos windows-nt))
         "-a-zA-Z0-9_/.,~^#$+=:\\\\")
        (t                          ;; More strange file formats ?
         "-a-zA-Z0-9_/.,~^#$+="))
@@ -482,16 +494,17 @@ otherwise."
   (if (memq system-type '(vax-vms axp-vms))
       (or (file-directory-p file)
          (file-directory-p (concat file "[000000]")))
-    (file-directory-p dir-part)))
+    (file-directory-p file)))
   
 (defun he-concat-directory-file-name (dir-part name-part)
   "Try to slam together two parts of a file specification, system dependently."
-  (cond ((memq system-type '(axp-vms vax-vms))
+  (cond ((null dir-part) name-part)
+       ((memq system-type '(axp-vms vax-vms))
         (if (and (string= (substring dir-part -1) "]")
                  (string= (substring name-part 0 2) "[."))
             (concat (substring dir-part 0 -1) (substring name-part 1))
           (concat dir-part name-part)))
-       ((memq system-type '(ms-dos ms-windows))
+       ((memq system-type '(ms-dos w32))
         (if (and (string-match "\\\\" dir-part)
                  (not (string-match "/" dir-part))
                  (= (aref name-part (1- (length name-part))) ?/))