From bc00a4947543c0159a3d5e39750eb1b31e33963e Mon Sep 17 00:00:00 2001 From: Luigi Sartor Piucco Date: Wed, 20 Sep 2023 10:54:28 -0300 Subject: [PATCH] docs(corfu): simplify and show how to add capfs --- modules/completion/corfu/README.org | 13 +++++++++++++ modules/completion/corfu/config.el | 7 ++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/modules/completion/corfu/README.org b/modules/completion/corfu/README.org index 689855e81..fd964833a 100644 --- a/modules/completion/corfu/README.org +++ b/modules/completion/corfu/README.org @@ -128,6 +128,19 @@ A few variables may be set to change behavior of this module: - [[var:+corfu-icon-mapping]] :: Configures icons used for each completion. See its documentation for details. +** Adding CAPFs to a mode +To add other CAPFs on a mode-per-mode basis, put either of the following in your +~config.el~: + +#+begin_src emacs-lisp +(add-hook! some-mode (add-to-list 'completion-at-point-functions #'some-capf)) +;; OR, but note the different call signature +(add-hook 'some-mode-hook (lambda () (add-to-list 'completion-at-point-functions #'some-capf))) +#+end_src + +Also see ~add-hook!~'s documentation for additional ways to call it. +~add-hook~ only accepts the quoted arguments form above. + * Troubleshooting [[doom-report:][Report an issue?]] diff --git a/modules/completion/corfu/config.el b/modules/completion/corfu/config.el index b1e38a844..150047911 100644 --- a/modules/completion/corfu/config.el +++ b/modules/completion/corfu/config.el @@ -153,14 +153,11 @@ Meant as :around advice for `corfu--recompute'." (map! :map 'corfu-map "s-" #'corfu-move-to-minibuffer (:when (modulep! :editor evil) "s-j" #'corfu-move-to-minibuffer)))) -(defmacro +corfu--add-capf! (capf) - "Create sexp to add CAPF to the list of CAPFs." - `(add-to-list 'completion-at-point-functions ,capf)) (use-package! cape :after corfu :config - (add-hook! prog-mode (+corfu--add-capf! #'cape-file)) - (add-hook! (org-mode markdown-mode) (+corfu--add-capf! #'cape-elisp-block)) + (add-hook! prog-mode (add-to-list 'completion-at-point-functions #'cape-file)) + (add-hook! (org-mode markdown-mode) (add-to-list 'completion-at-point-functions #'cape-elisp-block)) (advice-add #'lsp-completion-at-point :around #'cape-wrap-noninterruptible)) (use-package! yasnippet-capf