X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/3731a85096c5e067f05d53573e559d63c8860f15..0bfd44c1806f9e589f79e9bc8f4b2a5aab7e4df3:/lisp/emacs-lisp/eldoc.el diff --git a/lisp/emacs-lisp/eldoc.el b/lisp/emacs-lisp/eldoc.el index 74fc12ac12..805184e15d 100644 --- a/lisp/emacs-lisp/eldoc.el +++ b/lisp/emacs-lisp/eldoc.el @@ -1,7 +1,7 @@ ;;; eldoc.el --- show function arglist or variable docstring in echo area ;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, -;; 2005 Free Software Foundation, Inc. +;; 2005, 2006 Free Software Foundation, Inc. ;; Author: Noah Friedman ;; Maintainer: friedman@splode.com @@ -103,37 +103,37 @@ truncated to make more of the arglist or documentation string visible." ;;; No user options below here. -;; Commands after which it is appropriate to print in the echo area. -;; Eldoc does not try to print function arglists, etc. after just any command, -;; because some commands print their own messages in the echo area and these -;; functions would instantly overwrite them. But self-insert-command as well -;; as most motion commands are good candidates. -;; This variable contains an obarray of symbols; do not manipulate it -;; directly. Instead, use `eldoc-add-command' and `eldoc-remove-command'. -(defvar eldoc-message-commands nil) - -;; This is used by eldoc-add-command to initialize eldoc-message-commands -;; as an obarray. -;; It should probably never be necessary to do so, but if you -;; choose to increase the number of buckets, you must do so before loading -;; this file since the obarray is initialized at load time. -;; Remember to keep it a prime number to improve hash performance. -(defvar eldoc-message-commands-table-size 31) - -;; Bookkeeping; elements are as follows: -;; 0 - contains the last symbol read from the buffer. -;; 1 - contains the string last displayed in the echo area for that -;; symbol, so it can be printed again if necessary without reconsing. -;; 2 - 'function if function args, 'variable if variable documentation. -(defvar eldoc-last-data (make-vector 3 nil)) +(defvar eldoc-message-commands-table-size 31 + "This is used by eldoc-add-command to initialize eldoc-message-commands +as an obarray. +It should probably never be necessary to do so, but if you +choose to increase the number of buckets, you must do so before loading +this file since the obarray is initialized at load time. +Remember to keep it a prime number to improve hash performance.") + +(defconst eldoc-message-commands + (make-vector eldoc-message-commands-table-size 0) + "Commands after which it is appropriate to print in the echo area. +Eldoc does not try to print function arglists, etc. after just any command, +because some commands print their own messages in the echo area and these +functions would instantly overwrite them. But self-insert-command as well +as most motion commands are good candidates. +This variable contains an obarray of symbols; do not manipulate it +directly. Instead, use `eldoc-add-command' and `eldoc-remove-command'.") + +(defconst eldoc-last-data (make-vector 3 nil) + "Bookkeeping; elements are as follows: + 0 - contains the last symbol read from the buffer. + 1 - contains the string last displayed in the echo area for that + symbol, so it can be printed again if necessary without reconsing. + 2 - 'function if function args, 'variable if variable documentation.") (defvar eldoc-last-message nil) -;; eldoc's timer object. -(defvar eldoc-timer nil) +(defvar eldoc-timer nil "eldoc's timer object.") -;; idle time delay currently in use by timer. -;; This is used to determine if eldoc-idle-delay is changed by the user. -(defvar eldoc-current-idle-delay eldoc-idle-delay) +(defvar eldoc-current-idle-delay eldoc-idle-delay + "idle time delay currently in use by timer. +This is used to determine if `eldoc-idle-delay' is changed by the user.") ;;;###autoload @@ -408,58 +408,38 @@ Emacs Lisp mode) that support Eldoc.") ;; These functions do display-command table management. (defun eldoc-add-command (&rest cmds) - (or eldoc-message-commands - (setq eldoc-message-commands - (make-vector eldoc-message-commands-table-size 0))) - - (let (name sym) - (while cmds - (setq name (car cmds)) - (setq cmds (cdr cmds)) - - (cond ((symbolp name) - (setq sym name) - (setq name (symbol-name sym))) - ((stringp name) - (setq sym (intern-soft name)))) - - (and (symbolp sym) - (fboundp sym) - (set (intern name eldoc-message-commands) t))))) + (dolist (name cmds) + (and (symbolp name) + (setq name (symbol-name name))) + (set (intern name eldoc-message-commands) t))) (defun eldoc-add-command-completions (&rest names) - (while names - (apply 'eldoc-add-command - (all-completions (car names) obarray 'fboundp)) - (setq names (cdr names)))) + (dolist (name names) + (apply 'eldoc-add-command (all-completions name obarray 'commandp)))) (defun eldoc-remove-command (&rest cmds) - (let (name) - (while cmds - (setq name (car cmds)) - (setq cmds (cdr cmds)) - - (and (symbolp name) - (setq name (symbol-name name))) - - (unintern name eldoc-message-commands)))) + (dolist (name cmds) + (and (symbolp name) + (setq name (symbol-name name))) + (unintern name eldoc-message-commands))) (defun eldoc-remove-command-completions (&rest names) - (while names + (dolist (name names) (apply 'eldoc-remove-command - (all-completions (car names) eldoc-message-commands)) - (setq names (cdr names)))) + (all-completions name eldoc-message-commands)))) ;; Prime the command list. (eldoc-add-command-completions - "backward-" "beginning-of-" "delete-other-windows" "delete-window" - "end-of-" "forward-" "indent-for-tab-command" "goto-" "mouse-set-point" - "next-" "other-window" "previous-" "recenter" "scroll-" - "self-insert-command" "split-window-" - "up-list" "down-list") + "backward-" "beginning-of-" "move-beginning-of-" "delete-other-windows" + "delete-window" + "end-of-" "move-end-of-" "exchange-point-and-mark" "forward-" + "indent-for-tab-command" "goto-" "mark-page" "mark-paragraph" + "mouse-set-point" "move-" "pop-global-mark" "next-" "other-window" + "previous-" "recenter" "scroll-" "self-insert-command" + "split-window-" "up-list" "down-list") (provide 'eldoc) -;;; arch-tag: c9a58f9d-2055-46c1-9b82-7248b71a8375 +;; arch-tag: c9a58f9d-2055-46c1-9b82-7248b71a8375 ;;; eldoc.el ends here