From a80ae71b05c6c8833f0668caa0cfd45a5d9b9dbb Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 6 May 2020 21:01:04 -0400 Subject: [PATCH] Append elisp variable's value to eldoc --- modules/lang/emacs-lisp/config.el | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/modules/lang/emacs-lisp/config.el b/modules/lang/emacs-lisp/config.el index 6f80d6cfd..b3748b337 100644 --- a/modules/lang/emacs-lisp/config.el +++ b/modules/lang/emacs-lisp/config.el @@ -84,6 +84,24 @@ This marks a foldable marker for `outline-minor-mode' in elisp buffers.") ;; Recenter window after following definition (advice-add #'elisp-def :after #'doom-recenter-a) + (defadvice! +emacs-lisp-append-value-to-eldoc-a (orig-fn sym) + "Display variable value next to documentation in eldoc." + :around #'elisp-get-var-docstring + (when-let (ret (funcall orig-fn sym)) + (concat ret " " + (let* ((truncated " [...]") + (limit (- (frame-width) (length ret) (length truncated) 1)) + (str (symbol-value sym)) + (str (prin1-to-string + (if (stringp str) + (replace-regexp-in-string "\n" " " str) + str))) + (str-length (length str)) + (short (< str-length limit))) + (concat (substring (propertize str 'face 'warning) + 0 (if short str-length limit)) + (unless short truncated)))))) + (map! :localleader :map emacs-lisp-mode-map :desc "Expand macro" "m" #'macrostep-expand