2023-05-02 06:32:14 +02:00
;;; 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
2024-04-04 00:40:00 +02:00
:ensure ( :files ( :defaults " extensions/* " )
2023-05-02 06:32:14 +02:00
:includes ( corfu-info corfu-history ) )
2023-09-16 21:54:28 +02:00
:hook ( ( elpaca-after-init . global-corfu-mode )
2023-05-02 06:32:14 +02:00
( corfu-mode . corfu-popupinfo-mode ) )
:bind ( ( " <escape> " . corfu-quit )
2023-09-24 08:52:31 +02:00
( " <SPC> " . corfu-insert-separator ) )
2023-05-02 06:32:14 +02:00
:custom
( corfu-auto t )
:config
( setq corfu-popupinfo-delay 0
2023-09-01 03:21:24 +02:00
;; corfu-auto-delay 0.5
2023-05-02 06:32:14 +02:00
corfu-auto-prefix 1
corfu-cycle t
corfu-preview-current nil
corfu-quit-no-match t )
)
2023-08-26 20:10:20 +02:00
( use-package orderless
:config
2024-04-12 14:11:04 +02:00
( setq completion-styles ' ( flex orderless basic )
2023-08-26 20:10:20 +02:00
completion-category-overrides ' ( ( file ( styles partial-completion ) ) ) ) )
2023-05-02 06:32:14 +02:00
( use-package cape
2024-04-04 00:40:00 +02:00
:ensure ( :host github :repo " minad/cape " )
2023-05-02 06:32:14 +02:00
:after corfu
2024-04-18 13:25:37 +02:00
:bind ( ( " C-c <SPC> f " . cape-file )
( " C-c <SPC> l " . cape-line )
( " C-c <SPC> _ " . cape-tex ) )
2023-05-02 06:32:14 +02:00
:init
;; (advice-add 'eglot-completion-at-point :around #'cape-wrap-buster)
( advice-add #' eglot-completion-at-point :around #' cape-wrap-nonexclusive )
2024-04-18 13:25:37 +02:00
;; (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).
2024-04-17 05:36:00 +02:00
( 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-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).
2024-04-18 13:25:37 +02:00
( add-to-list 'completion-at-point-functions #' cape-keyword ) ;; Completar desde keyword del lenguaje.
2023-05-02 06:32:14 +02:00
)
;; Hacer que corfu funcione en la terminal
2023-06-23 11:31:48 +02:00
( unless ( display-graphic-p )
( use-package corfu-terminal
2024-04-04 00:40:00 +02:00
:ensure ( :repo " https://codeberg.org/akib/emacs-corfu-terminal.git " )
2023-06-23 11:31:48 +02:00
:config
2023-05-02 06:32:14 +02:00
( 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