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

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

[elpa] externals/corfu 408bc11 28/29: Add corfu--completion-in-region


From: Stefan Monnier
Subject: [elpa] externals/corfu 408bc11 28/29: Add corfu--completion-in-region
Date: Fri, 16 Apr 2021 18:44:19 -0400 (EDT)

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

    Add corfu--completion-in-region
---
 README.org |  4 +++-
 corfu.el   | 20 ++++++++++++--------
 2 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/README.org b/README.org
index 8724fec..7155590 100644
--- a/README.org
+++ b/README.org
@@ -66,7 +66,9 @@ completion. Here is an example configuration:
     :hook ((prog-mode . corfu-mode)
            (eshell-mode . corfu-mode))
 
-    ;; Optionall enable cycling for `corfu-next' and `corfu-previous'.
+    :config
+
+    ;; Optionally enable cycling for `corfu-next' and `corfu-previous'.
     ;; (setq corfu-cycle t)
   )
 
diff --git a/corfu.el b/corfu.el
index 27beac6..d5def1a 100644
--- a/corfu.el
+++ b/corfu.el
@@ -148,9 +148,7 @@
     corfu--input
     corfu--total
     corfu--overlays
-    corfu--extra-properties
-    completion-show-inline-help
-    completion-auto-help)
+    corfu--extra-properties)
   "Buffer-local state variables used by Corfu.")
 
 (defun corfu--char-size ()
@@ -526,8 +524,6 @@
   "Setup Corfu completion state."
   ;; Keep completion alive when popup is shown (disable predicate check!)
   (remove-hook 'post-command-hook #'completion-in-region--postch)
-  (set (make-local-variable 'completion-show-inline-help) nil)
-  (set (make-local-variable 'completion-auto-help) nil)
   (setq corfu--extra-properties completion-extra-properties)
   (setcdr (assq #'completion-in-region-mode minor-mode-overriding-map-alist) 
corfu-map)
   (add-hook 'pre-command-hook #'corfu--pre-command-hook nil 'local)
@@ -546,13 +542,21 @@
       (corfu--setup)
     (corfu--teardown)))
 
+(defun corfu--completion-in-region (&rest args)
+  "Corfu completion in region function passing ARGS to 
`completion--in-region'."
+  (let ((completion-show-inline-help)
+        (completion-auto-help))
+    (apply #'completion--in-region args)))
+
 ;;;###autoload
 (define-minor-mode corfu-mode
   "Completion Overlay Region FUnction"
   :local t
-  (if corfu-mode
-      (add-hook 'completion-in-region-mode-hook #'corfu--mode-hook nil 'local)
-    (remove-hook 'completion-in-region-mode-hook #'corfu--mode-hook 'local)))
+  (remove-hook 'completion-in-region-mode-hook #'corfu--mode-hook 'local)
+  (kill-local-variable completion-in-region-function)
+  (when corfu-mode
+    (add-hook 'completion-in-region-mode-hook #'corfu--mode-hook nil 'local)
+    (setq-local completion-in-region-function #'corfu--completion-in-region)))
 
 (provide 'corfu)
 ;;; corfu.el ends here



reply via email to

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