Add support for language services in Monaco editor, using LSP.
In this first version, the functionality can only be enabled by WebLab administrators.
First language to support is java.

Related tasks:

  • extend Monaco editor scripts/templates with ability to connect to a language server, with exchange of the required code file and related data
  • extend labback-docker with support for long running interactive jobs
  • add proxy service for remote servers on which the docker containers will run

Basic control flow after loading monaco editor with LSP support enabled:

  • WebLab instructs backend with task file to spawn a language server instance
    • Labback will start a docker container on a remote server that runs the language server, and sets up an endpoint (proxy service on remote server) to which the Monaco editor should connect
    • Labback updates task file with endpoint information, WebLab communicates this to the client, which can then connect to the language server.
    • LSP container gets destroyed after idle timeout or on client disconnect
Submitted by Elmer van Chastelet on 1 June 2022 at 09:46

On 16 June 2022 at 09:00 Elmer van Chastelet closed this issue.

Log in to post comments