1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-08 15:35:02 +00:00

(calc-help-function-list, calc-help-variable-list): New variables.

(calc-help-index-entries): New function.

(calc-describe-function):  Use calc-help-function-list instead of
obarray for completion.

(calc-describe-variable):  Use calc-help-variable-list instead of
obarray for completion.
This commit is contained in:
Jay Belanger 2004-10-12 15:47:32 +00:00
parent 16fe48b424
commit 6fb690e298

View File

@ -296,29 +296,57 @@ C-w Describe how there is no warranty for Calc."
(calc-describe-thing desc "Key Index" nil
(string-match "[A-Z][A-Z][A-Z]" desc))))))
(defvar calc-help-function-list nil
"List of functions provided by Calc.")
(defvar calc-help-variable-list nil
"List of variables provided by Calc.")
(defun calc-help-index-entries (&rest indices)
"Create a list of entries from the INDICES in the Calc info manual."
(let ((entrylist '())
entry)
(require 'info nil t)
(while indices
(condition-case nil
(with-temp-buffer
(Info-mode)
(Info-goto-node (concat "(Calc)" (car indices) " Index"))
(goto-char (point-min))
(while (re-search-forward "\n\\* \\(.*\\): " nil t)
(setq entry (match-string 1))
(if (and (not (string-match "<[1-9]+>" entry))
(not (string-match "(.*)" entry))
(not (string= entry "Menu")))
(unless (assoc entry entrylist)
(setq entrylist (cons entry entrylist))))))
(error nil))
(setq indices (cdr indices)))
entrylist))
(defun calc-describe-function (&optional func)
(interactive)
(unless calc-help-function-list
(setq calc-help-function-list
(calc-help-index-entries "Function" "Command")))
(or func
(setq func (intern (completing-read "Describe function: "
obarray nil t "calcFunc-"))))
(setq func (symbol-name func))
(setq func (completing-read "Describe function: "
calc-help-function-list
nil t)))
(if (string-match "\\`calc-." func)
(calc-describe-thing func "Command Index")
(calc-describe-thing (if (string-match "\\`calcFunc-." func)
(substring func 9)
func)
"Function Index")))
(calc-describe-thing func "Function Index")))
(defun calc-describe-variable (&optional var)
(interactive)
(unless calc-help-variable-list
(setq calc-help-variable-list
(calc-help-index-entries "Variable")))
(or var
(setq var (intern (completing-read "Describe variable: "
obarray nil t "var-"))))
(setq var (symbol-name var))
(calc-describe-thing var "Variable Index"
(if (string-match "\\`var-." var)
(substring var 4)
var)))
(setq var (completing-read "Describe variable: "
calc-help-variable-list
nil t)))
(calc-describe-thing var "Variable Index"))
(defun calc-describe-thing (thing where &optional target not-quoted)
(message "Looking for `%s' in %s..." thing where)