2022-11-19 04:33:22 +01:00
|
|
|
;;; init-eglot.el --- Configuración de eglot (LSP) -*- lexical-binding: t -*-
|
2022-11-19 03:56:34 +01:00
|
|
|
|
|
|
|
;; Author: kj <webmaster@outcontrol.net>
|
|
|
|
;; URL: https://git.kj2.me/kj/confi-emacs-actual
|
|
|
|
|
|
|
|
;;; Commentary:
|
|
|
|
|
2023-04-14 18:39:19 +02:00
|
|
|
;; 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).
|
|
|
|
|
2022-11-19 03:56:34 +01:00
|
|
|
;;; Code:
|
|
|
|
|
|
|
|
(use-package eglot
|
|
|
|
:defer t
|
2024-07-02 17:55:47 +02:00
|
|
|
:ensure nil
|
|
|
|
:hook ((css-mode . eglot-ensure)
|
|
|
|
(html-mode . eglot-ensure)
|
2024-09-24 19:33:47 +02:00
|
|
|
(php-mode . eglot-ensure)
|
2024-07-02 17:55:47 +02:00
|
|
|
(php-ts-mode . eglot-ensure)
|
|
|
|
(rust-mode . eglot-ensure)
|
|
|
|
(sh-mode . eglot-ensure))
|
2022-11-19 03:56:34 +01:00
|
|
|
:config
|
2023-10-17 00:16:41 +02:00
|
|
|
(setq eglot-sync-connect 0)
|
2024-07-02 17:55:47 +02:00
|
|
|
(add-to-list 'eglot-server-programs '(php-ts-mode . ("intelephense" "--stdio")))
|
2024-09-30 14:15:05 +02:00
|
|
|
(add-to-list 'eglot-server-programs '(php-mode . ("intelephense" "--stdio")))
|
2022-11-19 20:44:14 +01:00
|
|
|
)
|
2022-11-19 03:56:34 +01:00
|
|
|
|
2024-04-18 11:25:55 +02:00
|
|
|
;; Mejorar la velocidad de eglot (un binario en rust )
|
|
|
|
(use-package eglot-booster
|
2024-04-26 08:20:53 +02:00
|
|
|
:defer t
|
2024-04-18 11:25:55 +02:00
|
|
|
: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."))
|
|
|
|
)
|
|
|
|
|
2022-11-19 18:59:47 +01:00
|
|
|
;; Emmet (mientras veo como hacer funcionar emmet-ls)
|
|
|
|
(use-package emmet-mode
|
|
|
|
:defer t
|
|
|
|
:hook
|
|
|
|
((html-mode . emmet-mode)
|
|
|
|
(web-mode . emmet-mode))
|
|
|
|
)
|
|
|
|
|
2022-11-23 04:06:05 +01:00
|
|
|
;; Revisar por errores en el código
|
|
|
|
(use-package flymake
|
|
|
|
:defer t
|
2024-04-04 00:40:00 +02:00
|
|
|
:ensure nil
|
2022-11-23 04:06:05 +01:00
|
|
|
:hook (prog-mode . (lambda ()
|
|
|
|
(unless (derived-mode-p 'makefile-mode)
|
|
|
|
(flymake-mode))))
|
2023-05-02 06:29:31 +02:00
|
|
|
:config
|
|
|
|
(remove-hook 'flymake-diagnostic-functions 'flymake-proc-legacy-flymake)
|
2022-11-23 04:06:05 +01:00
|
|
|
)
|
|
|
|
|
|
|
|
;; Mostar los errores de flymake en un popup-tip
|
|
|
|
(use-package flymake-diagnostic-at-point
|
|
|
|
:defer t
|
2024-04-04 00:40:00 +02:00
|
|
|
:ensure t
|
2022-11-23 04:06:05 +01:00
|
|
|
:after flymake
|
|
|
|
:hook (flymake-mode . flymake-diagnostic-at-point-mode))
|
|
|
|
|
2022-11-19 04:33:22 +01:00
|
|
|
(provide 'init-eglot)
|
|
|
|
;;; init-eglot.el ends here
|