KJ
b9afc66ee2
This config is not necessary anymore because now corfu make the same and for now is the preferred option for me.
79 lines
2.5 KiB
EmacsLisp
79 lines
2.5 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
|
|
:straight (:type built-in)
|
|
:hook ((css-mode . eglot-ensure)
|
|
(html-mode . eglot-ensure)
|
|
(php-mode . eglot-ensure)
|
|
(rust-mode . eglot-ensure)
|
|
(sh-mode . eglot-ensure))
|
|
:config
|
|
;; (add-to-list 'eglot-server-programs '(php-mode . ("intelephense" "--stdio")))
|
|
(add-to-list 'eglot-server-programs '(php-mode . ("phpactor" "language-server" "-vvv")))
|
|
;; (add-to-list 'eglot-ignored-server-capabilites :hoverProvider)
|
|
;; (add-to-list 'eglot-server-programs '(css-mode . ("vscode-css-language-server" "--stdio")))
|
|
;; (add-to-list 'eglot-server-programs '(html-mode . ("vscode-html-language-server" "--stdio")))
|
|
|
|
;; (add-hook 'eglot--managed-mode-hook (lambda () (flymake-mode -1)))
|
|
)
|
|
|
|
;; Emmet (mientras veo como hacer funcionar emmet-ls)
|
|
(use-package emmet-mode
|
|
:defer t
|
|
:straight t
|
|
:hook
|
|
((html-mode . emmet-mode)
|
|
(web-mode . emmet-mode))
|
|
)
|
|
|
|
;; Revisar por errores en el código
|
|
(use-package flymake
|
|
:defer t
|
|
:straight (:type built-in)
|
|
: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
|
|
:straight t
|
|
:after flymake
|
|
:hook (flymake-mode . flymake-diagnostic-at-point-mode))
|
|
|
|
(provide 'init-eglot)
|
|
;;; init-eglot.el ends here
|