diff --git a/lisp/lib/help.el b/lisp/lib/help.el index e23c21a9f..ea978298c 100644 --- a/lisp/lib/help.el +++ b/lisp/lib/help.el @@ -102,6 +102,24 @@ selection of all minor-modes, active or not." (funcall (or (command-remapping fn) fn) symbol))) +(defun doom/describe-char (event) + "Like `describe-char', but will operate at mouse point if given prefix arg." + (interactive + (list (if current-prefix-arg + (save-window-excursion + (message "Click what to describe...") + (or (when-let ((evt (read--potential-mouse-event))) + ;; Discard mouse release event + (read--potential-mouse-event) + (cadr evt)) + (user-error "Aborted"))) + (point)))) + (if (integerp event) + (describe-char event) + (when event + (with-selected-window (posn-window event) + (describe-char (posn-point event)))))) + ;; ;;; Documentation commands diff --git a/modules/config/default/config.el b/modules/config/default/config.el index 9a47242fa..6a6d6389e 100644 --- a/modules/config/default/config.el +++ b/modules/config/default/config.el @@ -369,7 +369,7 @@ Continues comments if executed from a commented line." ;; universal. (define-key! help-map ;; new keybinds - "'" #'describe-char + "'" #'doom/describe-char "u" #'doom/help-autodefs "E" #'doom/sandbox "M" #'doom/describe-active-minor-mode