diff --git a/modules/lang/emacs-lisp/autoload.el b/modules/lang/emacs-lisp/autoload.el index fd8e0b343..3b9af8585 100644 --- a/modules/lang/emacs-lisp/autoload.el +++ b/modules/lang/emacs-lisp/autoload.el @@ -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