Files
lypacamacs/packages/completion-packages.el
T
2026-08-12 15:02:55 +02:00

80 lines
2.0 KiB
EmacsLisp

;;; completion-packages.el --- Completion stack configuration -*- lexical-binding: t; -*-
(use-package corfu
:config
(global-corfu-mode)
(corfu-popupinfo-mode)
(setq corfu-quit-at-boundary 'separator
corfu-quit-no-match 'separator)
:custom
(corfu-auto t)
(corfu-auto-delay 0.1)
(corfu-auto-prefix 1)
(corfu-popupinfo-delay '(0.5 . 0.3)))
(use-package vertico
:init
(vertico-mode)
:config
(vertico-multiform-mode t)
(setq vertico-multiform-commands
'(
(consult-imenu posframe indexed)
(consult-completion-in-region grid)))
)
;; Configure directory extension.
(use-package vertico-directory
:after vertico
;; More convenient directory navigation commands
:bind (:map vertico-map
("RET" . vertico-directory-enter)
("DEL" . vertico-directory-delete-char)
("M-DEL" . vertico-directory-delete-word)))
(use-package vertico-posframe
:after vertico
:config
(vertico-posframe-mode t)
(setq vertico-posframe-width 150
vertico-posframe-min-width 90
vertico-posframe-border-width 3
vertico-count 15
vertico-scroll-margin 4)
)
;use consult + vertico instead of corfu if in terminal
(use-package consult
:defer t
:init
(setq completion-in-region-function #'consult-completion-in-region
consult-fd-args '("fd" "--color=never" "--hidden" ))
:config
(add-hook 'after-change-major-mode-hook
(lambda ()
(setq completion-in-region-function #'consult-completion-in-region)))
)
(use-package marginalia
:init
(marginalia-mode))
(use-package orderless
:custom
(completion-styles '(orderless basic))
(completion-pcm-leading-wildcard t)
(completion-category-defaults nil)
(orderless-matching-styles '(orderless-prefixes orderless-literal))
:config
;;necessary to force filtering of lsp-mode candidates
(add-to-list 'completion-category-overrides
'(lsp-capf (styles orderless)
(orderless-matching-styles orderless-prefixes orderless-literal)))
)
(provide 'completion-packages)