diff options
Diffstat (limited to 'graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/message.h')
-rw-r--r-- | graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/message.h | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/message.h b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/message.h new file mode 100644 index 0000000000..6603f3fb3a --- /dev/null +++ b/graphics/asymptote/LspCpp/include/LibLsp/JsonRpc/message.h @@ -0,0 +1,34 @@ +#pragma once + +#include <atomic> +#include <string> +#include <iostream> +#include <LibLsp/JsonRpc/serializer.h> +#include "LibLsp/lsp/method_type.h" + +struct LspMessage +{ +public: + std::string jsonrpc = "2.0"; + virtual void ReflectWriter(Writer&) = 0; + + // Send the message to the language client by writing it to stdout. + void Write(std::ostream& out); + + + virtual MethodType GetMethodType() const = 0; + virtual void SetMethodType(MethodType) = 0; + + virtual ~LspMessage()=default; + enum Kind + { + REQUEST_MESSAGE, + RESPONCE_MESSAGE, + NOTIFICATION_MESSAGE + }; + + virtual Kind GetKid() = 0; + virtual std::string ToJson() ; + +}; + |