[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[ELPA] New package: eglot
From: |
João Távora |
Subject: |
[ELPA] New package: eglot |
Date: |
Thu, 10 May 2018 23:34:40 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) |
Hello,
I'd like to add Eglot, my new package, to GNU ELPA.
Eglot, for Emacs Polyglot, is an Emacs client for the LSP, or Language
Server Protocol (https://microsoft.github.io/language-server-protocol/).
For those unfamilar with LSP, here's a quick primer. M-x eglot connects
to LSP subprocesses locally or through the network. Thereafter, via a
JSON-based RPC protocol, information about the source code is exchanged
with the server: the client tells is about the (unsaved) buffer's
contents, and the server provides information to feed xref.el,
flymake.el, eldoc.el, auto-completion, and other IDE-like functionality.
Because Eglot is language-agnostic, the big idea is that this gives
Emacs an uniform IDE UI for any language one can find a suitable server
for.
There is a prominent existing Emacs package, emacs-lsp, that shares
largely the same goals. I have contacted its author and explained why I
started from scratch. This is summarized in a list of user-visible and
under-the-hood differences between the two projects in Eglot's home
page:
https://github.com/joaotavora/eglot#differences-to-lsp-modeel
emacs-lsp and its many plugins live at:
https://github.com/emacs-lsp
One notable difference is that Eglot requires Emacs 26 and integrates
with the new flymake.el redesign, whereas emacs-lsp uses
flycheck.el for that. Another design goal is a single M-x eglot entry
point, instead of different eglot-<language>.el and M-x eglot-<language>
commands for each language.
If the package is accepted, I think I already have commit rights to the
GNU ELPA repo and would like to develop this as a Git subtree, just like
yasnippet.
Thank you for your attention,
João
eglot.el
Description: Eglot, Emacs Polyglot
- [ELPA] New package: eglot,
João Távora <=