From cc6b0ee27483dd23567b3438c7bfff2554a23a9e Mon Sep 17 00:00:00 2001 From: Luigi Sartor Piucco Date: Sun, 4 Feb 2024 17:17:13 -0300 Subject: [PATCH] feat(corfu): general move-to-minibuffer impl We relied directly on consult for this, meaning it needed the vertico module. Now, it should defer to the user's choice, including helm, ivy and ido. --- modules/completion/corfu/autoload.el | 11 ++++++----- modules/completion/corfu/config.el | 2 ++ 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/modules/completion/corfu/autoload.el b/modules/completion/corfu/autoload.el index 841802596..589df55bb 100644 --- a/modules/completion/corfu/autoload.el +++ b/modules/completion/corfu/autoload.el @@ -10,12 +10,13 @@ ;;;###autoload (defun +corfu-move-to-minibuffer () - ;; Taken from corfu's README. - ;; TODO: extend this to other completion front-ends. + ;; Adapted from Corfu's README. (interactive) - (let ((completion-extra-properties corfu--extra) - (completion-cycle-threshold completion-cycling)) - (apply #'consult-completion-in-region completion-in-region--data))) + (pcase completion-in-region--data + (`(,beg ,end ,table ,pred . ,extras) + (let ((completion-extra-properties extras) + completion-cycle-threshold completion-cycling) + (funcall (default-value 'completion-in-region-function) beg end table pred))))) ;;;###autoload (defun +corfu-smart-sep-toggle-escape () diff --git a/modules/completion/corfu/config.el b/modules/completion/corfu/config.el index e9ecbf69c..48448b2fa 100644 --- a/modules/completion/corfu/config.el +++ b/modules/completion/corfu/config.el @@ -33,6 +33,8 @@ tab-always-indent (if (modulep! +tng) 'complete tab-always-indent)) (add-to-list 'completion-category-overrides `(lsp-capf (styles ,@completion-styles))) + (add-to-list 'corfu-continue-commands #'+corfu-move-to-minibuffer) + (add-hook! 'minibuffer-setup-hook (defun +corfu-enable-in-minibuffer () "Enable Corfu in the minibuffer if `completion-at-point' is bound."