summaryrefslogtreecommitdiff
path: root/graphics/asymptote/LspCpp/src/lsp/lsp_diagnostic.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/asymptote/LspCpp/src/lsp/lsp_diagnostic.cpp')
-rwxr-xr-xgraphics/asymptote/LspCpp/src/lsp/lsp_diagnostic.cpp75
1 files changed, 75 insertions, 0 deletions
diff --git a/graphics/asymptote/LspCpp/src/lsp/lsp_diagnostic.cpp b/graphics/asymptote/LspCpp/src/lsp/lsp_diagnostic.cpp
new file mode 100755
index 0000000000..79d9a6fc63
--- /dev/null
+++ b/graphics/asymptote/LspCpp/src/lsp/lsp_diagnostic.cpp
@@ -0,0 +1,75 @@
+#include "LibLsp/lsp/lsp_diagnostic.h"
+
+bool lsDiagnostic::operator==(const lsDiagnostic& rhs) const {
+ // Just check the important fields.
+ return range == rhs.range && message == rhs.message;
+}
+bool lsDiagnostic::operator!=(const lsDiagnostic& rhs) const {
+ return !(*this == rhs);
+}
+
+std::string lsResponseError::ToString()
+{
+ std::string info = "code:";
+ switch (code)
+ {
+ case lsErrorCodes::ParseError:
+ info += "ParseError\n";
+ break;
+ case lsErrorCodes::InvalidRequest:
+ info += "InvalidRequest\n";
+ break;
+ case lsErrorCodes::MethodNotFound:
+ info += "MethodNotFound\n";
+ break;
+ case lsErrorCodes::InvalidParams:
+ info += "InvalidParams\n";
+ break;
+ case lsErrorCodes::InternalError:
+ info += "InternalError\n";
+ break;
+ case lsErrorCodes::serverErrorStart:
+ info += "serverErrorStart\n";
+ break;
+ case lsErrorCodes::serverErrorEnd:
+ info += "serverErrorEnd\n";
+ break;
+ case lsErrorCodes::ServerNotInitialized:
+ info += "ServerNotInitialized\n";
+ break;
+ case lsErrorCodes::UnknownErrorCode:
+ info += "UnknownErrorCode\n";
+ break;
+ // Defined by the protocol.
+ case lsErrorCodes::RequestCancelled:
+ info += "RequestCancelled\n";
+ break;
+ default:
+ {
+ std::stringstream ss;
+ ss << "unknown code:" << (int32_t)code << std::endl;
+ info += ss.str();
+ }
+ break;
+ }
+ info += "message:" + message;
+ info += "\n";
+
+ if(data.has_value())
+ {
+
+ info += "data:" + data.value().Data();
+ info += "\n";
+ }
+ return info;
+}
+
+void lsResponseError::Write(Writer& visitor) {
+ auto& value = *this;
+ int code2 = static_cast<int>(this->code);
+
+ visitor.StartObject();
+ REFLECT_MEMBER2("code", code2);
+ REFLECT_MEMBER(message);
+ visitor.EndObject();
+}