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. Note the convention for this indirection is using the `completing-read` API, which all such packages implement. This diverges from Corfu's suggestion of `completion-in-region`, which only vertico and ivy seem to implement.
This commit is contained in:
parent
2f755aaffe
commit
5ac126624c
2 changed files with 8 additions and 5 deletions
|
@ -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
|
||||
(`(,_ ,_ ,table ,pred ,extras)
|
||||
(let ((completion-extra-properties extras)
|
||||
completion-cycle-threshold completion-cycling)
|
||||
(completing-read "Completion: " table pred nil nil 'corfu-history)))))
|
||||
|
||||
;;;###autoload
|
||||
(defun +corfu-smart-sep-toggle-escape ()
|
||||
|
|
|
@ -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."
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue