From ccf2d848f4514428bbfe1702e43b20dcb77f58e8 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Wed, 12 Sep 2018 10:19:32 +0200 Subject: [PATCH] LSP: generalize adding message provider Change-Id: Ie15e835871a416523d58aba5362a34806cc8b70f Reviewed-by: Eike Ziller --- .../languageclient/languageclientmanager.cpp | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/plugins/languageclient/languageclientmanager.cpp b/src/plugins/languageclient/languageclientmanager.cpp index 0377f7587ec..454fb529399 100644 --- a/src/plugins/languageclient/languageclientmanager.cpp +++ b/src/plugins/languageclient/languageclientmanager.cpp @@ -71,16 +71,19 @@ public: } }; +template +void registerMessageProvider() +{ + JsonRpcMessageHandler::registerMessageProvider(T::methodName, + [](const QJsonObject &object){ + return new T(object); + }); +} + LanguageClientManager::LanguageClientManager() { - JsonRpcMessageHandler::registerMessageProvider("textDocument/publishDiagnostics", - [](const QJsonObject &object){ - return new PublishDiagnosticsNotification(object); - }); - JsonRpcMessageHandler::registerMessageProvider(LogMessageNotification::methodName, - [](const QJsonObject &object){ - return new LogMessageNotification(object); - }); + registerMessageProvider(); + registerMessageProvider(); managerInstance = this; }