Improve the shortdoc link action in *Help* buffers

* lisp/emacs-lisp/shortdoc.el (shortdoc-display-group): Allow
taking an optional parameter to place point on a specific function.
(shortdoc--display-function): Go to the function in question in
the shortdoc buffer.
This commit is contained in:
Lars Ingebrigtsen 2021-07-15 18:29:27 +02:00
parent ceecac4c79
commit 22a5482ab6
2 changed files with 9 additions and 6 deletions

View file

@ -1141,8 +1141,9 @@ There can be any number of :example/:result elements."
:eval (sqrt -1)))
;;;###autoload
(defun shortdoc-display-group (group)
"Pop to a buffer with short documentation summary for functions in GROUP."
(defun shortdoc-display-group (group &optional function)
"Pop to a buffer with short documentation summary for functions in GROUP.
If FUNCTION is non-nil, place point on the entry for FUNCTION (if any)."
(interactive (list (completing-read "Show summary for functions in: "
(mapcar #'car shortdoc--groups))))
(when (stringp group)
@ -1173,15 +1174,17 @@ There can be any number of :example/:result elements."
(setq prev t)
(shortdoc--display-function data))))
(cdr (assq group shortdoc--groups))))
(goto-char (point-min)))
(goto-char (point-min))
(when function
(text-property-search-forward 'shortdoc-function function t)
(beginning-of-line)))
(defun shortdoc--display-function (data)
(let ((function (pop data))
(start-section (point))
arglist-start)
;; Function calling convention.
(insert (propertize "("
'shortdoc-function t))
(insert (propertize "(" 'shortdoc-function function))
(if (plist-get data :no-manual)
(insert-text-button
(symbol-name function)

View file

@ -752,7 +752,7 @@ FILE is the file where FUNCTION was probably defined."
(insert-text-button
(symbol-name group)
'action (lambda (_)
(shortdoc-display-group group))
(shortdoc-display-group group object))
'follow-link t
'help-echo (purecopy "mouse-1, RET: show documentation group")))
groups)