-
Notifications
You must be signed in to change notification settings - Fork 824
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
List supporting implementations #8
Comments
I'm working on an implementation for Haxe language here https://github.com/vshaxe/haxe-languageserver/tree/master/src. It's not yet ready, but I'm planning to make it a separate lib, similar to how MS did it with vscode-languageserver-node. EDIT: I started moving the protocol itself implementation into a separate lib: https://github.com/vshaxe/vscode-languageserver-haxe |
We are working on an implementation for Xtext here https://github.com/eclipse/xtext/blob/restructuring/plugins/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/server/LanguageServerImpl.xtend. |
(@dbaeumer)
Work in progress:
Under consideration
|
I was experimenting a with implementing a language server in PHP but didnt work for it for quite a while because I faced limitations in the PHP parser (it cannot parse incomplete code - which is crucial for autocomplete). Need to improve the parser before working on the language server further |
@svenefftinge I forgot to mention that the 'server based' linters, that is, linters that are run in a server to avoid the restart overhead for each lint pass, are all using the VS Code language protocol:
They typically use the diagnostics subset of the protocol. vscode-eslint is also using code actions/quick fixes. |
The json support inside VSCode uses the protocol as well. |
The Crane - PHP plugin is based on the server protocol as well (the server is implemented in TS) https://marketplace.visualstudio.com/items?itemName=HvyIndustries.crane |
I've started to a page with the protocol implementations. Please use this issue to discuss additions/changes. |
@egamma Cool, thank you. Some comments. The Java-binding we (TypeFox == Maintainer) are working on is not an implementation for the java language, but a Java implementation of the protocol. I.e. A redefinition of all the message types in Java, together with JSON de/serialization. Also we have defined Java interfaces for the service methods. So it doesn't really belong in the 'Languages' category. Xtext is spelled with an upper case X :) |
Codenvy and TypeFox are also working on a client implementation for Eclipse Che. |
The link to Haxe thing is not a language server itself, but merely the protocol code (similar to MS's vscode-languageserver-node), the correct link would be https://github.com/vshaxe/haxe-languageserver |
Thanks for the feedback I made another pass:
|
https://github.com/georgewfraser/vscode-javac uses this protocol to provide Java language support |
@georgewfraser thanks, I've updated the table. |
Codenvy is working on a JSON implementation of the language server protocol. Also, we will have full support for language server and debugging server protocol within Che workspaces. We are also working on a distributed language server registry. This will allow a user to open a remote workspace and a file with a certain extension. If that extension does not have a language server associated with it, we'll do a lookup to see if one is available for download and installation into a workspace. Each distribute workspace can have different sets of language servers installed. |
Do any of the server protocol implementations listed so far support being installed and ran stand-alone, that is, outside of VSCode? I am contemplating writing a client implementation for Eclipse (not Che, but the regular Eclipse desktop IDE), possibly integrating that into MelnormeEclipse a framework for creating Eclipse-based IDEs. But for that I'd like a language server implementation that I could start on its own. (Preferably for a language I know, like Java or C++, but I'd take any mature server). For example, could this be done for the C++ language server? |
I think all nodejs-based server can be easily started without vscode, you just start them with node and connect thru stdio. |
@bruno-medeiros: I think most of the servers are currently bundled with the corresponding VS Code extension. If we want to reuse these server outside VS Code we need to work on packaging them independently of VS Code. I like doing this, but the actual work as to come from the VS Code extension creators. As soon as there is a client to Eclipse & Eclipse Che I think there will be enough motivation for language server providers to do so. |
Also, language servers will need a way to advertise themselves to various tools. A tool provider will want to provide a lookup mechanism and potentially a file type to language server association. And ten each tool provider will have a different process for how to integrate the language server into the editor. VS Code handles this by wrapping each server with an extension. Che will address this by having a common extension that works for all language servers. So for language servers to advertise themselves and potentially the IDE specific extensions that wrap them, they will need a registry to halt their versions and optional extension adapters. Codenvy and Eclipse Che are going to build a system to support this. We will then allow language servers to publish and version themselves, and it will be accessible for free by any tool. |
The RAML Workgroup is implementing a language server for RAML, based on an ongoing componentization of the API Workbench. The language server work will be done in a new repo. The API Workbench is powered by a TypeScript-based SDK for RAML that features a parser, syntax highlighting, autocompletion, refactoring, navigation, and other capabilities useful for API professionals. The SDK forms the basis for the API Workbench implemented in Atom, but also has a web version and is intended to be incorporated in various editors and IDEs such as Eclipse. As the SDK components are broken out, we will be incorporating them into a node-based server supporting the Language Server Protocol. |
Does #25 help regarding the effort? Language servers working across IDE's is a win for everyone. Thanks for making this happen. |
Please update the repository link for the Xtext language server to https://github.com/eclipse/xtext-core/blob/master/org.eclipse.xtext.ide/src/org/eclipse/xtext/ide/server/LanguageServerImpl.xtend (moved to another repository) |
@spoenemann done |
We are going to build a Groovy and SQL language server implementation over the next few weeks, with a Python one later down the road. I'll post links in the wiki to the code when we have an MVP up on github. |
We've added support for the languageserver protocol to omnisharp via the node module |
@david-driscoll this is great news, added a row for omnisharp to the wiki page. |
Acording to https://github.com/Microsoft/language-server-protocol/wiki/Protocol-Implementations there is a C# sdk/lib
Is there a repo somewhere? |
Hi, Best Regards [1] https://git.gnome.org/browse/gnome-builder/commit/libide/langserv?id=9b9db77635405aec2184237192a9ee6806caf0c0 |
@jpogran I've added the puppet language server to the table. Hope it is OK by you. |
@pejas updated the link, thanks! |
Another We are joining efforts with @prabirshrestha, who has added a deprecation note here. |
@egamma Is there any reason this one wasn't added? |
@adamvoss sorry about. I must have overlooked it. I've added it now at a position that should correspond to the chronological order of its appearance. |
@egamma could you also update the typescript entry according to my previous comment? Thanks. |
Hi, We are working on a new language wich is called TypeCobol ! Here is our GitHub team : https://github.com/TypeCobolTeam Let me know if you need more information. |
@egamma Could you add solidity-language-server to the list? Project: https://github.com/CodeChain-io/solidity-language-server |
@svenefftinge done, sorry for the delay |
@collarbe done |
@kseo done |
@egamma With you change 05a39fd39a5433ed55b379d27439968bf69e1038 on the wiki from Aug 7th 2017, you removed the list of SDKs for the various programming language. I find this information is very valuable for the integrators who want to add support for new language or tools, and removing it makes their task harder. Was this removal intentional? If yes, what's the rationale? I'd be glad to see this valuable list back on this page! |
@mickaelistria sorry about that. I've restored the contents and extracted it into a separate page. |
Another very promising Scala language server based on Scalameta: https://github.com/scalameta/language-server |
@laughedelic added to the table, thanks. |
Hi, Visual Studio 2017 now has Language Server support in preview that is maintained by Microsoft. https://marketplace.visualstudio.com/items?itemName=vsext.LanguageServerClientPreview |
@StephanieSu - is the source for the LSP client library ( |
The list at https://github.com/Microsoft/language-server-protocol/wiki/Protocol-Implementations is wrong, https://github.com/OmniSharp/csharp-language-server-protocol is an SDK for writing LSP servers and clients. OmniSharp LSP is currently through https://github.com/OmniSharp/omnisharp-node-client with direct support in https://github.com/OmniSharp/omnisharp-roslyn coming soon. |
@david-driscoll thanks, I've fixed protocol implementations page. https://github.com/OmniSharp/csharp-language-server-protocol is already listed on the SDK page https://github.com/Microsoft/language-server-protocol/wiki/Language-Server-Protocol-SDKs. So I think we are OK now. |
I just released my glsl language server. It currently only does diagnostics but it does it pretty well. |
We've released our open source testing tool, Gauge https://github.com/getgauge/gauge/ with language server protocol support. It implements
We'll be releasing our Visual Studio Code plugin plugin soon. |
We have released our language server implementation for BallerinaLang. Language: Ballerina Supported Features:
Let me know if you need more information Cheers |
I'd appreciate an entry for the language server for Dart: https://github.com/natebosch/dart_language_server Also another client for vim: https://github.com/natebosch/vim-lsc Thanks! |
@egamma I added the servers mentioned in the following comments |
@dbaeumer great thanks 🌷 |
It would be helpful to have a wiki page where we can list any efforts that are working on either a client side or a server side implementation of the protocol.
It's a key information to convince people to use this API and currently hard to find.
So far it seems like from your side vscode is the only client implementation and your JSON support is the only server implementation.
What else are people working on?
The text was updated successfully, but these errors were encountered: