Mercurial > emacs
changeset 20519:c7b3ef0ed1ad
(info-lookup-symbol-alist): Handle Emacs Lisp mode.
(info-lookup-make-completions): Catch errors one file at a time.
Use a special temp buffer, not the usual info buffer,
and never display it in a window.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Fri, 26 Dec 1997 10:47:20 +0000 |
parents | 43c51bf05a49 |
children | 7be5edf3710f |
files | lisp/info-look.el |
diffstat | 1 files changed, 32 insertions(+), 26 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/info-look.el Fri Dec 26 10:41:25 1997 +0000 +++ b/lisp/info-look.el Fri Dec 26 10:47:20 1997 +0000 @@ -173,6 +173,11 @@ ("(termcap)Var Index" nil "^[ \t]*`" "'")) info-lookup-guess-c-symbol) + (emacs-lisp-mode + "[-_a-zA-Z+=*:&%$#@!^~][-_a-zA-Z0-9+=*:&%$#@!^~]*" nil + ("(elisp)Index" nil + "^[ \t]+- \\(Function\\|Macro\\|User Option\\|Variable\\): .*\\<" + "\\>")) (m4-mode "[_a-zA-Z][_a-zA-Z0-9]*" nil (("(m4)Macro index")) @@ -353,26 +358,28 @@ (defun info-lookup-make-completions (topic mode) "Create a unique alist from all index entries." - (condition-case nil - (let ((doc-spec (info-lookup->doc-spec topic mode)) - (regexp (concat "^\\(" (info-lookup->regexp topic mode) - "\\)\\([ \t].*\\)?$")) - node trans entry item prefix result) - (save-window-excursion - (info) - (while doc-spec - (setq node (nth 0 (car doc-spec)) - trans (cond ((eq (nth 1 (car doc-spec)) nil) - (lambda (arg) - (if (string-match regexp arg) - (match-string 1 arg)))) - ((stringp (nth 1 (car doc-spec))) - (setq prefix (nth 1 (car doc-spec))) - (lambda (arg) - (if (string-match "^\\([^: \t\n]+\\)" arg) - (concat prefix (match-string 1 arg))))) - (t (nth 1 (car doc-spec))))) - (message "Processing Info node \"%s\"..." node) + (let ((doc-spec (info-lookup->doc-spec topic mode)) + (regexp (concat "^\\(" (info-lookup->regexp topic mode) + "\\)\\([ \t].*\\)?$")) + node trans entry item prefix result + (buffer (get-buffer-create " temp-info-look"))) + (with-current-buffer buffer + (Info-mode)) + (while doc-spec + (setq node (nth 0 (car doc-spec)) + trans (cond ((eq (nth 1 (car doc-spec)) nil) + (lambda (arg) + (if (string-match regexp arg) + (match-string 1 arg)))) + ((stringp (nth 1 (car doc-spec))) + (setq prefix (nth 1 (car doc-spec))) + (lambda (arg) + (if (string-match "^\\([^: \t\n]+\\)" arg) + (concat prefix (match-string 1 arg))))) + (t (nth 1 (car doc-spec))))) + (condition-case nil + (with-current-buffer buffer + (message "Processing Info node `%s'..." node) (Info-goto-node node) (goto-char (point-min)) (and (search-forward "\n* Menu:" nil t) @@ -384,12 +391,11 @@ (and (string-equal entry item) (setq entry nil)) (or (assoc item result) - (setq result (cons (cons item entry) result))))) - (message "Processing Info node \"%s\"... done" node) - (setq doc-spec (cdr doc-spec))) - (Info-directory)) - result) - (error nil))) + (setq result (cons (cons item entry) result)))))) + (error nil)) + (message "Processing Info node `%s'...done" node) + (setq doc-spec (cdr doc-spec))) + result)) (defun info-lookup-guess-default (topic mode) "Pick up default item at point (with favor to look back).