Clang: Activate code model automatically if plugin is loaded

This removes also the need to close editor documents.

Change-Id: I96c68105bceb37841053f3dbd8a264e059a02cb8
Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
This commit is contained in:
Nikolai Kosjar
2015-12-15 18:09:45 +01:00
parent 6dcdba92f3
commit f89d3dca8b
11 changed files with 13 additions and 155 deletions

View File

@@ -60,9 +60,7 @@ bool ClangCodeModelPlugin::initialize(const QStringList &arguments, QString *err
Q_UNUSED(arguments)
Q_UNUSED(errorMessage)
// Register ModelManagerSupportProvider
auto cppModelManager = CppTools::CppModelManager::instance();
cppModelManager->setClangModelManagerSupportProvider(&m_modelManagerSupportProvider);
CppTools::CppModelManager::instance()->activateClangCodeModel(&m_modelManagerSupportProvider);
initializeTextMarks();

View File

@@ -39,7 +39,6 @@
#include <coreplugin/editormanager/editormanager.h>
#include <coreplugin/editormanager/ieditor.h>
#include <coreplugin/icore.h>
#include <cpptools/cppcodemodelsettings.h>
#include <cpptools/cpptoolsreuse.h>
#include <cpptools/cpptoolstestcase.h>
#include <cpptools/modelmanagertesthelper.h>
@@ -858,52 +857,6 @@ namespace ClangCodeModel {
namespace Internal {
namespace Tests {
typedef QSharedPointer<CppTools::CppCodeModelSettings> CppCodeModelSettingsPtr;
class ActivateClangModelManagerSupport
{
public:
ActivateClangModelManagerSupport(CppCodeModelSettingsPtr codeModelSettings);
~ActivateClangModelManagerSupport();
private:
ActivateClangModelManagerSupport();
CppCodeModelSettingsPtr m_codeModelSettings;
bool m_clangCodeModelWasUsedPreviously;
};
ActivateClangModelManagerSupport::ActivateClangModelManagerSupport(
CppCodeModelSettingsPtr codeModelSettings)
: m_codeModelSettings(codeModelSettings)
{
QTC_CHECK(m_codeModelSettings);
m_clangCodeModelWasUsedPreviously = m_codeModelSettings->useClangCodeModel();
m_codeModelSettings->setUseClangCodeModel(true);
m_codeModelSettings->emitChanged();
}
ActivateClangModelManagerSupport::~ActivateClangModelManagerSupport()
{
m_codeModelSettings->setUseClangCodeModel(m_clangCodeModelWasUsedPreviously);
m_codeModelSettings->emitChanged();
}
ClangCodeCompletionTest::ClangCodeCompletionTest()
{
}
ClangCodeCompletionTest::~ClangCodeCompletionTest()
{
}
void ClangCodeCompletionTest::initTestCase()
{
m_activater.reset(new ActivateClangModelManagerSupport(CppTools::codeModelSettings()));
}
void ClangCodeCompletionTest::testCompleteDoxygenKeywords()
{
ProjectLessCompletionTest t("doxygenKeywordsCompletion.cpp");

View File

@@ -43,13 +43,7 @@ class ClangCodeCompletionTest : public QObject
{
Q_OBJECT
public:
ClangCodeCompletionTest();
~ClangCodeCompletionTest();
private slots:
void initTestCase();
void testCompleteDoxygenKeywords();
void testCompletePreprocessorKeywords();
void testCompleteIncludeDirective();
@@ -69,9 +63,6 @@ private slots:
void testCompleteAfterChangingIncludedAndNotOpenHeaderExternally();
void testUpdateBackendAfterRestart();
private:
QScopedPointer<ActivateClangModelManagerSupport> m_activater;
};
} // namespace Tests