OmniSharp / atom-languageclient

MIT License
13 stars 6 forks source link

README.md doesn't explain very well what this package is for #3

Open ghost opened 7 years ago

ghost commented 7 years ago

The README.md doesn't explain very well what this package is for. The things I am missing are:

  1. Is this package meant to be used directly by Atom users, or just as a base plugin for other plugin developers to create new language support packages more easily? (or both)

  2. If directly meant for Atom users, I am missing a section "Usage" before the "Architecture" section which explains things like: how do I add the path to the binary of a language server for my new language X to be processed with the plugin

  3. What exact parts of the language server protocol does this plugin provide for the end user? (linting, error checking, debugging, ... ?)

As a solution, I recommend expanding the top paragraph to something like this:

An implementation of the https://github.com/Microsoft/language-server-protocol/blob/master/protocol.md for the atom editor.

It can be used both as a basis by plugin developers for new language support plugins for Atom, as well as directly by Atom end users for integrating existing language servers for use with their editor to get support for advanced editor features for new programming languages that don't have their own dedicated language-X Atom plugin yet.

Through any newly added language servers, this plugin will provide linting, error checking and debugging in the Atom editor for any new choice of programming language (given the specific language server chosen supports those features). As for adding new languages after installing this plugin in your Atom editor, see the "Usage" section below."

(or similar depending on what this plugin is actually made for)

TimvdLippe commented 7 years ago

@david-driscoll Could you update the README per above instructions? I have been trying for quite some time now to understand the contents of this package and how to use it, but sadly with no success so far.

Most prominently it is unclear to me how I as a developer of a language can use this package such that Atom is compatible with the protocol. We have a server already which produces protocol-compatible results, but no connection with Atom. It seems like this package is the solution for that problem, however classes such as https://github.com/OmniSharp/atom-languageclient/blob/master/src/AtomLanguageClientPackage.ts are non-existent in the distribution of the package. Moreover there are multiple custom types used throughout this class which do not exist anywhere else.

Would greatly appreciate if you could give a minimal working version of the package such that I can hook it on to our server. Thank you for your time!