Bind {C-h, SPC h} V to doom/help-custom-variable

For looking up custom variables (i.e. variables intended to be
customized; defined with defcustom).
This commit is contained in:
Henrik Lissner 2021-01-05 19:08:27 -05:00
parent da177d58c4
commit b89929f3f8
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395
2 changed files with 24 additions and 1 deletions

View file

@ -379,6 +379,29 @@ current file is in, or d) the module associated with the current major mode (see
(doom-project-browse (file-name-directory path))) (doom-project-browse (file-name-directory path)))
((user-error "Aborted module lookup"))))) ((user-error "Aborted module lookup")))))
;;;###autoload
(defun doom/help-custom-variable (var)
"Look up documentation for a custom variable.
Unlike `helpful-variable', which casts a wider net that includes internal
variables, this only lists variables that exist to be customized (defined with
`defcustom')."
(interactive
(list (helpful--read-symbol
"Custom variable: "
(helpful--variable-at-point)
(lambda (sym)
(and (helpful--variable-p sym)
(or (get sym 'custom-type)
(get sym 'custom-package-version)
(get sym 'custom-set))
;; Exclude minor mode state variables, which aren't meant to be
;; modified directly, but through their associated function.
(not (or (and (string-suffix-p "-mode" (symbol-name sym))
(fboundp sym))
(eq (get sym 'custom-set) 'custom-set-minor-mode))))))))
(helpful-variable var))
;; ;;
;;; `doom/help-packages' ;;; `doom/help-packages'

View file

@ -310,7 +310,7 @@ Continues comments if executed from a commented line. Consults
"M" #'doom/describe-active-minor-mode "M" #'doom/describe-active-minor-mode
"O" #'+lookup/online "O" #'+lookup/online
"T" #'doom/toggle-profiler "T" #'doom/toggle-profiler
"V" #'set-variable "V" #'doom/help-custom-variable
"W" #'+default/man-or-woman "W" #'+default/man-or-woman
"C-k" #'describe-key-briefly "C-k" #'describe-key-briefly
"C-l" #'describe-language-environment "C-l" #'describe-language-environment