forked from qt-creator/qt-creator
LanguageClient: Decouple plugin and LanguageClientManager a bit
Change-Id: I052156bbc52838e61eb2782af7b48e308eef4a3a Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -3,7 +3,6 @@
|
||||
|
||||
#include "languageclientmanager.h"
|
||||
|
||||
#include "languageclientplugin.h"
|
||||
#include "languageclientsymbolsupport.h"
|
||||
#include "languageclienttr.h"
|
||||
#include "locatorfilter.h"
|
||||
@@ -23,6 +22,7 @@
|
||||
#include <projectexplorer/projectexplorer.h>
|
||||
#include <projectexplorer/projectmanager.h>
|
||||
|
||||
#include <texteditor/ioutlinewidget.h>
|
||||
#include <texteditor/textdocument.h>
|
||||
#include <texteditor/texteditor.h>
|
||||
#include <texteditor/textmark.h>
|
||||
@@ -76,14 +76,6 @@ LanguageClientManager::~LanguageClientManager()
|
||||
managerInstance = nullptr;
|
||||
}
|
||||
|
||||
void LanguageClientManager::init()
|
||||
{
|
||||
if (managerInstance)
|
||||
return;
|
||||
QTC_ASSERT(LanguageClientPlugin::instance(), return);
|
||||
new LanguageClientManager(LanguageClientPlugin::instance());
|
||||
}
|
||||
|
||||
void LanguageClient::LanguageClientManager::addClient(Client *client)
|
||||
{
|
||||
QTC_ASSERT(managerInstance, return);
|
||||
@@ -681,4 +673,9 @@ bool LanguageClientManager::isShutdownFinished()
|
||||
&& managerInstance->m_scheduledForDeletion.isEmpty();
|
||||
}
|
||||
|
||||
void setupLanguageClientManager(QObject *guard)
|
||||
{
|
||||
(void) new LanguageClientManager(guard);
|
||||
}
|
||||
|
||||
} // namespace LanguageClient
|
||||
|
@@ -33,10 +33,6 @@ class LANGUAGECLIENT_EXPORT LanguageClientManager : public QObject
|
||||
Q_DISABLE_COPY_MOVE(LanguageClientManager)
|
||||
|
||||
public:
|
||||
~LanguageClientManager() override;
|
||||
|
||||
static void init();
|
||||
|
||||
static void clientStarted(Client *client);
|
||||
static void clientFinished(Client *client);
|
||||
static Client *startClient(const BaseSettings *setting, ProjectExplorer::Project *project = nullptr);
|
||||
@@ -89,7 +85,10 @@ signals:
|
||||
void openCallHierarchy();
|
||||
|
||||
private:
|
||||
LanguageClientManager(QObject *parent);
|
||||
explicit LanguageClientManager(QObject *parent);
|
||||
~LanguageClientManager() override;
|
||||
|
||||
friend void setupLanguageClientManager(QObject *guard);
|
||||
|
||||
void editorOpened(Core::IEditor *editor);
|
||||
void documentOpened(Core::IDocument *document);
|
||||
@@ -119,4 +118,6 @@ template<typename T> bool LanguageClientManager::hasClients()
|
||||
});
|
||||
}
|
||||
|
||||
void setupLanguageClientManager(QObject *guard);
|
||||
|
||||
} // namespace LanguageClient
|
||||
|
@@ -29,19 +29,14 @@ LanguageClientPlugin::~LanguageClientPlugin()
|
||||
m_instance = nullptr;
|
||||
}
|
||||
|
||||
LanguageClientPlugin *LanguageClientPlugin::instance()
|
||||
{
|
||||
return m_instance;
|
||||
}
|
||||
|
||||
void LanguageClientPlugin::initialize()
|
||||
{
|
||||
using namespace Core;
|
||||
|
||||
setupCallHierarchyFactory();
|
||||
setupLanguageClientProjectPanel();
|
||||
setupLanguageClientManager(this);
|
||||
|
||||
LanguageClientManager::init();
|
||||
LanguageClientSettings::registerClientType({Constants::LANGUAGECLIENT_STDIO_SETTINGS_ID,
|
||||
Tr::tr("Generic StdIO Language Server"),
|
||||
[]() { return new StdIOSettings; }});
|
||||
|
@@ -17,8 +17,6 @@ public:
|
||||
LanguageClientPlugin();
|
||||
~LanguageClientPlugin() override;
|
||||
|
||||
static LanguageClientPlugin *instance();
|
||||
|
||||
// IPlugin interface
|
||||
private:
|
||||
void initialize() override;
|
||||
|
Reference in New Issue
Block a user