Skip to main content
  • Log in
  • Manage Cookies
projects.eclipse.org
Download
  • Projects
  • Working Groups
  • Members
  • Community
    • Marketplace
    • Events
    • Planet Eclipse
    • Newsletter
    • Videos
    • Blogs
  • Participate
    • Report a Bug
    • Forums
    • Mailing Lists
    • Wiki
    • IRC
    • Research
  • Eclipse IDE
    • Download
    • Learn More
    • Documentation
    • Getting Started / Support
    • How to Contribute
    • IDE and Tools
    • Newcomer Forum
  • More
      • Community

      • Marketplace
      • Events
      • Planet Eclipse
      • Newsletter
      • Videos
      • Blogs
      • Participate

      • Report a Bug
      • Forums
      • Mailing Lists
      • Wiki
      • IRC
      • Research
      • Eclipse IDE

      • Download
      • Learn More
      • Documentation
      • Getting Started / Support
      • How to Contribute
      • IDE and Tools
      • Newcomer Forum
    • Search

  1. Home
  2. Projects
  3. Eclipse Tools Project
  4. Eclipse LSPHub
×

Warning message

This project is archived. Some links on this page may not work.

Eclipse LSPHub

Primary tabs

  • Overview(active tab)
  • Downloads
  • Who's Involved
  • Developer Resources
  • Governance
  • Contact Us

Eclipse LSPHub defines a data model for a kind of ubiquitous plug-ins format for all editors/IDEs. It focuses on describing artifacts that implements platform/tools indenpendent language services like LSP.

The data model defines the concept of an Extension which is a logical group of Contributions. A contribution provides support for editing file of given types (typing is being made via UTI).

A TextMate grammar is an contribution. It provides syntax higlighting support for language. LSPHub stores the required metadata for a TextMate grammar to be used: the URI to the actual grammar file(s) and the "scopeName".

A language server is another contribution. It provides the features described by the LSP. However, as there is no uniform packaging format for language servers, LSPHub can not store metadata about it. LSPHub thus define a packaging format for language server in the form of a Docker image. A language server would then be built as a Docker image along with all its dependencies and LSPHub will store the Docker image information (imageName, repository where to find it, version, exposed ports, etc.) along with additional metadata about the language server itself: the RPC configuration (whether it uses pipes, TCP sockets, etc.), the command to start the language server inside the container... This provides an homogeneous format that could be reused by any editor/IDEs to start a language server.

The combination of a language server and a TextMate grammar contributions will make a Extension that will offer an advanced language support to a tool.  

LSPHub defines a REST API on top of this data model. Responses are in Json or XML format. Currently, it is only a prototype where extensions can be queried by the type of files they have contributions for, e.g.:

curl -i -X GET --header 'Accept: application/json' http://lsphub.eclipse.org/extensions?uti=public.php-script

will reply

HTTP/1.1 200 OK
Date: Tue, 11 Jul 2017 18:02:01 GMT
Content-Length: 1188
Server: Jetty(9.4.1.v20170120)

)]}'
[
{
"type": "http://www.eclipselabs.org/lsphub/model#Extension",
"symbolicName": "org.eclipselabs.lsphub.phplang.support",
"displayName": "PHP Support",
"version": "1.0.0",
"contributions": [
{
"type": "http://www.eclipselabs.org/lsphub/model#LanguageServerDockerImage",
"symbolicName": "felixfbecker.php-language-server",
"displayName": "PHP language server",
"utis": [
"public.php-script"
],
"imageName": "mbarbero/phpls",
"tag": "latest",
"command": [
"php",
"vendor/felixfbecker/language-server/bin/php-language-server.php"
],
"rpcConfigurations": [
{
"type": "http://www.eclipselabs.org/lsphub/model#PipeConfiguration"
}
]
},
{
"type": "http://www.eclipselabs.org/lsphub/model#TextMateGrammar",
"symbolicName": "org.eclipselabs.php-tm-grammar",
"displayName": "PHP TM Grammar",
"utis": [
"public.php-script"
],
"grammarUris": [
"http://uri.of.the.grammar"
],
"scopeName": "source.php"
}
]
}
]

Licenses: 
Eclipse Public License 2.0

The content of this open source project is received and distributed under the license(s) listed above. Some source code and binaries may be distributed under different terms. Specific license information is provided in file headers and in NOTICE files distributed with the project's binaries.

Active Member Companies: 
Member companies supporting this project over the last three months.
    Archived - Eclipse LSPHub

    Related Projects

    Project Hierarchy:

    • Eclipse Tools Project
    • Eclipse LSPHub

    Eclipse Foundation

    • About Us
    • Contact Us
    • Sponsor
    • Members
    • Governance
    • Code of Conduct
    • Logo and Artwork
    • Board of Directors
    • Careers

    Legal

    • Privacy Policy
    • Terms of Use
    • Copyright Agent
    • Eclipse Public License
    • Legal Resources

    Useful Links

    • Report a Bug
    • Documentation
    • How to Contribute
    • Mailing Lists
    • Forums
    • Marketplace

    Other

    • IDE and Tools
    • Projects
    • Working Groups
    • Research@Eclipse
    • Report a Vulnerability
    • Service Status

    Copyright © Eclipse Foundation. All Rights Reserved.

    Back to the top