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))) :eval (sqrt -1)))
;;;###autoload ;;;###autoload
(defun shortdoc-display-group (group) (defun shortdoc-display-group (group &optional function)
"Pop to a buffer with short documentation summary for functions in GROUP." "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: " (interactive (list (completing-read "Show summary for functions in: "
(mapcar #'car shortdoc--groups)))) (mapcar #'car shortdoc--groups))))
(when (stringp group) (when (stringp group)
@ -1173,15 +1174,17 @@ There can be any number of :example/:result elements."
(setq prev t) (setq prev t)
(shortdoc--display-function data)))) (shortdoc--display-function data))))
(cdr (assq group shortdoc--groups)))) (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) (defun shortdoc--display-function (data)
(let ((function (pop data)) (let ((function (pop data))
(start-section (point)) (start-section (point))
arglist-start) arglist-start)
;; Function calling convention. ;; Function calling convention.
(insert (propertize "(" (insert (propertize "(" 'shortdoc-function function))
'shortdoc-function t))
(if (plist-get data :no-manual) (if (plist-get data :no-manual)
(insert-text-button (insert-text-button
(symbol-name function) (symbol-name function)

View file

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