diff --git a/src/plugins/languageclient/client.cpp b/src/plugins/languageclient/client.cpp index 4c2fcf101f6..98cf59898de 100644 --- a/src/plugins/languageclient/client.cpp +++ b/src/plugins/languageclient/client.cpp @@ -1683,6 +1683,11 @@ void Client::setLogTarget(LogTarget target) } void Client::start() +{ + startImpl(); +} + +void Client::startImpl() { d->m_shutdownTimer.stop(); LanguageClientManager::addClient(this); diff --git a/src/plugins/languageclient/client.h b/src/plugins/languageclient/client.h index 13e908b2d50..ec4c7c26854 100644 --- a/src/plugins/languageclient/client.h +++ b/src/plugins/languageclient/client.h @@ -224,6 +224,7 @@ protected: void handleMessage(const LanguageServerProtocol::JsonRpcMessage &message); virtual void handleDiagnostics(const LanguageServerProtocol::PublishDiagnosticsParams ¶ms); virtual DiagnosticManager *createDiagnosticManager(); + virtual void startImpl(); private: friend class ClientPrivate; diff --git a/src/plugins/qmljseditor/qmllsclient.cpp b/src/plugins/qmljseditor/qmllsclient.cpp index 9fe50a5af7e..087e58dc255 100644 --- a/src/plugins/qmljseditor/qmllsclient.cpp +++ b/src/plugins/qmljseditor/qmllsclient.cpp @@ -66,10 +66,6 @@ QmllsClient *QmllsClient::clientForQmlls(const FilePath &qmlls) QmllsClient::QmllsClient(StdIOClientInterface *interface) : Client(interface) { - LanguageServerProtocol::Unregistration unregister; - unregister.setMethod("textDocument/semanticTokens"); - unregister.setId({}); - dynamicCapabilities().unregisterCapability({unregister}); } QmllsClient::~QmllsClient() @@ -77,4 +73,14 @@ QmllsClient::~QmllsClient() qmllsClients().remove(qmllsClients().key(this)); } +void QmllsClient::startImpl() +{ + LanguageServerProtocol::Unregistration unregister; + unregister.setMethod("textDocument/semanticTokens"); + unregister.setId({}); + dynamicCapabilities().unregisterCapability({unregister}); + + Client::startImpl(); +} + } // namespace QmlJSEditor diff --git a/src/plugins/qmljseditor/qmllsclient.h b/src/plugins/qmljseditor/qmllsclient.h index 30c0170bf70..2010ea0dda0 100644 --- a/src/plugins/qmljseditor/qmllsclient.h +++ b/src/plugins/qmljseditor/qmllsclient.h @@ -19,6 +19,7 @@ public: explicit QmllsClient(LanguageClient::StdIOClientInterface *interface); ~QmllsClient(); + void startImpl() override; static QmllsClient *clientForQmlls(const Utils::FilePath &qmlls); };