summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDavid Schulz <david.schulz@qt.io>2018-09-12 10:19:32 +0200
committerDavid Schulz <david.schulz@qt.io>2018-09-13 10:18:51 +0000
commitccf2d848f4514428bbfe1702e43b20dcb77f58e8 (patch)
treedc508b4ad6beffd823cf061092923d408fcf23cd /src
parent82ea862f5068902bf11d817786be9db7104bbcb3 (diff)
downloadqt-creator-ccf2d848f4514428bbfe1702e43b20dcb77f58e8.tar.gz
LSP: generalize adding message provider
Change-Id: Ie15e835871a416523d58aba5362a34806cc8b70f Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/languageclient/languageclientmanager.cpp17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/plugins/languageclient/languageclientmanager.cpp b/src/plugins/languageclient/languageclientmanager.cpp
index 0377f7587e..454fb52939 100644
--- a/src/plugins/languageclient/languageclientmanager.cpp
+++ b/src/plugins/languageclient/languageclientmanager.cpp
@@ -71,16 +71,19 @@ public:
}
};
-LanguageClientManager::LanguageClientManager()
+template<typename T>
+void registerMessageProvider()
{
- JsonRpcMessageHandler::registerMessageProvider("textDocument/publishDiagnostics",
- [](const QJsonObject &object){
- return new PublishDiagnosticsNotification(object);
- });
- JsonRpcMessageHandler::registerMessageProvider(LogMessageNotification::methodName,
+ JsonRpcMessageHandler::registerMessageProvider(T::methodName,
[](const QJsonObject &object){
- return new LogMessageNotification(object);
+ return new T(object);
});
+}
+
+LanguageClientManager::LanguageClientManager()
+{
+ registerMessageProvider<PublishDiagnosticsNotification>();
+ registerMessageProvider<LogMessageNotification>();
managerInstance = this;
}