module; export module lsp.protocol.common.message; import std; import lsp.protocol.common.basic_types; export namespace lsp::protocol { // LSP Error Codes enum class ErrorCodes : int { ParseError = -32700, InvalidRequest = -32600, MethodNotFound = -32601, InvalidParams = -32602, InternalError = -32603, JsonrpcReservedErrorRangeStart = -32099, ServerNotInitialized = -32002, UnknownErrorCode = -32001, JsonrpcReservedErrorRangeEnd = -32000, LspReservedErrorRangeStart = -32899, RequestFailed = -32803, ServerCancelled = -32802, ContentModified = -32801, RequestCancelled = -32800, LspReservedErrorRangeEnd = -32800 }; struct RequestMessage { string jsonrpc = "2.0"; RequestId id; string method; std::optional params; }; struct ResponseError { string jsonrpc = "2.0"; integer code; string message; std::optional data; }; struct ResponseMessage { string jsonrpc = "2.0"; std::optional id; std::optional result; std::optional error; }; struct NotificationMessage { string jsonrpc = "2.0"; string method; std::optional params; }; // $/cancelRequest notification params struct CancelParams { // The request id to cancel. RequestId id; // integer | string }; }