83 lines
2.3 KiB
EmacsLisp
83 lines
2.3 KiB
EmacsLisp
;;; init-eglot.el --- Configuración de eglot (LSP) -*- lexical-binding: t -*-
|
|
|
|
;; Author: kj <webmaster@outcontrol.net>
|
|
;; URL: https://git.kj2.me/kj/confi-emacs-actual
|
|
|
|
;;; Commentary:
|
|
|
|
;; Este archivo tiene todo lo relacionado con eglot.
|
|
;; Eglot es un cliente LSP para Emacs que desde la
|
|
;; versión 29 viene integrado dentro del mismo.
|
|
;;
|
|
;; El nombre Eglot es un apócope de "Emacs polyglot"
|
|
;; ya que con este cliente podemos añadir soporte para
|
|
;; muchísimos lenguajes, puesto que actualente el que
|
|
;; un lenguaje tenga su propio LSP es muy normal.
|
|
;;
|
|
;; Como añadido:
|
|
;;
|
|
;; Un Languaje Server Provider (LSP), es un protocolo
|
|
;; mediante el cual existen servidores para lenguajes
|
|
;; en específico, los cuales proveen cosas como el
|
|
;; autocompletado, linting, documentación, ir a la
|
|
;; definición, etc.
|
|
;;
|
|
;; Este protocolo viene a solucionar el problema de
|
|
;; que cada herramienta de programación tenga que
|
|
;; volver a crear su propio soporte para cada uno
|
|
;; de los lenguajes (DRY).
|
|
|
|
;;; Code:
|
|
|
|
(use-package eglot
|
|
:defer t
|
|
;; :ensure nil
|
|
:hook ((css-mode . eglot-ensure)
|
|
(html-mode . eglot-ensure)
|
|
(php-mode . eglot-ensure)
|
|
(rust-mode . eglot-ensure)
|
|
(sh-mode . eglot-ensure))
|
|
:config
|
|
(setq eglot-sync-connect 0)
|
|
)
|
|
|
|
;; Mejorar la velocidad de eglot (un binario en rust )
|
|
(use-package eglot-booster
|
|
:ensure (:host github :repo "jdtsmith/eglot-booster")
|
|
:after eglot
|
|
:config
|
|
;;
|
|
(if (executable-find "emacs-lsp-booster")
|
|
(eglot-booster-mode)
|
|
(message "No está instalado emacs-lsp-booster. Eglot se usará de modo normal."))
|
|
)
|
|
|
|
;; Emmet (mientras veo como hacer funcionar emmet-ls)
|
|
(use-package emmet-mode
|
|
:defer t
|
|
:hook
|
|
((html-mode . emmet-mode)
|
|
(web-mode . emmet-mode))
|
|
)
|
|
|
|
;; Revisar por errores en el código
|
|
(use-package flymake
|
|
:defer t
|
|
:ensure nil
|
|
:hook (prog-mode . (lambda ()
|
|
(unless (derived-mode-p 'makefile-mode)
|
|
(flymake-mode))))
|
|
:config
|
|
(remove-hook 'flymake-diagnostic-functions 'flymake-proc-legacy-flymake)
|
|
)
|
|
|
|
;; Mostar los errores de flymake en un popup-tip
|
|
(use-package flymake-diagnostic-at-point
|
|
:defer t
|
|
:ensure t
|
|
:after flymake
|
|
:hook (flymake-mode . flymake-diagnostic-at-point-mode))
|
|
|
|
(provide 'init-eglot)
|
|
;;; init-eglot.el ends here
|