tsl-devkit/lsp-server/src/protocol/common/message.cppm

70 lines
1.5 KiB
C++

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<LSPAny> params;
};
struct ResponseError
{
string jsonrpc = "2.0";
integer code;
string message;
std::optional<LSPAny> data;
};
struct ResponseMessage
{
string jsonrpc = "2.0";
std::optional<RequestId> id;
std::optional<LSPAny> result;
std::optional<ResponseError> error;
};
struct NotificationMessage
{
string jsonrpc = "2.0";
string method;
std::optional<LSPAny> params;
};
// $/cancelRequest notification params
struct CancelParams
{
// The request id to cancel.
RequestId id; // integer | string
};
}