diff options
Diffstat (limited to 'Build/source/utils/asymptote/LspCpp/LibLsp/lsp/general/initialize.h')
-rw-r--r-- | Build/source/utils/asymptote/LspCpp/LibLsp/lsp/general/initialize.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/Build/source/utils/asymptote/LspCpp/LibLsp/lsp/general/initialize.h b/Build/source/utils/asymptote/LspCpp/LibLsp/lsp/general/initialize.h new file mode 100644 index 00000000000..eb8810939ac --- /dev/null +++ b/Build/source/utils/asymptote/LspCpp/LibLsp/lsp/general/initialize.h @@ -0,0 +1,39 @@ +#pragma once +#include "LibLsp/JsonRpc/message.h" +#include "InitializeParams.h" +#include "lsServerCapabilities.h" +#include "LibLsp/JsonRpc/lsResponseMessage.h" +#include "LibLsp/JsonRpc/RequestInMessage.h" + + + + + + +/** + * The capabilities the language server provides. + */ + struct InitializeResult { + lsServerCapabilities capabilities; + MAKE_SWAP_METHOD(InitializeResult, capabilities); + }; + +MAKE_REFLECT_STRUCT(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. + */ + +DEFINE_REQUEST_RESPONSE_TYPE(td_initialize, lsInitializeParams, InitializeResult, "initialize"); |