refactor!: move helpful from :core to :lang emacs-lisp
BREAKING CHANGE: This moves helpful.el out of core into :lang emacs-lisp. Since most (all) people have this module enabled, this shouldn't make a difference for most people, but if you're one of the few that don't have :lang emacs-lisp enabled, Doom will revert to using Emacs' built-in help.el and describe-* commands. Others can also disable helpful with (package! helpful :disable t) if they prefer Emacs' built-in help system, which wasn't possible before, because it was a core package. This was done as part of an ongoing effort to slim down Doom's core in preparation for v3.
This commit is contained in:
parent
bf9e619533
commit
6671adc687
13 changed files with 127 additions and 116 deletions
|
@ -545,61 +545,6 @@ files, so this replace calls to `pp' with the much faster `prin1'."
|
|||
(message ""))))) ; warn silently
|
||||
(funcall fn arg)))))
|
||||
|
||||
(use-package! helpful
|
||||
;; a better *help* buffer
|
||||
:commands helpful--read-symbol
|
||||
:hook (helpful-mode . visual-line-mode)
|
||||
:init
|
||||
;; Make `apropos' et co search more extensively. They're more useful this way.
|
||||
(setq apropos-do-all t)
|
||||
|
||||
(global-set-key [remap describe-function] #'helpful-callable)
|
||||
(global-set-key [remap describe-command] #'helpful-command)
|
||||
(global-set-key [remap describe-variable] #'helpful-variable)
|
||||
(global-set-key [remap describe-key] #'helpful-key)
|
||||
(global-set-key [remap describe-symbol] #'helpful-symbol)
|
||||
|
||||
(defun doom-use-helpful-a (fn &rest args)
|
||||
"Force FN to use helpful instead of the old describe-* commands."
|
||||
(letf! ((#'describe-function #'helpful-function)
|
||||
(#'describe-variable #'helpful-variable))
|
||||
(apply fn args)))
|
||||
|
||||
(after! apropos
|
||||
;; patch apropos buttons to call helpful instead of help
|
||||
(dolist (fun-bt '(apropos-function apropos-macro apropos-command))
|
||||
(button-type-put
|
||||
fun-bt 'action
|
||||
(lambda (button)
|
||||
(helpful-callable (button-get button 'apropos-symbol)))))
|
||||
(dolist (var-bt '(apropos-variable apropos-user-option))
|
||||
(button-type-put
|
||||
var-bt 'action
|
||||
(lambda (button)
|
||||
(helpful-variable (button-get button 'apropos-symbol))))))
|
||||
|
||||
;; DEPRECATED: Remove when support for 29 is dropped.
|
||||
(when (= emacs-major-version 29)
|
||||
(defadvice! doom--find-function-search-for-symbol-save-excursion-a (fn &rest args)
|
||||
"Suppress cursor movement by `find-function-search-for-symbol'.
|
||||
|
||||
Addresses an unwanted side-effect in `find-function-search-for-symbol' on Emacs
|
||||
29 where the cursor is moved to a variable's definition if it's defined in the
|
||||
current buffer."
|
||||
:around #'find-function-search-for-symbol
|
||||
(let (buf pos)
|
||||
(letf! (defun find-library-name (library)
|
||||
(let ((filename (funcall find-library-name library)))
|
||||
(with-current-buffer (find-file-noselect filename)
|
||||
(setq buf (current-buffer)
|
||||
pos (point)))
|
||||
filename))
|
||||
(prog1 (apply fn args)
|
||||
(when (buffer-live-p buf)
|
||||
(with-current-buffer buf (goto-char pos))))))))
|
||||
:config
|
||||
(setq helpful-set-variable-function #'setq!))
|
||||
|
||||
|
||||
(use-package! smartparens
|
||||
;; Auto-close delimiters and blocks as you type. It's more powerful than that,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue