/**
* The capabilities the language server provides.
*/
struct InitializeResult
{
lsServerCapabilities capabilities;
MAKE_SWAP_METHOD(InitializeResult, capabilities);
};
/**
* The initialize request is sent as the first request from the client to
* the server.
*
* If the server receives request or notification before the initialize request it should act as follows:
* - for a request the respond should be errored with code: -32001. The message can be picked by the server.
* - notifications should be dropped, except for the exit notification. This will allow the exit a server without an initialize request.
*
* Until the server has responded to the initialize request with an InitializeResult
* the client must not sent any additional requests or notifications to the server.
*
* During the initialize request the server is allowed to sent the notifications window/showMessage,
* window/logMessage and telemetry/event as well as the window/showMessageRequest request to the client.
*/