mirror of
https://github.com/doomemacs/doomemacs
synced 2025-08-03 12:27:26 -05:00
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:
@ -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
|
||||
|
Reference in New Issue
Block a user