fix(emacs-lisp): lookup docs backend w/o helpful

Use `helpful-symbol` if it's present and the symbol at point doesn't
represent a cl-type (falling back to `describe-symbol` otherwise).

Fix: #8068
This commit is contained in:
Henrik Lissner 2024-09-16 06:15:15 -04:00
parent 22d5e3059f
commit 0b2ccac007
No known key found for this signature in database
GPG key ID: B60957CA074D39A3

View file

@ -95,6 +95,15 @@ Intended to replace `lisp-outline-level'."
(doom/help-modules (car module) (cadr module) 'visit-dir)
(call-interactively #'elisp-def)))
(defun +emacs-lisp--describe-symbol (symbol)
(if (or (not (fboundp 'helpful-symbol))
(cl-some (lambda (x) (funcall (nth 1 x) symbol))
describe-symbol-backends))
(progn
(describe-symbol symbol)
(pop-to-buffer (help-buffer)))
(helpful-symbol symbol)))
;;;###autoload
(defun +emacs-lisp-lookup-documentation (thing)
"Lookup THING with `helpful-variable' if it's a variable, `helpful-callable'
@ -117,10 +126,12 @@ if it's callable, `apropos' otherwise."
(org-show-hidden-entry))))
'deferred))
(thing
(funcall (if (fboundp #'helpful-symbol)
#'helpful-symbol
#'describe-symbol)
(intern thing)))
(let ((thing (intern thing)))
(if (and (not (cl-find-class thing))
(fboundp 'helpful-symbol))
(helpful-symbol thing)
(describe-symbol thing)
(pop-to-buffer (help-buffer)))))
((call-interactively
(if (fboundp #'helpful-at-point)
#'helpful-at-point