emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/corfu 915b6e4518 1/2: Improve README


From: ELPA Syncer
Subject: [elpa] externals/corfu 915b6e4518 1/2: Improve README
Date: Fri, 15 Nov 2024 00:57:58 -0500 (EST)

branch: externals/corfu
commit 915b6e45183be28648ddff1dccda044014a302f9
Author: Daniel Mendler <mail@daniel-mendler.de>
Commit: Daniel Mendler <mail@daniel-mendler.de>

    Improve README
---
 README.org | 72 +++++++++++++++++++++++++++++++++++++++-----------------------
 1 file changed, 46 insertions(+), 26 deletions(-)

diff --git a/README.org b/README.org
index 038fb81668..8cc82fdfa1 100644
--- a/README.org
+++ b/README.org
@@ -221,24 +221,55 @@ want to cycle with TAB and some with the arrow keys.
 
 In case you like auto completion settings, where the completion popup appears
 immediately, better use a cheap completion style like =basic=, which performs
-prefix filtering. In this case Corfu completion should still be fast in buffers
-with efficient completion backends. You can try the following settings in an
-Elisp buffer or the Emacs scratch buffer. Note that such settings can slow down
-Emacs due to the high load on the Lisp runtime and garbage collector.
+prefix filtering. See the next section about setting Corfu-only completion
+styles. In this case Corfu completion should still be fast in buffers with
+efficient completion backends. You can try the following settings in an Elisp
+buffer or the Emacs scratch buffer. Note that such settings can slow down Emacs
+due to the high load on the Lisp runtime and garbage collector.
 
 #+begin_src emacs-lisp
-(setq-local corfu-auto        t
-            corfu-auto-delay  0 ;; TOO SMALL - NOT RECOMMENDED
-            corfu-auto-prefix 1 ;; TOO SMALL - NOT RECOMMENDED
-            completion-styles '(basic))
+(setq corfu-auto        t
+      corfu-auto-delay  0  ;; TOO SMALL - NOT RECOMMENDED!
+      corfu-auto-prefix 1) ;; TOO SMALL - NOT RECOMMENDED!
+
+(add-hook 'corfu-mode-hook
+          (lambda ()
+            ;; Settings only for Corfu
+            (setq-local completion-styles '(basic)
+                        completion-category-overrides nil
+                        completion-category-defaults nil)))
+#+end_src
+
+** Buffer-local/Corfu-only completion styles
+
+Sometimes it makes sense to use separate completion style settings for
+minibuffer completion and in-buffer Corfu completion. For example inside the
+minibuffer you may prefer advanced Orderless completion, while for Corfu, 
faster
+prefix completion is needed or literal-only completion is sufficient.
+
+This matters in particular if you use aggressive auto completion settings, 
where
+the completion popup appears immediately. Then a cheap completion style like
+=basic= should be used, which performs prefix filtering only.
+
+Such Corfu-only configurations are possible by setting the ~completion-styles~
+variables buffer-locally, as follows:
+
+#+begin_src emacs-lisp
+(orderless-define-completion-style orderless-literal-only
+  (orderless-style-dispatchers nil)
+  (orderless-matching-styles '(orderless-literal)))
+
+(add-hook 'corfu-mode-hook
+          (lambda ()
+            (setq-local completion-styles '(orderless-literal-only basic)
+                        completion-category-overrides nil
+                        completion-category-defaults nil)))
 #+end_src
 
 If you want to combine fast prefix filtering and Orderless filtering you can
 still do that by defining a custom Orderless completion style via
 =orderless-define-completion-style=. We use a custom style dispatcher, which
-enables efficient prefix filtering for input shorter than 4 characters. Note
-that such a setup is advanced. Please refer to the Orderless documentation and
-source code for further details.
+enables efficient prefix filtering for input shorter than 4 characters.
 
 #+begin_src emacs-lisp
 (defun orderless-fast-dispatch (word index total)
@@ -249,24 +280,13 @@ source code for further details.
   (orderless-style-dispatchers '(orderless-fast-dispatch))
   (orderless-matching-styles '(orderless-literal orderless-regexp)))
 
-(setq-local corfu-auto        t
-            corfu-auto-delay  0 ;; TOO SMALL - NOT RECOMMENDED
-            corfu-auto-prefix 1 ;; TOO SMALL - NOT RECOMMENDED
-            completion-styles '(orderless-fast basic))
-#+end_src
+(setq corfu-auto        t
+      corfu-auto-delay  0  ;; TOO SMALL - NOT RECOMMENDED
+      corfu-auto-prefix 1) ;; TOO SMALL - NOT RECOMMENDED
 
-** Buffer-local/Corfu-only completion settings
-
-Sometimes it makes sense to use separate completion style settings for
-minibuffer completion and in-buffer Corfu completion. For example inside the
-minibuffer you may prefer Orderless completion, while for Corfu prefix
-completion is sufficient. Such a configuration is possible by setting the
-~completion-styles~ variables buffer-locally, as follows:
-
-#+begin_src emacs-lisp
 (add-hook 'corfu-mode-hook
           (lambda ()
-            (setq-local completion-styles '(basic)
+            (setq-local completion-styles '(orderless-fast basic)
                         completion-category-overrides nil
                         completion-category-defaults nil)))
 #+end_src



reply via email to

[Prev in Thread] Current Thread [Next in Thread]