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
|
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).
|
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)"
|
\(fn [:append :local] HOOKS FUNCTIONS)"
|
||||||
(declare (indent defun) (debug t))
|
(declare (indent defun) (debug t))
|
||||||
(let ((hook-fn 'add-hook)
|
(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
|
:defer t
|
||||||
:init
|
:init
|
||||||
(advice-add 'describe-function-1 :after #'elisp-demos-advice-describe-function-1)
|
(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
|
(def-package! buttercup
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue