LanguageClient: Export ProgressManager

Change-Id: I737b7097878aacf9d1cf5b72af05b1471ab36891
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
David Schulz
2023-01-12 13:24:15 +01:00
parent 71d18a1285
commit 15cf2ecf25
4 changed files with 10 additions and 16 deletions

View File

@@ -38,6 +38,7 @@
#include <languageclient/languageclientmanager.h>
#include <languageclient/languageclientsymbolsupport.h>
#include <languageclient/languageclientutils.h>
#include <languageclient/progressmanager.h>
#include <languageserverprotocol/clientcapabilities.h>
#include <languageserverprotocol/progresssupport.h>
#include <projectexplorer/buildconfiguration.h>
@@ -413,10 +414,10 @@ ClangdClient::ClangdClient(Project *project, const Utils::FilePath &jsonDbDir, c
setClientCapabilities(caps);
setLocatorsEnabled(false);
setAutoRequestCodeActions(false); // clangd sends code actions inside diagnostics
setProgressTitleForToken(indexingToken(),
progressManager()->setTitleForToken(indexingToken(),
project ? tr("Indexing %1 with clangd").arg(project->displayName())
: tr("Indexing session with clangd"));
setClickHandlerForToken(indexingToken(), [] {
progressManager()->setClickHandlerForToken(indexingToken(), [] {
// don't directly open modal dialog from click handler, because that would mess
// up the stack
QMetaObject::invokeMethod(

View File

@@ -1572,16 +1572,9 @@ void Client::setError(const QString &message)
d->m_state = Error;
}
void Client::setProgressTitleForToken(const LanguageServerProtocol::ProgressToken &token,
const QString &message)
ProgressManager *Client::progressManager()
{
d->m_progressManager.setTitleForToken(token, message);
}
void Client::setClickHandlerForToken(const LanguageServerProtocol::ProgressToken &token,
const std::function<void()> &handler)
{
d->m_progressManager.setClickHandlerForToken(token, handler);
return &d->m_progressManager;
}
void Client::handleMessage(const LanguageServerProtocol::JsonRpcMessage &message)

View File

@@ -42,6 +42,7 @@ class InterfaceController;
class LanguageClientCompletionAssistProvider;
class LanguageClientQuickFixProvider;
class LanguageFilter;
class ProgressManager;
class SymbolSupport;
class LANGUAGECLIENT_EXPORT Client : public QObject
@@ -199,10 +200,7 @@ signals:
protected:
void setError(const QString &message);
void setProgressTitleForToken(const LanguageServerProtocol::ProgressToken &token,
const QString &message);
void setClickHandlerForToken(const LanguageServerProtocol::ProgressToken &token,
const std::function<void()> &handler);
ProgressManager *progressManager();
void handleMessage(const LanguageServerProtocol::JsonRpcMessage &message);
virtual void handleDiagnostics(const LanguageServerProtocol::PublishDiagnosticsParams &params);
virtual DiagnosticManager *createDiagnosticManager();

View File

@@ -3,6 +3,8 @@
#pragma once
#include "languageclient_global.h"
#include <coreplugin/progressmanager/futureprogress.h>
#include <QElapsedTimer>
@@ -19,7 +21,7 @@ class WorkDoneProgressEnd;
namespace LanguageClient {
class ProgressManager
class LANGUAGECLIENT_EXPORT ProgressManager
{
public:
ProgressManager();