emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/emacs-lisp/eldoc.el


From: Miles Bader
Subject: [Emacs-diffs] Changes to emacs/lisp/emacs-lisp/eldoc.el
Date: Fri, 04 Apr 2003 01:21:59 -0500

Index: emacs/lisp/emacs-lisp/eldoc.el
diff -c emacs/lisp/emacs-lisp/eldoc.el:1.23 emacs/lisp/emacs-lisp/eldoc.el:1.24
*** emacs/lisp/emacs-lisp/eldoc.el:1.23 Fri Jan  3 06:53:46 2003
--- emacs/lisp/emacs-lisp/eldoc.el      Mon Feb 10 19:11:55 2003
***************
*** 7,13 ****
  ;; Keywords: extensions
  ;; Created: 1995-10-06
  
! ;; $Id: eldoc.el,v 1.23 2003/01/03 11:53:46 jpw Exp $
  
  ;; This file is part of GNU Emacs.
  
--- 7,13 ----
  ;; Keywords: extensions
  ;; Created: 1995-10-06
  
! ;; $Id: eldoc.el,v 1.24 2003/02/11 00:11:55 monnier Exp $
  
  ;; This file is part of GNU Emacs.
  
***************
*** 49,61 ****
  
  (require 'help-fns)                  ;For fundoc-usage handling functions.
  
- ;; Use idle timers if available in the version of emacs running.
- ;; Please don't change this to use `require'; this package works
- ;; as-is in XEmacs 19.14 and later and I am striving to maintain
- ;; compatibility between emacs variants.
- (or (featurep 'timer)
-     (load "timer" t))
- 
  (defgroup eldoc nil
    "Show function arglist or variable docstring in echo area."
    :group 'lisp
--- 49,54 ----
***************
*** 99,108 ****
  
  If value is nil, messages are always truncated to fit in a single line of
  display in the echo area.  Function or variable symbol name may be
! truncated to make more of the arglist or documentation string visible.
! 
! Non-nil values for this variable have no effect unless
! `eldoc-echo-area-multiline-supported-p' is non-nil."
    :type '(radio (const :tag "Always" t)
                  (const :tag "Never" nil)
                  (const :tag "Yes, but truncate symbol names if it will\
--- 92,98 ----
  
  If value is nil, messages are always truncated to fit in a single line of
  display in the echo area.  Function or variable symbol name may be
! truncated to make more of the arglist or documentation string visible."
    :type '(radio (const :tag "Always" t)
                  (const :tag "Never" nil)
                  (const :tag "Yes, but truncate symbol names if it will\
***************
*** 111,122 ****
  
  ;;; No user options below here.
  
- ;; Non-nil if this version of emacs supports dynamically resizable echo areas.
- (defvar eldoc-echo-area-multiline-supported-p
-   (and (string-lessp "21" emacs-version)
-        (save-match-data
-          (numberp (string-match "^GNU Emacs" (emacs-version))))))
- 
  ;; 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
--- 101,106 ----
***************
*** 142,151 ****
  (defvar eldoc-last-data (make-vector 3 nil))
  (defvar eldoc-last-message nil)
  
! ;; Idle timers are supported in Emacs 19.31 and later.
! (defvar eldoc-use-idle-timer-p (fboundp 'run-with-idle-timer))
! 
! ;; eldoc's timer object, if using idle timers
  (defvar eldoc-timer nil)
  
  ;; idle time delay currently in use by timer.
--- 126,132 ----
  (defvar eldoc-last-data (make-vector 3 nil))
  (defvar eldoc-last-message nil)
  
! ;; eldoc's timer object.
  (defvar eldoc-timer nil)
  
  ;; idle time delay currently in use by timer.
***************
*** 170,191 ****
  With prefix ARG, turn ElDoc mode on if and only if ARG is positive."
    nil eldoc-minor-mode-string nil
    (setq eldoc-last-message nil)
!   (cond (eldoc-use-idle-timer-p
!          (add-hook 'post-command-hook 'eldoc-schedule-timer)
!          (add-hook 'pre-command-hook 'eldoc-pre-command-refresh-echo-area))
!         (t
!          ;; Use post-command-idle-hook if defined, otherwise use
!          ;; post-command-hook.  The former is only proper to use in Emacs
!          ;; 19.30; that is the first version in which it appeared, but it
!          ;; was obsolesced by idle timers in Emacs 19.31.
!          (add-hook (if (boundp 'post-command-idle-hook)
!                        'post-command-idle-hook
!                      'post-command-hook)
!                    'eldoc-print-current-symbol-info t t)
!          ;; quick and dirty hack for seeing if this is XEmacs
!          (and (fboundp 'display-message)
!               (add-hook 'pre-command-hook
!                         'eldoc-pre-command-refresh-echo-area t t)))))
  
  ;;;###autoload
  (defun turn-on-eldoc-mode ()
--- 151,162 ----
  With prefix ARG, turn ElDoc mode on if and only if ARG is positive."
    nil eldoc-minor-mode-string nil
    (setq eldoc-last-message nil)
!   (if eldoc-mode
!       (progn
!       (add-hook 'post-command-hook 'eldoc-schedule-timer nil t)
!       (add-hook 'pre-command-hook 'eldoc-pre-command-refresh-echo-area t))
!    (remove-hook 'post-command-hook 'eldoc-schedule-timer)
!    (remove-hook 'pre-command-hook 'eldoc-pre-command-refresh-echo-area)))
  
  ;;;###autoload
  (defun turn-on-eldoc-mode ()
***************
*** 209,241 ****
  
  (defun eldoc-message (&rest args)
    (let ((omessage eldoc-last-message))
!     (cond ((eq (car args) eldoc-last-message))
!           ((or (null args)
!                (null (car args)))
!            (setq eldoc-last-message nil))
!           ;; If only one arg, no formatting to do so put it in
!           ;; eldoc-last-message so eq test above might succeed on
!           ;; subsequent calls.
!           ((null (cdr args))
!            (setq eldoc-last-message (car args)))
!           (t
!            (setq eldoc-last-message (apply 'format args))))
      ;; In emacs 19.29 and later, and XEmacs 19.13 and later, all messages
      ;; are recorded in a log.  Do not put eldoc messages in that log since
      ;; they are Legion.
!     (cond ((fboundp 'display-message)
!            ;; XEmacs 19.13 way of preventing log messages.
!            (cond (eldoc-last-message
!                   (display-message 'no-log eldoc-last-message))
!                  (omessage
!                   (clear-message 'no-log))))
!           (t
!            ;; Emacs way of preventing log messages.
!            (let ((message-log-max nil))
!              (cond (eldoc-last-message
!                     (message "%s" eldoc-last-message))
!                    (omessage
!                     (message nil)))))))
    eldoc-last-message)
  
  ;; This function goes on pre-command-hook for XEmacs or when using idle
--- 180,200 ----
  
  (defun eldoc-message (&rest args)
    (let ((omessage eldoc-last-message))
!     (setq eldoc-last-message 
!         (cond ((eq (car args) eldoc-last-message) eldoc-last-message)
!               ((null (car args)) nil)
!               ;; If only one arg, no formatting to do, so put it in
!               ;; eldoc-last-message so eq test above might succeed on
!               ;; subsequent calls.
!               ((null (cdr args)) (car args))
!               (t (apply 'format args))))
      ;; In emacs 19.29 and later, and XEmacs 19.13 and later, all messages
      ;; are recorded in a log.  Do not put eldoc messages in that log since
      ;; they are Legion.
!     ;; Emacs way of preventing log messages.
!     (let ((message-log-max nil))
!       (cond (eldoc-last-message (message "%s" eldoc-last-message))
!           (omessage (message nil)))))
    eldoc-last-message)
  
  ;; This function goes on pre-command-hook for XEmacs or when using idle
***************
*** 253,276 ****
  ;; Decide whether now is a good time to display a message.
  (defun eldoc-display-message-p ()
    (and (eldoc-display-message-no-interference-p)
!        (cond (eldoc-use-idle-timer-p
!               ;; If this-command is non-nil while running via an idle
!               ;; timer, we're still in the middle of executing a command,
!               ;; e.g. a query-replace where it would be annoying to
!               ;; overwrite the echo area.
!               (and (not this-command)
!                    (symbolp last-command)
!                    (intern-soft (symbol-name last-command)
!                                 eldoc-message-commands)))
!              (t
!               ;; If we don't have idle timers, this function is
!               ;; running on post-command-hook directly; that means the
!               ;; user's last command is still on `this-command', and we
!               ;; must wait briefly for input to see whether to do display.
!               (and (symbolp this-command)
!                    (intern-soft (symbol-name this-command)
!                                 eldoc-message-commands)
!                    (sit-for eldoc-idle-delay))))))
  
  ;; Check various conditions about the current environment that might make
  ;; it undesirable to print eldoc messages right this instant.
--- 212,225 ----
  ;; Decide whether now is a good time to display a message.
  (defun eldoc-display-message-p ()
    (and (eldoc-display-message-no-interference-p)
!        ;; If this-command is non-nil while running via an idle
!        ;; timer, we're still in the middle of executing a command,
!        ;; e.g. a query-replace where it would be annoying to
!        ;; overwrite the echo area.
!        (and (not this-command)
!           (symbolp last-command)
!           (intern-soft (symbol-name last-command)
!                        eldoc-message-commands))))
  
  ;; Check various conditions about the current environment that might make
  ;; it undesirable to print eldoc messages right this instant.
***************
*** 307,315 ****
  (defun eldoc-get-fnsym-args-string (sym)
    (let ((args nil)
          (doc nil))
!     (cond ((not (and sym
!                      (symbolp sym)
!                      (fboundp sym))))
            ((and (eq sym (aref eldoc-last-data 0))
                  (eq 'function (aref eldoc-last-data 2)))
             (setq doc (aref eldoc-last-data 1)))
--- 256,262 ----
  (defun eldoc-get-fnsym-args-string (sym)
    (let ((args nil)
          (doc nil))
!     (cond ((not (and sym (symbolp sym) (fboundp sym))))
            ((and (eq sym (aref eldoc-last-data 0))
                  (eq 'function (aref eldoc-last-data 2)))
             (setq doc (aref eldoc-last-data 1)))
***************
*** 362,369 ****
  (defun eldoc-docstring-format-sym-doc (sym doc)
    (save-match-data
      (let* ((name (symbol-name sym))
!            (ea-multi (and eldoc-echo-area-multiline-supported-p
!                           eldoc-echo-area-use-multiline-p))
             ;; Subtract 1 from window width since emacs will not write
             ;; any chars to the last column, or in later versions, will
             ;; cause a wraparound and resize of the echo area.
--- 309,315 ----
  (defun eldoc-docstring-format-sym-doc (sym doc)
    (save-match-data
      (let* ((name (symbol-name sym))
!            (ea-multi eldoc-echo-area-use-multiline-p)
             ;; Subtract 1 from window width since emacs will not write
             ;; any chars to the last column, or in later versions, will
             ;; cause a wraparound and resize of the echo area.
***************
*** 473,481 ****
  
  (defun eldoc-add-command-completions (&rest names)
    (while names
!       (apply 'eldoc-add-command
!              (all-completions (car names) obarray 'fboundp))
!       (setq names (cdr names))))
  
  (defun eldoc-remove-command (&rest cmds)
    (let (name)
--- 419,427 ----
  
  (defun eldoc-add-command-completions (&rest names)
    (while names
!     (apply 'eldoc-add-command
!          (all-completions (car names) obarray 'fboundp))
!     (setq names (cdr names))))
  
  (defun eldoc-remove-command (&rest cmds)
    (let (name)
***************
*** 486,496 ****
        (and (symbolp name)
             (setq name (symbol-name name)))
  
!       (if (fboundp 'unintern)
!           (unintern name eldoc-message-commands)
!         (let ((s (intern-soft name eldoc-message-commands)))
!           (and s
!                (makunbound s)))))))
  
  (defun eldoc-remove-command-completions (&rest names)
    (while names
--- 432,438 ----
        (and (symbolp name)
             (setq name (symbol-name name)))
  
!       (unintern name eldoc-message-commands))))
  
  (defun eldoc-remove-command-completions (&rest names)
    (while names




reply via email to

[Prev in Thread] Current Thread [Next in Thread]