From 023f11c25e9219eee2d71b09f4c450fe19ee7e71 Mon Sep 17 00:00:00 2001 From: kj Date: Tue, 2 May 2023 00:32:14 -0400 Subject: [PATCH] Add corfu config (replacement for company). --- configs/init-corfu.el | 71 +++++++++++++++++++++++++++++++++++++++++++ init.el | 3 +- 2 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 configs/init-corfu.el diff --git a/configs/init-corfu.el b/configs/init-corfu.el new file mode 100644 index 0000000..d997e0a --- /dev/null +++ b/configs/init-corfu.el @@ -0,0 +1,71 @@ +;;; 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 + :straight (corfu :files (:defaults "extensions/*") + :includes (corfu-info corfu-history)) + :hook ((after-init . global-corfu-mode) + (corfu-mode . corfu-popupinfo-mode)) + :bind (("" . corfu-quit) + ("" . 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 +(use-package corfu-terminal + :straight (corfu-terminal :type git :repo "https://codeberg.org/akib/emacs-corfu-terminal.git") + :defer t + :after corfu + :config + (unless (display-graphic-p) + (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 diff --git a/init.el b/init.el index 58d8dc9..e07ce0c 100644 --- a/init.el +++ b/init.el @@ -20,7 +20,8 @@ (require 'init-org) ;; (require 'init-lsp) (require 'init-eglot) -(require 'init-company) +;; (require 'init-company) +(require 'init-corfu) (require 'init-treemacs) (require 'init-ctags) (require 'init-minibuffer)