forked from qt-creator/qt-creator
DocumentLocatorFilter: Get rid of the arg from c'tor
It's always LanguageClientManager::instance(). Pimpl LanguageClientManager's filters, so that they are constructed after the managerInstance is being assigned. Change-Id: Ib1f6f0c96d57d0e4cb7332ce322f6c4e9ef9fdb1 Reviewed-by: David Schulz <david.schulz@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
@@ -192,7 +192,6 @@ class LspCurrentDocumentFilter : public DocumentLocatorFilter
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
LspCurrentDocumentFilter()
|
LspCurrentDocumentFilter()
|
||||||
: DocumentLocatorFilter(LanguageClientManager::instance())
|
|
||||||
{
|
{
|
||||||
setId({});
|
setId({});
|
||||||
setDisplayName({});
|
setDisplayName({});
|
||||||
|
@@ -27,6 +27,7 @@
|
|||||||
#include <cppeditor/editordocumenthandle.h>
|
#include <cppeditor/editordocumenthandle.h>
|
||||||
|
|
||||||
#include <languageclient/languageclientmanager.h>
|
#include <languageclient/languageclientmanager.h>
|
||||||
|
#include <languageclient/locatorfilter.h>
|
||||||
|
|
||||||
#include <texteditor/quickfix.h>
|
#include <texteditor/quickfix.h>
|
||||||
|
|
||||||
|
@@ -6,6 +6,7 @@
|
|||||||
#include "languageclientplugin.h"
|
#include "languageclientplugin.h"
|
||||||
#include "languageclientsymbolsupport.h"
|
#include "languageclientsymbolsupport.h"
|
||||||
#include "languageclienttr.h"
|
#include "languageclienttr.h"
|
||||||
|
#include "locatorfilter.h"
|
||||||
|
|
||||||
#include <coreplugin/editormanager/editormanager.h>
|
#include <coreplugin/editormanager/editormanager.h>
|
||||||
#include <coreplugin/editormanager/ieditor.h>
|
#include <coreplugin/editormanager/ieditor.h>
|
||||||
@@ -41,9 +42,19 @@ static Q_LOGGING_CATEGORY(Log, "qtc.languageclient.manager", QtWarningMsg)
|
|||||||
static LanguageClientManager *managerInstance = nullptr;
|
static LanguageClientManager *managerInstance = nullptr;
|
||||||
static bool g_shuttingDown = false;
|
static bool g_shuttingDown = false;
|
||||||
|
|
||||||
|
class LanguageClientManagerPrivate
|
||||||
|
{
|
||||||
|
DocumentLocatorFilter m_currentDocumentLocatorFilter;
|
||||||
|
WorkspaceLocatorFilter m_workspaceLocatorFilter;
|
||||||
|
WorkspaceClassLocatorFilter m_workspaceClassLocatorFilter;
|
||||||
|
WorkspaceMethodLocatorFilter m_workspaceMethodLocatorFilter;
|
||||||
|
};
|
||||||
|
|
||||||
LanguageClientManager::LanguageClientManager(QObject *parent)
|
LanguageClientManager::LanguageClientManager(QObject *parent)
|
||||||
: QObject(parent)
|
: QObject(parent)
|
||||||
{
|
{
|
||||||
|
managerInstance = this;
|
||||||
|
d.reset(new LanguageClientManagerPrivate);
|
||||||
using namespace Core;
|
using namespace Core;
|
||||||
using namespace ProjectExplorer;
|
using namespace ProjectExplorer;
|
||||||
connect(EditorManager::instance(), &EditorManager::editorOpened,
|
connect(EditorManager::instance(), &EditorManager::editorOpened,
|
||||||
@@ -74,7 +85,7 @@ void LanguageClientManager::init()
|
|||||||
if (managerInstance)
|
if (managerInstance)
|
||||||
return;
|
return;
|
||||||
QTC_ASSERT(LanguageClientPlugin::instance(), return);
|
QTC_ASSERT(LanguageClientPlugin::instance(), return);
|
||||||
managerInstance = new LanguageClientManager(LanguageClientPlugin::instance());
|
new LanguageClientManager(LanguageClientPlugin::instance());
|
||||||
}
|
}
|
||||||
|
|
||||||
void LanguageClient::LanguageClientManager::addClient(Client *client)
|
void LanguageClient::LanguageClientManager::addClient(Client *client)
|
||||||
|
@@ -6,7 +6,6 @@
|
|||||||
#include "client.h"
|
#include "client.h"
|
||||||
#include "languageclient_global.h"
|
#include "languageclient_global.h"
|
||||||
#include "languageclientsettings.h"
|
#include "languageclientsettings.h"
|
||||||
#include "locatorfilter.h"
|
|
||||||
#include "lspinspector.h"
|
#include "lspinspector.h"
|
||||||
|
|
||||||
#include <utils/algorithm.h>
|
#include <utils/algorithm.h>
|
||||||
@@ -25,6 +24,7 @@ namespace ProjectExplorer { class Project; }
|
|||||||
|
|
||||||
namespace LanguageClient {
|
namespace LanguageClient {
|
||||||
|
|
||||||
|
class LanguageClientManagerPrivate;
|
||||||
class LanguageClientMark;
|
class LanguageClientMark;
|
||||||
|
|
||||||
class LANGUAGECLIENT_EXPORT LanguageClientManager : public QObject
|
class LANGUAGECLIENT_EXPORT LanguageClientManager : public QObject
|
||||||
@@ -104,10 +104,7 @@ private:
|
|||||||
QList<BaseSettings *> m_currentSettings; // owned
|
QList<BaseSettings *> m_currentSettings; // owned
|
||||||
QMap<QString, QList<Client *>> m_clientsForSetting;
|
QMap<QString, QList<Client *>> m_clientsForSetting;
|
||||||
QHash<TextEditor::TextDocument *, QPointer<Client>> m_clientForDocument;
|
QHash<TextEditor::TextDocument *, QPointer<Client>> m_clientForDocument;
|
||||||
DocumentLocatorFilter m_currentDocumentLocatorFilter{this};
|
std::unique_ptr<LanguageClientManagerPrivate> d;
|
||||||
WorkspaceLocatorFilter m_workspaceLocatorFilter;
|
|
||||||
WorkspaceClassLocatorFilter m_workspaceClassLocatorFilter;
|
|
||||||
WorkspaceMethodLocatorFilter m_workspaceMethodLocatorFilter;
|
|
||||||
LspInspector m_inspector;
|
LspInspector m_inspector;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -110,7 +110,7 @@ LocatorMatcherTask workspaceFunctionMatcher(Client *client, int maxResultCount)
|
|||||||
{SymbolKind::Method, SymbolKind::Function, SymbolKind::Constructor});
|
{SymbolKind::Method, SymbolKind::Function, SymbolKind::Constructor});
|
||||||
}
|
}
|
||||||
|
|
||||||
DocumentLocatorFilter::DocumentLocatorFilter(LanguageClientManager *languageManager)
|
DocumentLocatorFilter::DocumentLocatorFilter()
|
||||||
{
|
{
|
||||||
setId(Constants::LANGUAGECLIENT_DOCUMENT_FILTER_ID);
|
setId(Constants::LANGUAGECLIENT_DOCUMENT_FILTER_ID);
|
||||||
setDisplayName(Tr::tr(Constants::LANGUAGECLIENT_DOCUMENT_FILTER_DISPLAY_NAME));
|
setDisplayName(Tr::tr(Constants::LANGUAGECLIENT_DOCUMENT_FILTER_DISPLAY_NAME));
|
||||||
@@ -121,7 +121,7 @@ DocumentLocatorFilter::DocumentLocatorFilter(LanguageClientManager *languageMana
|
|||||||
setPriority(ILocatorFilter::Low);
|
setPriority(ILocatorFilter::Low);
|
||||||
connect(EditorManager::instance(), &EditorManager::currentEditorChanged,
|
connect(EditorManager::instance(), &EditorManager::currentEditorChanged,
|
||||||
this, &DocumentLocatorFilter::updateCurrentClient);
|
this, &DocumentLocatorFilter::updateCurrentClient);
|
||||||
connect(languageManager, &LanguageClientManager::clientInitialized,
|
connect(LanguageClientManager::instance(), &LanguageClientManager::clientInitialized,
|
||||||
this, &DocumentLocatorFilter::updateCurrentClient);
|
this, &DocumentLocatorFilter::updateCurrentClient);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -33,7 +33,7 @@ class LANGUAGECLIENT_EXPORT DocumentLocatorFilter : public Core::ILocatorFilter
|
|||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
DocumentLocatorFilter(LanguageClientManager *languageManager);
|
DocumentLocatorFilter();
|
||||||
|
|
||||||
void prepareSearch(const QString &entry) override;
|
void prepareSearch(const QString &entry) override;
|
||||||
QList<Core::LocatorFilterEntry> matchesFor(QFutureInterface<Core::LocatorFilterEntry> &future,
|
QList<Core::LocatorFilterEntry> matchesFor(QFutureInterface<Core::LocatorFilterEntry> &future,
|
||||||
|
Reference in New Issue
Block a user