A wrapper for proactive notifications to the IDE (eg. diagnostics). These must follow the JSON 2.0 RPC spec
A wrapper for responses back to the IDE from the LSP service. These must follow the JSON 2.0 RPC spec
The LSP service is split into two parts:
The command given by the IDE to the LSP server. These represent the actions of the user in the IDE, as well as actions the IDE might perform as a result of user actions (like cancelling a task)
The workhorse function for handling incoming requests from the IDE. This will take instructions from stdin sent by the IDE and then send them to the appropriate system.