;;; 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