diff --git a/src/libs/languageserverprotocol/jsonrpcmessages.h b/src/libs/languageserverprotocol/jsonrpcmessages.h index 5439242b3e2..7a3fea1158a 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; static void registerMessageProvider(const QString &method, MessageProvider provider); + template + 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 454fb529399..0ed1831df23 100644 --- a/src/plugins/languageclient/languageclientmanager.cpp +++ b/src/plugins/languageclient/languageclientmanager.cpp @@ -71,19 +71,10 @@ public: } }; -template -void registerMessageProvider() -{ - JsonRpcMessageHandler::registerMessageProvider(T::methodName, - [](const QJsonObject &object){ - return new T(object); - }); -} - LanguageClientManager::LanguageClientManager() { - registerMessageProvider(); - registerMessageProvider(); + JsonRpcMessageHandler::registerMessageProvider(); + JsonRpcMessageHandler::registerMessageProvider(); managerInstance = this; }