X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/b201b9880e01120b7e64f82c98464c5bea630b0d..d75ffb4ed0b2e72a9361a07d16a5c884a9459728:/lisp/eshell/em-cmpl.el diff --git a/lisp/eshell/em-cmpl.el b/lisp/eshell/em-cmpl.el index b5f666a6bf..a67861e83a 100644 --- a/lisp/eshell/em-cmpl.el +++ b/lisp/eshell/em-cmpl.el @@ -1,16 +1,15 @@ ;;; em-cmpl.el --- completion using the TAB key -;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, -;; 2005, 2006, 2007 Free Software Foundation, Inc. +;; Copyright (C) 1999-2012 Free Software Foundation, Inc. ;; Author: John Wiegley ;; 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 @@ -18,9 +17,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 . ;;; Commentary: @@ -73,39 +70,43 @@ ;;; Code: (eval-when-compile + (require 'cl-lib) (require 'eshell)) (require 'esh-util) +;;;###autoload +(progn (defgroup eshell-cmpl nil "This module provides a programmable completion function bound to the TAB key, which allows for completing command names, file names, variable names, arguments, etc." :tag "Argument completion" - :group 'eshell-module) + :group 'eshell-module)) ;;; User Variables: -(defcustom eshell-cmpl-load-hook '(eshell-cmpl-initialize) - "*A list of functions to run when `eshell-cmpl' is loaded." +(defcustom eshell-cmpl-load-hook nil + "A list of functions to run when `eshell-cmpl' is loaded." + :version "24.1" ; removed eshell-cmpl-initialize :type 'hook :group 'eshell-cmpl) (defcustom eshell-show-lisp-completions nil - "*If non-nil, include Lisp functions in the command completion list. + "If non-nil, include Lisp functions in the command completion list. If this variable is nil, Lisp completion can still be done in command position by using M-TAB instead of TAB." :type 'boolean :group 'eshell-cmpl) (defcustom eshell-show-lisp-alternatives t - "*If non-nil, and no other completions found, show Lisp functions. + "If non-nil, and no other completions found, show Lisp functions. Setting this variable means nothing if `eshell-show-lisp-completions' is non-nil." :type 'boolean :group 'eshell-cmpl) (defcustom eshell-no-completion-during-jobs t - "*If non-nil, don't allow completion while a process is running." + "If non-nil, don't allow completion while a process is running." :type 'boolean :group 'eshell-cmpl) @@ -126,7 +127,7 @@ is non-nil." ("dbx" . "\\`\\([^.]*\\|a\\.out\\)\\'") ("sdb" . "\\`\\([^.]*\\|a\\.out\\)\\'") ("adb" . "\\`\\([^.]*\\|a\\.out\\)\\'")) - "*An alist that defines simple argument type correlations. + "An alist that defines simple argument type correlations. This is provided for common commands, as a simplistic alternative to writing a completion function." :type '(repeat (cons string regexp)) @@ -299,8 +300,7 @@ to writing a completion function." ;; jww (1999-10-19): Will this work on anything but X? (if (featurep 'xemacs) (define-key eshell-mode-map [iso-left-tab] 'pcomplete-reverse) - (define-key eshell-mode-map [(shift iso-lefttab)] 'pcomplete-reverse) - (define-key eshell-mode-map [(shift control ?i)] 'pcomplete-reverse)) + (define-key eshell-mode-map [backtab] 'pcomplete-reverse)) (define-key eshell-mode-map [(meta ??)] 'pcomplete-list)) (defun eshell-completion-command-name () @@ -358,7 +358,7 @@ to writing a completion function." (nconc posns (list pos))) (setq pos (1+ pos)))) (setq posns (cdr posns)) - (assert (= (length args) (length posns))) + (cl-assert (= (length args) (length posns))) (let ((a args) (i 0) l final) @@ -370,7 +370,7 @@ to writing a completion function." (and l (setq args (nthcdr (1+ l) args) posns (nthcdr (1+ l) posns)))) - (assert (= (length args) (length posns))) + (cl-assert (= (length args) (length posns))) (when (and args (eq (char-syntax (char-before end)) ? ) (not (eq (char-before (1- end)) ?\\))) (nconc args (list "")) @@ -383,7 +383,7 @@ to writing a completion function." (let ((result (eshell-do-eval (list 'eshell-commands arg) t))) - (assert (eq (car result) 'quote)) + (cl-assert (eq (car result) 'quote)) (cadr result)) arg))) (if (numberp val) @@ -402,7 +402,7 @@ to writing a completion function." (setq filename (substring filename 1) pcomplete-stub filename glob-name t)) - (let* ((paths (split-string (getenv "PATH") path-separator)) + (let* ((paths (eshell-parse-colon-path eshell-path-env)) (cwd (file-name-as-directory (expand-file-name default-directory))) (path "") (comps-in-path ()) @@ -451,5 +451,8 @@ to writing a completion function." (provide 'em-cmpl) -;;; arch-tag: 0e914699-673a-45f8-8cbf-82e1dbc571bc +;; Local Variables: +;; generated-autoload-file: "esh-groups.el" +;; End: + ;;; em-cmpl.el ends here