70 lines
1.5 KiB
C++
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
|
|
};
|
|
}
|