.emacs.d/lisp/init-corfu.el
2024-09-06 11:42:11 +02:00

51 lines
1.5 KiB
EmacsLisp

;;; init-corfu.el --- Interactive completion in buffers -*- lexical-binding: t -*-
;;; Commentary:
;;; Code:
;; WAITING: haskell-mode sets tags-table-list globally, breaks tags-completion-at-point-function
;; TODO Default sort order should place [a-z] before punctuation
(setq tab-always-indent 'complete)
(when (maybe-require-package 'orderless)
(with-eval-after-load 'vertico
(require 'orderless)
(setq completion-styles '(orderless basic))))
(setq completion-category-defaults nil
completion-category-overrides nil)
(setq completion-cycle-threshold 4)
(when (maybe-require-package 'corfu)
(with-eval-after-load 'eshell
(add-hook 'eshell-mode-hook (lambda () (setq-local corfu-auto nil))))
(setq-default corfu-quit-no-match 'separator)
(add-hook 'after-init-hook 'global-corfu-mode)
(with-eval-after-load 'corfu
(corfu-popupinfo-mode))
(setq
corfu-auto t
corfu-auto-delay 0.1
corfu-auto-prefix 2
global-corfu-modes '((not erc-mode
circe-mode
help-mode
gud-mode
vterm-mode)
t)
corfu-cycle t
corfu-preselect 'prompt
corfu-count 16
corfu-max-width 120
corfu-on-exact-match nil
corfu-quit-at-boundary t
corfu-quit-no-match corfu-quit-at-boundary
tab-always-indent 'complete)
;; TODO: https://github.com/jdtsmith/kind-icon
)
(provide 'init-corfu)
;;; init-corfu.el ends here