aboutsummaryrefslogtreecommitdiffstats
path: root/src/shared/lsp/lsputils.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared/lsp/lsputils.cpp')
-rw-r--r--src/shared/lsp/lsputils.cpp68
1 files changed, 68 insertions, 0 deletions
diff --git a/src/shared/lsp/lsputils.cpp b/src/shared/lsp/lsputils.cpp
new file mode 100644
index 000000000..f26a8a21c
--- /dev/null
+++ b/src/shared/lsp/lsputils.cpp
@@ -0,0 +1,68 @@
+// Copyright (C) 2018 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#include "lsputils.h"
+
+#include <QHash>
+#include <QLoggingCategory>
+#include <QVector>
+
+namespace lsp {
+
+Q_LOGGING_CATEGORY(conversionLog, "qtc.languageserverprotocol.conversion", QtWarningMsg)
+
+template<>
+QString fromJsonValue<QString>(const QJsonValue &value)
+{
+ if (conversionLog().isDebugEnabled() && !value.isString())
+ qCDebug(conversionLog) << "Expected String in json value but got: " << value;
+ return value.toString();
+}
+
+template<>
+int fromJsonValue<int>(const QJsonValue &value)
+{
+ if (conversionLog().isDebugEnabled() && !value.isDouble())
+ qCDebug(conversionLog) << "Expected double in json value but got: " << value;
+ return value.toInt();
+}
+
+template<>
+double fromJsonValue<double>(const QJsonValue &value)
+{
+ if (conversionLog().isDebugEnabled() && !value.isDouble())
+ qCDebug(conversionLog) << "Expected double in json value but got: " << value;
+ return value.toDouble();
+}
+
+template<>
+bool fromJsonValue<bool>(const QJsonValue &value)
+{
+ if (conversionLog().isDebugEnabled() && !value.isBool())
+ qCDebug(conversionLog) << "Expected bool in json value but got: " << value;
+ return value.toBool();
+}
+
+template<>
+QJsonArray fromJsonValue<QJsonArray>(const QJsonValue &value)
+{
+ if (conversionLog().isDebugEnabled() && !value.isArray())
+ qCDebug(conversionLog) << "Expected Array in json value but got: " << value;
+ return value.toArray();
+}
+
+template<>
+QJsonObject fromJsonValue<QJsonObject>(const QJsonValue &value)
+{
+ if (conversionLog().isDebugEnabled() && !value.isObject())
+ qCDebug(conversionLog) << "Expected Object in json value but got: " << value;
+ return value.toObject();
+}
+
+template<>
+QJsonValue fromJsonValue<QJsonValue>(const QJsonValue &value)
+{
+ return value;
+}
+
+} // namespace lsp