#+TITLE: UI - Completion #+AUTHOR: Juan Placencia * Package Define UI completion package. #+BEGIN_SRC emacs-lisp (use-package emacs :after uno-ui :config (provide 'uno-ui-completion)) #+END_SRC * Vertico #+BEGIN_SRC emacs-lisp (use-package vertico :after uno-ui-completion :custom (enable-recursive-minibuffers t) (minibuffer-prompt-properties '(read-only t cursor-intangible t face minibuffer-prompt)) (vertico-cycle t) :hook (minibuffer-setup . cursor-intangible-mode) :general (vertico-map "" 'abort-recursive-edit "C-j" 'vertico-next "C-k" 'vertico-previous) :init (defun crm-indicator (args) (cons (concat "[CRM] " (car args)) (cdr args))) (advice-add 'completing-read-multiple :filter-args 'crm-indicator) (vertico-mode 1)) (use-package orderless :after (uno-ui-completion vertico) :custom (completion-category-defaults nil) (completion-category-overrides '((file (styles . (partial-completion))))) (completion-styles '(substring orderless))) (use-package savehist :after (uno-ui-completion vertico) :custom (savehist-file (uno-cache-path "savehist")) :config (savehist-mode 1)) #+END_SRC * Consult Enhance completion. #+BEGIN_SRC emacs-lisp (use-package consult :after uno-ui-completion :custom (register-preview-delay 0) (register-preview-function 'consult-register-format) (xref-show-xrefs-function 'consult-xref) (xref-show-definitions-function 'consult-xref) :hook (completion-list-mode . consult-preview-at-point-mode) :general (uno-leader-define "bb" '(consult-buffer :which-key "Switch buffer"))) (use-package consult :after (uno-ui-completion projectile) :custom (consult-project-root-function 'projectile-project-root)) #+END_SRC ** Ripgrep Integration Integrate for searching capabilities. #+BEGIN_SRC emacs-lisp (use-package ripgrep :after uno-ui-completion :if (executable-find "rg")) (use-package consult :after (uno-ui-completion ripgrep) :general (uno-leader-define "/" '(consult-ripgrep :which-key "Search files"))) #+END_SRC * Company Text completion framework. #+BEGIN_SRC emacs-lisp (use-package company :after uno-ui-completion :custom (company-idle-delay 0) (company-minimum-prefix-length 2) (company-tooltip-limit 14) (company-tooltip-align-annotations t) (company-require-match 'never) :hook (company-mode . evil-normalize-keymaps) (uno-prog-mode . company-mode)) #+END_SRC ** Help Enable help tooltip for =company=. #+BEGIN_SRC emacs-lisp (use-package company-quickhelp :after (uno-ui-completion company) :custom (register-preview-delay 0) (register-preview-function 'consult-register-format) (xref-show-xrefs-function 'consult-xref) (xref-show-definitions-function 'consult-xref) :hook (company-mode . company-quickhelp-local-mode) :config (delq 'company-echo-metadata-frontend company-frontends)) #+END_SRC ** Icons Front-end for =company= GUI. #+BEGIN_SRC emacs-lisp (use-package company-box :after (uno-ui-completion company) :if (display-graphic-p) :custom (company-box-backends-colors nil) (company-box-max-candidates 50) (company-box-show-single-candidate t) :hook (company-mode . company-box-mode) :config (delq 'company-echo-metadata-frontend company-frontends)) #+END_SRC ** Usage History #+BEGIN_SRC emacs-lisp (use-package company-statistics :after (uno-ui-completion company) :custom (company-statistics-file (uno-cache-path "company/statistics.el")) :hook (company-mode . company-statistics-mode)) #+END_SRC