68 lines
2.0 KiB
EmacsLisp
68 lines
2.0 KiB
EmacsLisp
|
;; Nicer minibuffer completion
|
||
|
|
||
|
;; First Selectrum, which provides the core incremental minibuffer completion engine
|
||
|
(use-package selectrum
|
||
|
:config
|
||
|
(selectrum-mode 1)
|
||
|
(leader-def-key "z" #'selectrum-repeat))
|
||
|
|
||
|
;; Then prescient, which adds the ability to sort and filter completions
|
||
|
(use-package selectrum-prescient
|
||
|
:after selectrum
|
||
|
:config
|
||
|
(selectrum-prescient-mode 1)
|
||
|
(prescient-persist-mode 1))
|
||
|
|
||
|
;; Marginalia adds annotations to completion candidates
|
||
|
(use-package marginalia
|
||
|
:config
|
||
|
(marginalia-mode 1)
|
||
|
;; When using Selectrum, ensure that Selectrum is refreshed when cycling annotations.
|
||
|
(advice-add #'marginalia-cycle :after
|
||
|
(lambda ()
|
||
|
(when (bound-and-true-p selectrum-mode) (selectrum-exhibit))))
|
||
|
:general
|
||
|
(minibuffer-local-map "M-A" #'marginalia-cycle)
|
||
|
:custom
|
||
|
(marginalia-annotators '(marginalia-annotators-heavy marginalia-annotators-light nil)))
|
||
|
|
||
|
;; Embark adds context actions to completion candidates
|
||
|
(use-package embark
|
||
|
:config
|
||
|
(setq embark-action-indicator
|
||
|
(lambda (map _target)
|
||
|
(which-key--show-keymap "Embark" map nil nil 'no-paging)
|
||
|
#'which-key--hide-popup-ignore-command)
|
||
|
embark-become-indicator embark-action-indicator)
|
||
|
:general
|
||
|
("M-o" #'embark-act)
|
||
|
('normal embark-collect-mode-map
|
||
|
"TAB" #'forward-button
|
||
|
"?" #'describe-mode
|
||
|
"A" #'embark-collect-direct-action-minor-mode
|
||
|
"S" #'tabulated-list-sort
|
||
|
"a" #'embark-act
|
||
|
"b" #'backward-button
|
||
|
"e" #'embark-export
|
||
|
"f" #'forward-button
|
||
|
"gr" #'revert-buffer
|
||
|
"n" #'next-line
|
||
|
"p" #'previous-line
|
||
|
"q" #'quit-window
|
||
|
"s" #'isearch-forward
|
||
|
"v" #'embark-collect-toggle-view
|
||
|
"z" #'embark-collect-zebra-minor-mode
|
||
|
"{" #'tabulated-list-narrow-current-column
|
||
|
"}" #'tabulated-list-widen-current-column
|
||
|
"<backtab>" #'backward-button)
|
||
|
:custom
|
||
|
(embark-prompter 'embark-keymap-prompter))
|
||
|
|
||
|
;; Consult adds a bunch of completing-read based utilities
|
||
|
(use-package consult
|
||
|
:general
|
||
|
([remap switch-to-buffer] #'consult-buffer)
|
||
|
([remap isearch-forward] #'consult-line))
|
||
|
|
||
|
(provide 'init-completion)
|