;;; init-corfu.el --- Autocompletado con corfu -*- lexical-binding: t -*- ;; Author: kj ;; URL: https://git.kj2.me/kj/confi-emacs-actual ;;; Commentary: ;; Archivo de configuración específico para el paquete corfu. ;; Corfu, de manera resumida, es el que nos muestra el autocompletado ;; en Emacs, tanto para código como para otro tipo de textos. ;; ;; Este paquete viene a ser una alternativa a Company, por lo ;; que no se deberían activar los 2 al mismo tiempo. ;;; Code: (use-package corfu :defer t :ensure (:files (:defaults "extensions/*") :includes (corfu-info corfu-history)) :hook ((elpaca-after-init . global-corfu-mode) (corfu-mode . corfu-popupinfo-mode)) :bind (("" . corfu-quit) ("" . corfu-insert-separator)) :custom (corfu-auto t) :config (setq corfu-popupinfo-delay 0 ;; corfu-auto-delay 0.5 corfu-auto-prefix 1 corfu-cycle t corfu-preview-current nil corfu-quit-no-match t) ) (use-package orderless :config (setq completion-styles '(flex orderless basic) completion-category-overrides '((file (styles partial-completion))))) (use-package cape :ensure (:host github :repo "minad/cape") :after corfu :init ;; (advice-add 'eglot-completion-at-point :around #'cape-wrap-buster) (advice-add #'eglot-completion-at-point :around #'cape-wrap-nonexclusive) (add-to-list 'completion-at-point-functions #'cape-dabbrev) ;; Completar desde otras la palabras del buffer. (add-to-list 'completion-at-point-functions #'cape-file) ;; Completar rutas de archivos. ;; (add-to-list 'completion-at-point-functions #'cape-line) ;; Completar línea actual en función de lo que dice otras líneas de buffer. (add-to-list 'completion-at-point-functions #'cape-abbrev) ;; Completar desde una abreviaciónes configuradas con add-global-abbrev (añadir abreviación global) o add-mode-abbrev (abreviación para el modo actual). (add-to-list 'completion-at-point-functions #'cape-dict) ;; Completar desde un diccionario (por defecto toma el de linux que está en /usr/share/dict/words). (add-to-list 'completion-at-point-functions #'cape-tex) ;; Completar Latex (caracteres unicode). ) ;; Hacer que corfu funcione en la terminal (unless (display-graphic-p) (use-package corfu-terminal :ensure (:repo "https://codeberg.org/akib/emacs-corfu-terminal.git") :config (corfu-terminal-mode +1)) ) ;; Iconos en corfu (use-package kind-icon :ensure t :after corfu :custom (kind-icon-default-face 'corfu-default) ; to compute blended backgrounds correctly :config (add-to-list 'corfu-margin-formatters #'kind-icon-margin-formatter)) (provide 'init-corfu) ;;; init-corfu.el ends here