aboutsummaryrefslogblamecommitdiff
path: root/home/programs/emacs/site-lisp/init-completion.el
blob: 0f79f10881c35ec000ffb7a832e38dd9f1e5d7d7 (plain) (tree)

























                                                                          








                                                                           
 




                                                        








                                        



                                      












                                           
;;; init-completion.el --- Configure completion -*- lexical-binding: t -*-
;; Author: Franck Cuny <franck@fcuny.net>

;;; Commentary:

;; Configure completions

;;; Code:

(use-package consult
  :commands (consult-ripgrep consult-buffer consult-imenu)
  :bind (("C-c m"   . consult-mode-command)
	 ("C-x b"   . consult-buffer)
	 ("C-x r b" . consult-bookmark)
	 ("C-x p b" . consult-project-buffer)
	 ("C-c i"   . consult-imenu)
	 ("M-g e"   . consult-compile-error)
	 ("M-g M-g" . consult-goto-line)
	 ("M-g m"   . consult-mark)
	 ("M-g k"   . consult-global-mark)))

(use-package corfu
  :custom
  (corfu-auto t)
  :bind ("M-/" . completion-at-point)
  :hook ((after-init . global-corfu-mode)
         (global-corfu-mode . corfu-popupinfo-mode)
	 (eshell-mode-hook . (lambda ()
                               (setq-local corfu-quit-at-boundary t
					   corfu-quit-no-match t
					   corfu-auto nil)
                               (corfu-mode 1))))
  :custom
  ;; Disable Ispell completion function. As an alternative try `cape-dict'.
  (text-mode-ispell-word-completion nil))

(use-package cape
  :bind ("C-c p" . cape-prefix-map)
  :init
  (add-hook 'completion-at-point-functions #'cape-file)
  (add-hook 'completion-at-point-functions #'cape-dict))

(use-package marginalia
  :hook (after-init . marginalia-mode))

(use-package orderless
  :custom
  (completion-styles '(orderless basic))
  (completion-category-defaults nil))

(use-package vertico
  :ensure t
  :hook ((after-init . vertico-mode)))

(use-package consult-imenu
  :after (consult))

(use-package corfu-popupinfo
  :after corfu
  :hook (corfu-mode . corfu-popupinfo-mode)
  :custom
  (corfu-popupinfo-delay '(0.25 . 0.1))
  (corfu-popupinfo-hide nil))

(provide 'init-completion)

;;; init-completion.el ends here