Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-88

Merge from emacs--cvs-trunk--0

Patches applied:

 * emacs--cvs-trunk--0  (patch 569-579)

   - Update from CVS
   - Merge from gnus--rel--5.10

 * gnus--rel--5.10  (patch 129-132)

   - Update from CVS
   - Merge from emacs--cvs-trunk--0
This commit is contained in:
Miles Bader 2005-10-07 07:15:40 +00:00
commit 00e18f33ad
171 changed files with 6118 additions and 17181 deletions

View file

@ -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)
(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.")
;; 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)
(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'.")
;; 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))
(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,53 +408,32 @@ 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-" "exchange-point-and-mark" "forward-"
"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"
@ -462,5 +441,5 @@ Emacs Lisp mode) that support Eldoc.")
(provide 'eldoc)
;;; arch-tag: c9a58f9d-2055-46c1-9b82-7248b71a8375
;; arch-tag: c9a58f9d-2055-46c1-9b82-7248b71a8375
;;; eldoc.el ends here

View file

@ -59,9 +59,9 @@
(modify-syntax-entry ?\t " " table)
(modify-syntax-entry ?\f " " table)
(modify-syntax-entry ?\n "> " table)
;;; This is probably obsolete since nowadays such features use overlays.
;;; ;; Give CR the same syntax as newline, for selective-display.
;;; (modify-syntax-entry ?\^m "> " table)
;; This is probably obsolete since nowadays such features use overlays.
;; ;; Give CR the same syntax as newline, for selective-display.
;; (modify-syntax-entry ?\^m "> " table)
(modify-syntax-entry ?\; "< " table)
(modify-syntax-entry ?` "' " table)
(modify-syntax-entry ?' "' " table)
@ -82,8 +82,8 @@
(let ((table (copy-syntax-table emacs-lisp-mode-syntax-table)))
(modify-syntax-entry ?\[ "_ " table)
(modify-syntax-entry ?\] "_ " table)
(modify-syntax-entry ?# "' 14bn" table)
(modify-syntax-entry ?| "\" 23b" table)
(modify-syntax-entry ?# "' 14b" table)
(modify-syntax-entry ?| "\" 23bn" table)
table))
(define-abbrev-table 'lisp-mode-abbrev-table ())
@ -147,25 +147,45 @@
(put 'define-ibuffer-filter 'doc-string-elt 2)
(put 'define-ibuffer-op 'doc-string-elt 3)
(put 'define-ibuffer-sorter 'doc-string-elt 2)
(put 'lambda 'doc-string-elt 2)
(defvar lisp-doc-string-elt-property 'doc-string-elt
"The symbol property that holds the docstring position info.")
(defun lisp-font-lock-syntactic-face-function (state)
(if (nth 3 state)
(if (and (eq (nth 0 state) 1)
;; This might be a docstring.
(save-excursion
(let ((n 0))
(goto-char (nth 8 state))
(condition-case nil
(while (and (not (bobp))
(progn (backward-sexp 1) (setq n (1+ n)))))
(scan-error nil))
(when (> n 0)
(let ((sym (intern-soft
(buffer-substring
(point) (progn (forward-sexp 1) (point))))))
(eq n (or (get sym 'doc-string-elt) 3)))))))
font-lock-doc-face
font-lock-string-face)
;; This might be a (doc)string or a |...| symbol.
(let ((startpos (nth 8 state)))
(if (eq (char-after startpos) ?|)
;; This is not a string, but a |...| symbol.
nil
(let* ((listbeg (nth 1 state))
(firstsym (and listbeg
(save-excursion
(goto-char listbeg)
(and (looking-at "([ \t\n]*\\(\\(\\sw\\|\\s_\\)+\\)")
(match-string 1)))))
(docelt (and firstsym (get (intern-soft firstsym)
lisp-doc-string-elt-property))))
(if (and docelt
;; It's a string in a form that can have a docstring.
;; Check whether it's in docstring position.
(save-excursion
(when (functionp docelt)
(goto-char (match-end 1))
(setq docelt (funcall docelt)))
(goto-char listbeg)
(forward-char 1)
(condition-case nil
(while (and (> docelt 0) (< (point) startpos)
(progn (forward-sexp 1) t))
(setq docelt (1- docelt)))
(error nil))
(and (zerop docelt) (<= (point) startpos)
(progn (forward-comment (point-max)) t)
(= (point) (nth 8 state)))))
font-lock-doc-face
font-lock-string-face))))
font-lock-comment-face))
;; The LISP-SYNTAX argument is used by code in inf-lisp.el and is