emacs-devel
[Top][All Lists]
Advanced

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

Re: address@hidden: links in Help buffer aren't alwayscorrect]


From: Kevin Rodgers
Subject: Re: address@hidden: links in Help buffer aren't alwayscorrect]
Date: Tue, 13 Dec 2005 16:53:56 -0700
User-agent: Mozilla Thunderbird 0.9 (X11/20041105)

Drew Adams wrote:
> There may not be a `describe-frame-parameter' function, but the
> `help-make-xrefs' code could use a preceding "frame parameter" to link to
> the Info section describing the `buffer-list' parameter. Or, at the very
> least, it could test for preceding "frame parameter" in order to do nothing
> (add no link) if it is present.

Here's a start, cobbled together from describe-variable and your idea of
linking to the Info node:

(defun describe-frame-parameter (parameter &optional frame)
  "Display the full documentation of frame PARAMETER (a symbol) in FRAME.
If FRAME is nil, describe the selected frame's parameter value."
  (interactive
   (let* ((enable-recursive-minibuffers t)
          (default-param (symbol-at-point))
          (param-alist (frame-parameters nil))
          (param-name
           (completing-read (if (assq default-param param-alist)
                                (format "Describe parameter (default %s): "
                                        default-param)
                              "Describe parameter: ")
                            obarray
                            (lambda (p) (assq p param-alist))
                            t nil nil
(if default-param (symbol-name default-param)))))
     (list (if (equal param-name "")
               default-param
             (intern param-name)))))
  (if (null frame)
      (setq frame (selected-frame)))
  (if (null parameter)
      (message "You did not specify a frame parameter")
    (with-output-to-temp-buffer "*Help*"
      (prin1 parameter)
      (princ "'s value is ")
      (terpri)
      (let ((param-value (frame-parameter frame parameter)))
        (with-current-buffer standard-output
          (let ((from (point)))
            (pp param-value)
            ;; (help-xref-on-pp from (point))
            (if (< (point) (+ from 20))
                (save-excursion
                  (goto-char from)
                  (delete-char -1))))))
      (terpri)
      (terpri)
(princ "Documentation (see Info node `(elisp)Window Frame Parameters'):")
      (terpri)
      (save-excursion
        (save-window-excursion
          (Info-goto-node "(elisp)Window Frame Parameters")
          (princ (buffer-substring
(re-search-forward (concat "^`" (symbol-name parameter) "'")) (1- (or (re-search-forward "^`" nil t) (point-max))))))))))

--
Kevin Rodgers





reply via email to

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