;;; 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 (:map corfu-map ("" . corfu-quit) ("" . 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) ) ;; Cambia la forma de mostrar y buscar sugerencias (afecta a corfu, pero también a otros como vertico). (use-package orderless :defer t :init (setq completion-styles '(flex orderless basic) completion-category-overrides '((file (styles partial-completion))))) ;; Set de funciones de para las sugerencias de corfu. (use-package cape :defer t :ensure (:host github :repo "minad/cape") :after corfu :bind (("C-c f" . cape-file) ("C-c l" . cape-line) ("C-c _" . cape-tex)) :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-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-tex) ;; Completar Latex (caracteres unicode). (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-dabbrev) ;; Completar desde otras la palabras del 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-file) ;; Completar rutas de archivos. (add-to-list 'completion-at-point-functions #'cape-keyword) ;; Completar desde keyword del lenguaje. ) ;; Hacer que corfu funcione en la terminal (unless (display-graphic-p) (use-package corfu-terminal :after corfu :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