emacs-devel
[Top][All Lists]
Advanced

[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

Attachment: eglot.el
Description: Eglot, Emacs Polyglot


reply via email to

[Prev in Thread] Current Thread [Next in Thread]