diff options
author | David Schulz <david.schulz@qt.io> | 2018-09-12 10:19:32 +0200 |
---|---|---|
committer | David Schulz <david.schulz@qt.io> | 2018-09-13 10:18:51 +0000 |
commit | ccf2d848f4514428bbfe1702e43b20dcb77f58e8 (patch) | |
tree | dc508b4ad6beffd823cf061092923d408fcf23cd /src | |
parent | 82ea862f5068902bf11d817786be9db7104bbcb3 (diff) | |
download | qt-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.cpp | 17 |
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; } |