Please provide an officially maintained atom language server plugin


#1

Feature request: please provide an officially maintained atom language server plugin.
The language server protocol outsources the logic of analyzing errors & suggestions of code in a specific language to an external editor-agnostic tool, and the protocol is supported by Visual Studio Code, eclipse, vim (might be just with a plugin though) and other editors on the client side, and languages like C#, Rust, and many more community implementations for various languages on the server side: https://github.com/Microsoft/language-server-protocol/wiki/Protocol-Implementations

The only Atom plugin I can find https://atom.io/packages/atom-languageclient appears to be possibly unmaintained, at least as of now (no response to various recent tickets, and last commit August 2016).

The language server protocol by Microsoft has already many language server implementations which are often provided by the language creators themselves, which allows for supreme semantic support for linting, error checking etc. right from the guys who know what’s up. By just providing this plugin and an easily enough UI dialog to choose a binary / path to a language server present on the local system, users could easily plug in any existing language server implementation without requiring a native Atom-specific plugin for that specific language.

Such an atom language server plugin should provide as a minimum:

  1. An easy UI for choosing a separately installed / downloaded language server to integrate and use into the currently running Atom instance
  2. Error checking and labeling using the exisitng linter interface based on the language server’s analysis
  3. Auto-completion based on the language server’s suggestions

Later, more features e.g. as seen here could be adopted: http://langserver.org/

It might also be a worth a consideration to have this package available in the default install once it works well enough. (e.g. Visual Studio Code, Microsoft’s new IDE/editor thing, seems to support adding new language servers out-of-the-box)


#2

Looks like there is now also an “official” repository for working on this:

This repo was listed on the LSP homepage, in the LSP client section:
http://langserver.org/
as well as here:


#3

I think it’s cool that atom is starting to use LSP. But I’m not keen on their project direction in terms of plugin usability.

They should just make a simple interface that the community could extend to their own plugins rather then enforcing everyone to use nuclide’s take on UI.


#4

It appears that there are actually two very different atom-languageclient projects. The atom-languageclient in the “atom” repo on github doesn’t depend on anything but the vscode-jsonrpc package. It’s actually an npm package and apparently not intended as a stand-alone package.

The other project, and the one that’s actually published to apm, is by Omnisharp. This looks like a pretty “heavyweight” implementation.


#5

It looks like @jonyeezs filed an issue on the language client repo regarding the coupling with Nuclide’s UI; I’ll paste it here for others’ convenience. Basically, all services will be publicly documented so that other packages can be used as well.


#6

Github announced Atom IDE on September 12th:


https://ide.atom.io/
which seems to be based on LSP


#7

Atom 1.21 is released and the blog post on the release also comments on LSP:

Also, the release notes contain some links: