confi-emacs-actual/configs/init-corfu.el

70 lines
2.0 KiB
EmacsLisp

;;; init-corfu.el --- Autocompletado con corfu -*- lexical-binding: t -*-
;; Author: kj <webmaster@outcontrol.net>
;; 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
:straight (corfu :files (:defaults "extensions/*")
:includes (corfu-info corfu-history))
:hook ((after-init . global-corfu-mode)
(corfu-mode . corfu-popupinfo-mode))
:bind (("<escape>" . corfu-quit)
("<SPC>" . corfu-insert-separator)
:map corfu-map
([tab] . nil))
:custom
(corfu-auto t)
:config
(setq corfu-popupinfo-delay 0
corfu-auto-prefix 1
corfu-cycle t
corfu-preview-current nil
corfu-quit-no-match t)
)
(use-package cape
:straight (cape :type git :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)
(add-to-list 'completion-at-point-functions #'cape-file)
;; (add-to-list 'completion-at-point-functions #'cape-line)
)
;; Hacer que corfu funcione en la terminal
(unless (display-graphic-p)
(use-package corfu-terminal
:straight (corfu-terminal :type git :repo "https://codeberg.org/akib/emacs-corfu-terminal.git")
:config
(corfu-terminal-mode +1))
)
;; Iconos en corfu
(use-package kind-icon
:ensure t
:straight 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