e82959cc66
irrelevant elements are now correctly filtered out of lsp by orderless,corfu. fixed some whitespace, indentation
70 lines
1.7 KiB
EmacsLisp
70 lines
1.7 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)))
|
|
)
|
|
|
|
(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)
|