cloud-language-servers-container

所属分类:Websocket编程
开发工具:Java
文件大小:0KB
下载次数:0
上传日期:2022-10-03 21:28:15
上 传 者sh-1993
说明:  在LSP实现之上提供HTTP REST websocket API的服务器端包装器
(Server side wrapper that provides HTTP REST websocket APIs on top of LSP implementations)

文件列表:
.idea/ (0, 2021-08-17)
.idea/runConfigurations/ (0, 2021-08-17)
.idea/runConfigurations/LSPServerCF__jetty_run_.xml (2374, 2021-08-17)
.reuse/ (0, 2021-08-17)
.reuse/dep5 (378, 2021-08-17)
.settings/ (0, 2021-08-17)
.settings/.jsdtscope (567, 2021-08-17)
.settings/org.eclipse.jdt.core.prefs (243, 2021-08-17)
.settings/org.eclipse.m2e.core.prefs (90, 2021-08-17)
.settings/org.eclipse.wst.common.component (577, 2021-08-17)
.settings/org.eclipse.wst.common.project.facet.core.prefs.xml (321, 2021-08-17)
.settings/org.eclipse.wst.common.project.facet.core.xml (439, 2021-08-17)
.settings/org.eclipse.wst.jsdt.ui.superType.container (49, 2021-08-17)
.settings/org.eclipse.wst.jsdt.ui.superType.name (6, 2021-08-17)
.settings/org.eclipse.wst.validation.prefs (50, 2021-08-17)
.travis.yml (484, 2021-08-17)
.xmake.cfg (98, 2021-08-17)
CONTRIBUTING.md (565, 2021-08-17)
LICENSE (11419, 2021-08-17)
LICENSES/ (0, 2021-08-17)
LICENSES/Apache-2.0.txt (11357, 2021-08-17)
NOTICE (60, 2021-08-17)
WebContent/ (0, 2021-08-17)
WebContent/META-INF/ (0, 2021-08-17)
WebContent/META-INF/MANIFEST.MF (39, 2021-08-17)
WebContent/WEB-INF/ (0, 2021-08-17)
WebContent/WEB-INF/web.xml (575, 2021-08-17)
WebContent/WEB-INF/work/ (0, 2021-08-17)
WebContent/WEB-INF/work/info.txt (31, 2021-08-17)
manifest.yaml (1058, 2021-08-17)
pom.xml (8176, 2021-08-17)
setenv_win.sh (534, 2021-08-17)
settings.xml (10216, 2021-08-17)
src/ (0, 2021-08-17)
src/main/ (0, 2021-08-17)
src/main/java/ (0, 2021-08-17)
src/main/java/com/ (0, 2021-08-17)
src/main/java/com/sap/ (0, 2021-08-17)
... ...

[![Build Status](https://travis-ci.org/SAP/cloud-language-servers-container.svg?branch=master)](https://travis-ci.org/SAP/cloud-language-servers-container) [![REUSE status](https://api.reuse.software/badge/github.com/SAP/cloud-language-servers-container)](https://api.reuse.software/info/github.com/SAP/cloud-language-servers-container) # Description The [language server protocol](https://github.com/Microsoft/language-server-protocol) has several implementations for various technologies. Their communication protocols are low level like socket to socket and stdin/stdout. In addition they are targeted at running on the developer machine and not on cloud environment. cloud-language-servers-container is a wrapper server that can run inside an isolated container. It exposes language servers functionality through web socket and REST APIs. The solution covers exposing the language servers, synchronization of source code, security aspects, isoation, etc. ## Responsibilities - Converting socket/stdin/stdout/etc. into websocket - Start and stop LSP specific implementations per project/language - Sync workspace changes and call LSP protocol relevant notifications accordingly - Manage security tokens life cycle ## Requirements cloud-language-servers-container should run in a JEE container such as [Tomcat](https://tomcat.apache.org/) or [Jetty](http://www.eclipse.org/jetty/). cloud-language-servers-container integration tests require ruby installation (see below). For integration with [CloudFoundry](http://www.cloudfoundry.org) there should be an available end point, org and space in CloudFoundry to deploy there the server as a Java application. # Download and Installation The server is designed to run in a container dedicated for a single user workspace. Specific language servers should be installed and configured via environemnt variables. For CloudFoundry there is a dedicated [buildpack](https://github.com/SAP/cf-language-server-buildpack) responsible for this setup with support currently for java LSP. In order to build and run cloud-language-servers-container in CloudFoundry follow these steps from command line: * Download [Maven](https://maven.apache.org/download.cgi) * Install [Cloud Foundry Command Line Interface](http://docs.cloudfoundry.org/cf-cli/) * Run `mvn clean install` * Run `cf login` to login to cloud foundry endpoint, org and space * Run `cf push` * An application named `lsp` should be created with a running cloud-language-servers-container # Development Environment ## Debug the application in CloudFoundry - Find your IP - Update environemnt variables in cf: `JAVA-OPTS` (correct the IP) and `JBP_CONFIG_DEBUG` according to https://github.com/SAP/cloud-language-servers-container/blob/master/manifest.yaml#L12-L13. If push is done from another server populate these environment variables using the debugger - After push to CF run from terminal: `cf ssh -N -T -L 8000:localhost:8000 ` - Use your favorite IDE to remote debug localhost with port 8000 ## Local Integration Test in Windows Mocha integration tests can be run from intellij run configuration: * Run or debug the run configuration `LSPServerCF [jetty:run]` * Go to one of the suites under `src/test/javascript/test` and run/debug using mocha ## Snapshots deployment job https://gkemonaco.jaas-gcp.cloud.sap.corp/job/LSPServerCF_Deploy_Snapshot/ ## Run server locally `mvn jetty:run -Pintegration-test` # Limitations cloud-language-servers-container is integrated fully in CloudFoundry using [the language server buildpack](https://github.com/SAP/cf-language-server-buildpack). However there is a small gap for full integration on local machine or Docker. # Known Issues * Memory footprint for JEE server is substantial when each user workspace gets his own server instance. * rsync or websocket interfaces might have better performance than the current HTTP REST (for a setting that require sync) # How to obtain support For bugs, questions and ideas for enhancement please open an issue in github. # To-Do (upcoming changes) * Setup official releases * Make integration test LSPTest2.js to run with node instead of ruby * Easy automated way to install cloud-language-servers-container together with language servers on local machine * Remove CloudFoundry specific code # License Copyright (c) 2017-2021 SAP SE or an SAP affiliate company and cloud-language-servers-container contributors. Please see our [LICENSE](LICENSE) for copyright and license information. Detailed information including third-party components and their licensing/copyright information is available [via the REUSE tool](https://api.reuse.software/info/github.com/SAP/cloud-language-servers-container).

近期下载者

相关文件


收藏者