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:
Jarek Kobus
2023-04-07 09:34:00 +02:00
parent c8ac10b4c1
commit ed120516f6
6 changed files with 18 additions and 10 deletions

View File

@@ -6,6 +6,7 @@
#include "languageclientplugin.h"
#include "languageclientsymbolsupport.h"
#include "languageclienttr.h"
#include "locatorfilter.h"
#include <coreplugin/editormanager/editormanager.h>
#include <coreplugin/editormanager/ieditor.h>
@@ -41,9 +42,19 @@ static Q_LOGGING_CATEGORY(Log, "qtc.languageclient.manager", QtWarningMsg)
static LanguageClientManager *managerInstance = nullptr;
static bool g_shuttingDown = false;
class LanguageClientManagerPrivate
{
DocumentLocatorFilter m_currentDocumentLocatorFilter;
WorkspaceLocatorFilter m_workspaceLocatorFilter;
WorkspaceClassLocatorFilter m_workspaceClassLocatorFilter;
WorkspaceMethodLocatorFilter m_workspaceMethodLocatorFilter;
};
LanguageClientManager::LanguageClientManager(QObject *parent)
: QObject(parent)
{
managerInstance = this;
d.reset(new LanguageClientManagerPrivate);
using namespace Core;
using namespace ProjectExplorer;
connect(EditorManager::instance(), &EditorManager::editorOpened,
@@ -74,7 +85,7 @@ void LanguageClientManager::init()
if (managerInstance)
return;
QTC_ASSERT(LanguageClientPlugin::instance(), return);
managerInstance = new LanguageClientManager(LanguageClientPlugin::instance());
new LanguageClientManager(LanguageClientPlugin::instance());
}
void LanguageClient::LanguageClientManager::addClient(Client *client)