forked from qt-creator/qt-creator
Nim: Avoid using the global object pool
Use the pattern that's currently being established. Change-Id: Ib716b35473fe5060b9ba5beea240ed46cfb1c5c7 Reviewed-by: Filippo Cucchetto <filippocucchetto@gmail.com> Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -41,26 +41,32 @@
|
|||||||
#include <coreplugin/fileiconprovider.h>
|
#include <coreplugin/fileiconprovider.h>
|
||||||
#include <projectexplorer/projectmanager.h>
|
#include <projectexplorer/projectmanager.h>
|
||||||
#include <projectexplorer/toolchainmanager.h>
|
#include <projectexplorer/toolchainmanager.h>
|
||||||
#include <projectexplorer/runconfiguration.h>
|
|
||||||
#include <texteditor/snippets/snippetprovider.h>
|
#include <texteditor/snippets/snippetprovider.h>
|
||||||
|
|
||||||
#include <QtPlugin>
|
|
||||||
|
|
||||||
using namespace Utils;
|
using namespace Utils;
|
||||||
using namespace ProjectExplorer;
|
using namespace ProjectExplorer;
|
||||||
|
|
||||||
namespace Nim {
|
namespace Nim {
|
||||||
|
|
||||||
static NimPlugin *m_instance = 0;
|
class NimPluginRunData
|
||||||
|
|
||||||
NimPlugin::NimPlugin()
|
|
||||||
{
|
{
|
||||||
m_instance = this;
|
public:
|
||||||
}
|
NimSettings settings;
|
||||||
|
NimEditorFactory editorFactory;
|
||||||
|
NimBuildConfigurationFactory buildConfigFactory;
|
||||||
|
NimRunConfigurationFactory runConfigFactory;
|
||||||
|
NimCompilerBuildStepFactory buildStepFactory;
|
||||||
|
NimCompilerCleanStepFactory cleanStepFactory;
|
||||||
|
NimCodeStyleSettingsPage codeStyleSettingsPage;
|
||||||
|
NimCodeStylePreferencesFactory codeStylePreferencesPage;
|
||||||
|
NimToolChainFactory toolChainFactory;
|
||||||
|
};
|
||||||
|
|
||||||
|
static NimPluginRunData *m_runData = nullptr;
|
||||||
|
|
||||||
NimPlugin::~NimPlugin()
|
NimPlugin::~NimPlugin()
|
||||||
{
|
{
|
||||||
m_instance = 0;
|
delete m_runData;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool NimPlugin::initialize(const QStringList &arguments, QString *errorMessage)
|
bool NimPlugin::initialize(const QStringList &arguments, QString *errorMessage)
|
||||||
@@ -68,25 +74,18 @@ bool NimPlugin::initialize(const QStringList &arguments, QString *errorMessage)
|
|||||||
Q_UNUSED(arguments)
|
Q_UNUSED(arguments)
|
||||||
Q_UNUSED(errorMessage)
|
Q_UNUSED(errorMessage)
|
||||||
|
|
||||||
ProjectExplorer::ToolChainManager::registerLanguage(Constants::C_NIMLANGUAGE_ID, Constants::C_NIMLANGUAGE_NAME);
|
m_runData = new NimPluginRunData;
|
||||||
|
|
||||||
|
ToolChainManager::registerLanguage(Constants::C_NIMLANGUAGE_ID, Constants::C_NIMLANGUAGE_NAME);
|
||||||
|
|
||||||
RunControl::registerWorker<NimRunConfiguration, SimpleTargetRunner>
|
RunControl::registerWorker<NimRunConfiguration, SimpleTargetRunner>
|
||||||
(ProjectExplorer::Constants::NORMAL_RUN_MODE);
|
(ProjectExplorer::Constants::NORMAL_RUN_MODE);
|
||||||
|
|
||||||
addAutoReleasedObject(new NimSettings);
|
|
||||||
addAutoReleasedObject(new NimEditorFactory);
|
|
||||||
addAutoReleasedObject(new NimBuildConfigurationFactory);
|
|
||||||
addAutoReleasedObject(new NimRunConfigurationFactory);
|
|
||||||
addAutoReleasedObject(new NimCompilerBuildStepFactory);
|
|
||||||
addAutoReleasedObject(new NimCompilerCleanStepFactory);
|
|
||||||
addAutoReleasedObject(new NimCodeStyleSettingsPage);
|
|
||||||
addAutoReleasedObject(new NimCodeStylePreferencesFactory);
|
|
||||||
addAutoReleasedObject(new NimToolChainFactory);
|
|
||||||
TextEditor::SnippetProvider::registerGroup(Constants::C_NIMSNIPPETSGROUP_ID,
|
TextEditor::SnippetProvider::registerGroup(Constants::C_NIMSNIPPETSGROUP_ID,
|
||||||
tr("Nim", "SnippetProvider"),
|
tr("Nim", "SnippetProvider"),
|
||||||
&NimEditorFactory::decorateEditor);
|
&NimEditorFactory::decorateEditor);
|
||||||
|
|
||||||
ProjectExplorer::ProjectManager::registerProjectType<NimProject>(Constants::C_NIM_PROJECT_MIMETYPE);
|
ProjectManager::registerProjectType<NimProject>(Constants::C_NIM_PROJECT_MIMETYPE);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@@ -35,9 +35,8 @@ class NimPlugin : public ExtensionSystem::IPlugin
|
|||||||
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "Nim.json")
|
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "Nim.json")
|
||||||
|
|
||||||
public:
|
public:
|
||||||
NimPlugin();
|
NimPlugin() = default;
|
||||||
|
~NimPlugin() final;
|
||||||
~NimPlugin();
|
|
||||||
|
|
||||||
bool initialize(const QStringList &arguments, QString *errorMessage) final;
|
bool initialize(const QStringList &arguments, QString *errorMessage) final;
|
||||||
void extensionsInitialized() final;
|
void extensionsInitialized() final;
|
||||||
|
Reference in New Issue
Block a user