Improvements to autocompletion with eglot.

Add a function to toggle autocompletion and improve the
competion-at-point-functions when eglot is rinning using cape-capf-super.
This commit is contained in:
kj
2025-09-01 12:35:10 -03:00
parent a6b197b6a4
commit 709ca7fe27
4 changed files with 25 additions and 7 deletions

View File

@ -66,20 +66,30 @@
))
)
;; Set de funciones de para las sugerencias de corfu.
(use-package cape
:ensure (:host github :repo "minad/cape")
:after corfu
:hook (eglot-managed-mode . (lambda()
(setq completion-at-point-functions
(list (cape-capf-super
#'eglot-completion-at-point
#'cape-abbrev
#'cape-dabbrev
#'cape-history
#'cape-dict
#'cape-file
#'cape-keyword)))))
:bind (("C-c c f" . cape-file)
("C-c c l" . cape-line))
:init
(setq text-mode-ispell-word-completion nil)
;; (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-history) ;; Completar desde el historial de altocompletado
(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-file) ;; Completar rutas de archivos.
(add-to-list 'completion-at-point-functions #'cape-keyword) ;; Completar desde keyword del lenguaje.

View File

@ -151,5 +151,13 @@ If PROJECT is not specified, assume current project root."
(apply #'< (mapcar (lambda (range) (- (cdr range) (car range)))
(list l1 l2)))))))))
(defun corfu-auto-toggle()
"Toggle corfu autocomplete."
(interactive)
(global-corfu-mode 0)
(setq corfu-auto (not corfu-auto))
(global-corfu-mode 1)
)
(provide 'init-functions)
;;; init-functions.el ends here.

View File

@ -88,7 +88,7 @@
:hook (prog-mode . (lambda ()
(unless (derived-mode-p 'makefile-mode)
(flymake-mode))))
:config
:init
(remove-hook 'flymake-diagnostic-functions 'flymake-proc-legacy-flymake)
)

View File

@ -109,10 +109,10 @@
;; UI para completado del minibuffer
(use-package vertico
:bind (:map vertico-map
("RET" . vertico-directory-enter)
("DEL" . vertico-directory-delete-char)
("TAB" . minibuffer-complete)
("M-DEL" . vertico-directory-delete-word))
("RET" . vertico-directory-enter)
("DEL" . vertico-directory-delete-char)
("TAB" . minibuffer-complete)
("M-DEL" . vertico-directory-delete-word))
:hook ((elpaca-after-init . vertico-mode)
(rfn-eshadow-update-overlay . vertico-directory-tidy))
:config