diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/libs/languageserverprotocol/jsonrpcmessages.h | 7 | ||||
| -rw-r--r-- | src/plugins/languageclient/languageclientmanager.cpp | 13 |
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; } |
