Implementation of JSON-RPC 2.0 (https://www.jsonrpc.org/specification) for use in the LSP server.
In JSON-RPC, each request from the client editor to the language server comes with a request id so that the corresponding response can be identified or cancelled.
- str: String → Lean.JsonRpc.RequestID
- num: Lean.JsonNumber → Lean.JsonRpc.RequestID
- null: Lean.JsonRpc.RequestID
Instances For
Equations
- Lean.JsonRpc.instInhabitedRequestID = { default := Lean.JsonRpc.RequestID.str default }
Equations
Equations
- Lean.JsonRpc.instOrdRequestID = { compare := Lean.JsonRpc.ordRequestID✝ }
Equations
- Lean.JsonRpc.instOfNatRequestID = { ofNat := Lean.JsonRpc.RequestID.num (Lean.JsonNumber.fromNat n) }
Equations
- One or more equations did not get rendered due to their size.
Error codes defined by JSON-RPC and LSP.
- parseError: Lean.JsonRpc.ErrorCode
Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text.
- invalidRequest: Lean.JsonRpc.ErrorCode
The JSON sent is not a valid Request object.
- methodNotFound: Lean.JsonRpc.ErrorCode
The method does not exist / is not available.
- invalidParams: Lean.JsonRpc.ErrorCode
Invalid method parameter(s).
- internalError: Lean.JsonRpc.ErrorCode
Internal JSON-RPC error.
- serverNotInitialized: Lean.JsonRpc.ErrorCode
Error code indicating that a server received a notification or request before the server has received the
initialize
request. - unknownErrorCode: Lean.JsonRpc.ErrorCode
- contentModified: Lean.JsonRpc.ErrorCode
The server detected that the content of a document got modified outside normal conditions. A server should NOT send this error code if it detects a content change in it unprocessed messages. The result even computed on an older state might still be useful for the client.
If a client decides that a result is not of any use anymore the client should cancel the request.
- requestCancelled: Lean.JsonRpc.ErrorCode
The client has canceled a request and a server as detected the cancel.
- rpcNeedsReconnect: Lean.JsonRpc.ErrorCode
- workerExited: Lean.JsonRpc.ErrorCode
- workerCrashed: Lean.JsonRpc.ErrorCode
Instances For
Equations
Equations
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
A JSON-RPC message.
Uses separate constructors for notifications and errors because client and server behavior is expected to be wildly different for both.
- request: Lean.JsonRpc.RequestID → String → Option Lean.Json.Structured → Lean.JsonRpc.Message
A request message to describe a request between the client and the server. Every processed request must send a response back to the sender of the request.
- notification: String → Option Lean.Json.Structured → Lean.JsonRpc.Message
A notification message. A processed notification message must not send a response back. They work like events.
- response: Lean.JsonRpc.RequestID → Lean.Json → Lean.JsonRpc.Message
A Response Message sent as a result of a request.
- responseError: Lean.JsonRpc.RequestID → Lean.JsonRpc.ErrorCode → String → Option Lean.Json → Lean.JsonRpc.Message
A non-successful response.
Instances For
Equations
Instances For
Generic version of Message.request
.
A request message to describe a request between the client and the server. Every processed request must send a response back to the sender of the request.
- method : String
- param : α
Instances For
Equations
- Lean.JsonRpc.instInhabitedRequest = { default := { id := default, method := default, param := default } }
Equations
- Lean.JsonRpc.instBEqRequest = { beq := Lean.JsonRpc.beqRequest✝ }
Equations
- Lean.JsonRpc.instCoeOutRequestMessageOfToJson = { coe := fun (r : Lean.JsonRpc.Request α) => Lean.JsonRpc.Message.request r.id r.method (Lean.Json.toStructured? r.param).toOption }
Generic version of Message.notification
.
A notification message. A processed notification message must not send a response back. They work like events.
- method : String
- param : α
Instances For
Equations
- Lean.JsonRpc.instInhabitedNotification = { default := { method := default, param := default } }
Equations
- Lean.JsonRpc.instBEqNotification = { beq := Lean.JsonRpc.beqNotification✝ }
Equations
- One or more equations did not get rendered due to their size.
Generic version of Message.response
.
A Response Message sent as a result of a request. If a request doesn’t provide a result value the receiver of a request still needs to return a response message to conform to the JSON-RPC specification. The result property of the ResponseMessage should be set to null in this case to signal a successful request.
References:
- result : α
Instances For
Equations
- Lean.JsonRpc.instInhabitedResponse = { default := { id := default, result := default } }
Equations
- Lean.JsonRpc.instBEqResponse = { beq := Lean.JsonRpc.beqResponse✝ }
Equations
- Lean.JsonRpc.instCoeOutResponseMessageOfToJson = { coe := fun (r : Lean.JsonRpc.Response α) => Lean.JsonRpc.Message.response r.id (Lean.toJson r.result) }
Generic version of Message.responseError
.
References:
- code : Lean.JsonRpc.ErrorCode
- message : String
A string providing a short description of the error.
- data? : Option α
A primitive or structured value that contains additional information about the error. Can be omitted.
Instances For
Equations
- Lean.JsonRpc.instInhabitedResponseError = { default := { id := default, code := default, message := default, data? := default } }
Equations
- Lean.JsonRpc.instBEqResponseError = { beq := Lean.JsonRpc.beqResponseError✝ }
Equations
- One or more equations did not get rendered due to their size.
Equations
- Lean.JsonRpc.instCoeOutResponseErrorUnitMessage = { coe := fun (r : Lean.JsonRpc.ResponseError Unit) => Lean.JsonRpc.Message.responseError r.id r.code r.message none }
Equations
Equations
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- h.writeMessage m = h.writeJson (Lean.toJson m)
Instances For
Equations
- h.writeRequest r = h.writeMessage (Lean.JsonRpc.Message.request r.id r.method (Lean.Json.toStructured? r.param).toOption)
Instances For
Equations
- h.writeNotification n = h.writeMessage (Lean.JsonRpc.Message.notification n.method (Lean.Json.toStructured? n.param).toOption)
Instances For
Equations
- h.writeResponse r = h.writeMessage (Lean.JsonRpc.Message.response r.id (Lean.toJson r.result))
Instances For
Equations
- h.writeResponseError e = h.writeMessage (Lean.JsonRpc.Message.responseError e.id e.code e.message none)
Instances For
Equations
- h.writeResponseErrorWithData e = h.writeMessage (Lean.JsonRpc.Message.responseError e.id e.code e.message (Option.map Lean.toJson e.data?))