summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/libs/languageserverprotocol/jsonrpcmessages.h7
-rw-r--r--src/plugins/languageclient/languageclientmanager.cpp13
2 files changed, 9 insertions, 11 deletions
diff --git a/src/libs/languageserverprotocol/jsonrpcmessages.h b/src/libs/languageserverprotocol/jsonrpcmessages.h
index 5439242b3e..7a3fea1158 100644
--- a/src/libs/languageserverprotocol/jsonrpcmessages.h
+++ b/src/libs/languageserverprotocol/jsonrpcmessages.h
@@ -67,6 +67,13 @@ class LANGUAGESERVERPROTOCOL_EXPORT JsonRpcMessageHandler
public:
using MessageProvider = std::function<IContent *(const QJsonObject &)>;
static void registerMessageProvider(const QString &method, MessageProvider provider);
+ template<typename T>
+ static void registerMessageProvider()
+ {
+ registerMessageProvider(T::methodName, [](const QJsonObject &object){
+ return new T(object);
+ });
+ }
static QByteArray jsonRpcMimeType();
static void parseContent(const QByteArray &content, QTextCodec *codec, QString &errorMessage,
ResponseHandlers responseHandlers,
diff --git a/src/plugins/languageclient/languageclientmanager.cpp b/src/plugins/languageclient/languageclientmanager.cpp
index 454fb52939..0ed1831df2 100644
--- a/src/plugins/languageclient/languageclientmanager.cpp
+++ b/src/plugins/languageclient/languageclientmanager.cpp
@@ -71,19 +71,10 @@ public:
}
};
-template<typename T>
-void registerMessageProvider()
-{
- JsonRpcMessageHandler::registerMessageProvider(T::methodName,
- [](const QJsonObject &object){
- return new T(object);
- });
-}
-
LanguageClientManager::LanguageClientManager()
{
- registerMessageProvider<PublishDiagnosticsNotification>();
- registerMessageProvider<LogMessageNotification>();
+ JsonRpcMessageHandler::registerMessageProvider<PublishDiagnosticsNotification>();
+ JsonRpcMessageHandler::registerMessageProvider<LogMessageNotification>();
managerInstance = this;
}