51 lines
1.5 KiB
EmacsLisp
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
|