-
Notifications
You must be signed in to change notification settings - Fork 334
Open
Description
Related Prior Work
- now when Launching ydoc-server together with language-server #13178 has been integrated
- Language Server 2.0 #5419 was dreaming about:
- using Helidon to implement network communication
- writing Language Server in JavaScript
- since Ydoc native image #10783 & co. Helidon can be used for
WebSocketemulation - discussion about using Y.js to simulate duplex network communication
Task 1: Avoid two WebSocket Connections
- modify IDE &
ydoc-sharedcode - avoid IDE creating two
WebSocketconnections (one toydoc-serveranother to language server_) - let IDE connect to
ydoc-serveronly and ... - ... "send messages" by adding them to FIFO Y.js queue
- let the
ydoc-serverdistribute these messages to language server - sketch of necessary changes: Connect MainModule.scala and languageServer.ts so they can all to each other
Task 2: Ydoc Server Talks to Language Server Directly
- with Launching ydoc-server together with language-server #13178 the Ydoc server no longer has to send network messages
- but it can make direct calls into language server
- by doing so we can eliminate the network Akka layer
Future Work: Less Messages
- as @farmaazon puts it:
- we could do even better. Many endpoints are for altering some state managed by LS (execution context, file contents...). We should just update structures representing that state.
- all that's going to be enabled once we finish tasks 1 and 2
Metadata
Metadata
Assignees
Type
Projects
Status
🔧 Implementation