Updated: 2022-11-19 Sat 19:42

Completion in Emacs

Trying out different completion frameworks for Emacs instead of simply Ivy, just for the heck of it.

(use-package vertico
  :straight t
  :init
  (vertico-mode)
  :config
  (setq vertico-cycle t))

(use-package vertico-buffer
  :after vertico)

Also use the orderless completion style to improve the completion methods for vertico/selectrum etc. This also allows using space as delimeter in vertico, since it reads space as a character to match otherwise.

(use-package orderless
  :straight t
  :init
  (setq completion-styles '(orderless))
  (setq completion-category-defaults nil)
  (setq completion-category-overrides '((file (styles partial-completion)))))

To persist history over Emacs restarts, vertico uses the savehist-mode that is built into emacs by default.

(use-package savehist
  :straight nil
  :init
  (savehist-mode))

1. TODO Embark

2. TODO Marginalia

Marginalia provides extra metadata depending on the context and type of object being actioned upon. This provides an ivy-rich type interface for vertico.

(use-package marginalia
  :straight t
  :init
  (marginalia-mode))

3. TODO Consult