1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-27 07:37:33 +00:00

* lisp/help-mode.el (help-bookmark-make-record, help-bookmark-jump): New funs.

(help-mode): Use them.
This commit is contained in:
Drew Adams 2012-06-11 21:03:10 -04:00 committed by Stefan Monnier
parent 43682bb61e
commit 0c9e42b592
2 changed files with 41 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2012-06-12 Drew Adams <drew.adams@oracle.com>
* help-mode.el (help-bookmark-make-record, help-bookmark-jump):
New functions.
(help-mode): Use them.
2012-06-11 Glenn Morris <rgm@gnu.org>
* progmodes/fortran.el (fortran-font-lock-keywords-3):

View File

@ -267,6 +267,8 @@ The format is (FUNCTION ARGS...).")
'help-function 'customize-create-theme
'help-echo (purecopy "mouse-2, RET: edit this theme file"))
(defvar bookmark-make-record-function)
;;;###autoload
(define-derived-mode help-mode special-mode "Help"
"Major mode for viewing help text and navigating references in it.
@ -274,7 +276,9 @@ Entry to this mode runs the normal hook `help-mode-hook'.
Commands:
\\{help-mode-map}"
(set (make-local-variable 'revert-buffer-function)
'help-mode-revert-buffer))
'help-mode-revert-buffer)
(set (make-local-variable 'bookmark-make-record-function)
'help-bookmark-make-record))
;;;###autoload
(defun help-mode-setup ()
@ -791,6 +795,36 @@ help buffer by other means."
(with-output-to-temp-buffer (help-buffer)
(insert string)))
;; Bookmark support
(declare-function bookmark-prop-get "bookmark" (bookmark prop))
(defun help-bookmark-make-record ()
"Create and return a help-mode bookmark record.
Implements `bookmark-make-record-function' for help-mode buffers."
(unless (car help-xref-stack-item)
(error "Cannot create bookmark - help command not known"))
`(,@(bookmark-make-record-default 'NO-FILE 'NO-CONTEXT)
(buffer-name . "*Help*")
(help-fn . ,(car help-xref-stack-item))
(help-arg . ,(cadr help-xref-stack-item))
(position . ,(point))
(handler . help-bookmark-jump)))
;;;###autoload
(defun help-bookmark-jump (bookmark)
"Jump to help-mode bookmark BOOKMARK.
Handler function for record returned by `help-bookmark-make-record'.
BOOKMARK is a bookmark name or a bookmark record."
(let ((help-fn (bookmark-prop-get bookmark 'help-fn))
(help-arg (bookmark-prop-get bookmark 'help-arg))
(position (bookmark-prop-get bookmark 'position)))
(funcall help-fn help-arg)
(pop-to-buffer "*Help*")
(goto-char position)))
(provide 'help-mode)
;;; help-mode.el ends here