feat(corfu): impl smart confirm in minibuffer

An issue when using corfu in the minibuffer was the need for pressing
RET twice, since the first only inserts the completion. This commit
aliviates that by providing C-RET to ignore completion and conclude the
minibuffer immediatelly and S-RET to insert completion then conclude.
This commit is contained in:
Luigi Sartor Piucco 2023-12-21 12:07:39 -03:00
parent 30e36a4b23
commit ec9f2b7849
No known key found for this signature in database
GPG key ID: 6FF1A01853A47A66
3 changed files with 40 additions and 5 deletions

View file

@ -480,12 +480,16 @@ Continues comments if executed from a commented line. Consults
"C-S-p" #'corfu-popupinfo-scroll-down
"C-S-n" #'corfu-popupinfo-scroll-up
"C-S-u" (cmd! (funcall-interactively #'corfu-popupinfo-scroll-down corfu-popupinfo-min-height))
"C-S-d" (cmd! (funcall-interactively #'corfu-popupinfo-scroll-up corfu-popupinfo-min-height))))
"C-S-d" (cmd! (funcall-interactively #'corfu-popupinfo-scroll-up corfu-popupinfo-min-height)))
(:map corfu-map
"C-<return>" '(menu-item "Conclude the minibuffer" exit-minibuffer
:enable (minibufferp nil t))
"S-<return>" '(menu-item "Insert completion and conclude" +corfu-complete-and-exit-minibuffer
:enable (minibufferp nil t))))
(when-let ((cmds-del (and (modulep! :completion corfu +tng)
(cmds! (and (> corfu--index -1)
(eq corfu-preview-current 'insert))
#'corfu-reset))))
'(menu-item "Reset completion" #'corfu-reset
:enable (and (> corfu--index -1)
(eq corfu-preview-current 'insert))))))
(map! :after corfu
:map corfu-map
[backspace] cmds-del