confi-emacs-actual/configs/init-eglot.el

86 lines
2.4 KiB
EmacsLisp
Raw Normal View History

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
:ensure nil
:hook ((css-mode . eglot-ensure)
(html-mode . eglot-ensure)
2024-09-24 19:33:47 +02:00
(php-mode . eglot-ensure)
(php-ts-mode . eglot-ensure)
(rust-mode . eglot-ensure)
(sh-mode . eglot-ensure))
2022-11-19 03:56:34 +01:00
:config
(setq eglot-sync-connect 0)
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
: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))
)
;; 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))))
2023-05-02 06:29:31 +02:00
: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))
2022-11-19 04:33:22 +01:00
(provide 'init-eglot)
;;; init-eglot.el ends here