Add elisp demos for Doom API in helpful buffer
This commit is contained in:
parent
b90dede1ab
commit
be789caa04
3 changed files with 58 additions and 11 deletions
|
@ -356,16 +356,6 @@ This macro accepts, in order:
|
|||
3. The function(s) to be added: this can be one function, a list thereof, a
|
||||
list of `defun's, or body forms (implicitly wrapped in a closure).
|
||||
|
||||
Examples:
|
||||
(add-hook! 'some-mode-hook 'enable-something) (same as `add-hook')
|
||||
(add-hook! some-mode '(enable-something and-another))
|
||||
(add-hook! '(one-mode-hook second-mode-hook) 'enable-something)
|
||||
(add-hook! (one-mode second-mode) 'enable-something)
|
||||
(add-hook! :append (one-mode second-mode) 'enable-something)
|
||||
(add-hook! :local (one-mode second-mode) 'enable-something)
|
||||
(add-hook! (one-mode second-mode) (setq v 5) (setq a 2))
|
||||
(add-hook! :append :local (one-mode second-mode) (setq v 5) (setq a 2))
|
||||
|
||||
\(fn [:append :local] HOOKS FUNCTIONS)"
|
||||
(declare (indent defun) (debug t))
|
||||
(let ((hook-fn 'add-hook)
|
||||
|
|
50
docs/api.org
Normal file
50
docs/api.org
Normal file
|
@ -0,0 +1,50 @@
|
|||
#+TITLE: API Demos
|
||||
|
||||
This appendix serves as a reference on how to use Doom Emacs' standard library.
|
||||
It is integrated into Helpful, in Doom.
|
||||
|
||||
* add-hook!
|
||||
#+BEGIN_SRC elisp :eval no
|
||||
;; With only one hook and one function, this is identical to `add-hook'. In that
|
||||
;; case, use that instead.
|
||||
(add-hook! 'some-mode-hook 'enable-something)
|
||||
|
||||
;; Adding many-to-many functions to hooks
|
||||
(add-hook! some-mode '(enable-something and-another))
|
||||
(add-hook! '(one-mode-hook second-mode-hook) 'enable-something)
|
||||
(add-hook! (one-mode second-mode) 'enable-something)
|
||||
|
||||
;; Appending and local hooks
|
||||
(add-hook! :append (one-mode second-mode) 'enable-something)
|
||||
(add-hook! :local (one-mode second-mode) 'enable-something)
|
||||
|
||||
;; With arbitrary forms
|
||||
(add-hook! (one-mode second-mode) (setq v 5) (setq a 2))
|
||||
(add-hook! :append :local (one-mode second-mode) (setq v 5) (setq a 2))
|
||||
|
||||
;; Inline named hook functions
|
||||
(add-hook! '(one-mode-hook second-mode-hook)
|
||||
(defun do-something ()
|
||||
...)
|
||||
(defun do-another-thing ()
|
||||
...))
|
||||
#+END_SRC
|
||||
|
||||
* remove-hook!
|
||||
#+BEGIN_SRC elisp :eval no
|
||||
;; With only one hook and one function, this is identical to `add-hook'. In that
|
||||
;; case, use that instead.
|
||||
(remove-hook! 'some-mode-hook 'enable-something)
|
||||
|
||||
;; Adding many-to-many functions to hooks
|
||||
(remove-hook! some-mode '(enable-something and-another))
|
||||
(remove-hook! '(one-mode-hook second-mode-hook) 'enable-something)
|
||||
(remove-hook! (one-mode second-mode) 'enable-something)
|
||||
|
||||
;; Appending and local hooks
|
||||
(remove-hook! :append (one-mode second-mode) 'enable-something)
|
||||
(remove-hook! :local (one-mode second-mode) 'enable-something)
|
||||
|
||||
;; With arbitrary forms
|
||||
(remove-hook! (one-mode second-mode) (setq v 5) (setq a 2))
|
||||
#+END_SRC
|
|
@ -122,7 +122,14 @@ This marks a foldable marker for `outline-minor-mode' in elisp buffers.")
|
|||
:defer t
|
||||
:init
|
||||
(advice-add 'describe-function-1 :after #'elisp-demos-advice-describe-function-1)
|
||||
(advice-add 'helpful-update :after #'elisp-demos-advice-helpful-update))
|
||||
(advice-add 'helpful-update :after #'elisp-demos-advice-helpful-update)
|
||||
:config
|
||||
(def-advice! +emacs-lisp-elisp-demos--search-a (orig-fn symbol)
|
||||
"Add Doom's own demos to help buffers."
|
||||
:around #'elisp-demos--search
|
||||
(or (funcall orig-fn symbol)
|
||||
(when-let* ((elisp-demos--elisp-demos.org (doom-glob doom-docs-dir "api.org")))
|
||||
(funcall orig-fn symbol)))))
|
||||
|
||||
|
||||
(def-package! buttercup
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue