summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppmodelmanager.cpp
diff options
context:
space:
mode:
authorIvan Donchevskii <ivan.donchevskii@qt.io>2017-09-26 16:00:30 +0200
committerIvan Donchevskii <ivan.donchevskii@qt.io>2017-11-20 10:24:47 +0000
commit32bae7ef6cd5c5a2a9e37ee0ca77eb3b5e68be67 (patch)
treee225b6f8b6b6d797c34cc01fd1fab4f1440b52ea /src/plugins/cpptools/cppmodelmanager.cpp
parent94e818dc822a68e546a6c96ebf08c39b7aa3eb3d (diff)
downloadqt-creator-32bae7ef6cd5c5a2a9e37ee0ca77eb3b5e68be67.tar.gz
Clang: use local renaming based on ClangCodeModel
Provide refactoring engine for ClangCodeModel and implement missing methods. Change-Id: If5c913e0c5a7941cd2ced54d0fcfa4d625eadc93 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
Diffstat (limited to 'src/plugins/cpptools/cppmodelmanager.cpp')
-rw-r--r--src/plugins/cpptools/cppmodelmanager.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp
index 2074899572..c889ac8b9e 100644
--- a/src/plugins/cpptools/cppmodelmanager.cpp
+++ b/src/plugins/cpptools/cppmodelmanager.cpp
@@ -169,9 +169,8 @@ public:
QTimer m_delayedGcTimer;
// Refactoring
- CppRefactoringEngine m_builtInRefactoringEngine;
using REHash = QMap<REType, RefactoringEngineInterface *>;
- REHash m_refactoringEngines {{REType::BuiltIn, &m_builtInRefactoringEngine}};
+ REHash m_refactoringEngines;
};
} // namespace Internal
@@ -274,6 +273,7 @@ QString CppModelManager::editorConfigurationFileName()
static RefactoringEngineInterface *getRefactoringEngine(
CppModelManagerPrivate::REHash &engines, bool excludeClangCodeModel = true)
{
+ QTC_ASSERT(!engines.empty(), return nullptr;);
RefactoringEngineInterface *currentEngine = engines[REType::BuiltIn];
if (!excludeClangCodeModel && engines.find(REType::ClangCodeModel) != engines.end()) {
currentEngine = engines[REType::ClangCodeModel];
@@ -291,6 +291,7 @@ void CppModelManager::startLocalRenaming(const CursorInEditor &data,
{
RefactoringEngineInterface *engine = getRefactoringEngine(instance()->d->m_refactoringEngines,
false);
+ QTC_ASSERT(engine, return;);
engine->startLocalRenaming(data, projectPart, std::move(renameSymbolsCallback));
}
@@ -298,12 +299,15 @@ void CppModelManager::globalRename(const CursorInEditor &data, UsagesCallback &&
const QString &replacement)
{
RefactoringEngineInterface *engine = getRefactoringEngine(instance()->d->m_refactoringEngines);
+ QTC_ASSERT(engine, return;);
engine->globalRename(data, std::move(renameCallback), replacement);
}
+
void CppModelManager::findUsages(const CppTools::CursorInEditor &data,
UsagesCallback &&showUsagesCallback) const
{
RefactoringEngineInterface *engine = getRefactoringEngine(instance()->d->m_refactoringEngines);
+ QTC_ASSERT(engine, return;);
engine->findUsages(data, std::move(showUsagesCallback));
}
@@ -367,6 +371,8 @@ void CppModelManager::initializeBuiltinModelManagerSupport()
d->m_builtinModelManagerSupport
= ModelManagerSupportProviderInternal().createModelManagerSupport();
d->m_activeModelManagerSupport = d->m_builtinModelManagerSupport;
+ d->m_refactoringEngines[RefactoringEngineType::BuiltIn] =
+ &d->m_activeModelManagerSupport->refactoringEngineInterface();
}
CppModelManager::CppModelManager(QObject *parent)
@@ -1267,6 +1273,8 @@ void CppModelManager::activateClangCodeModel(
QTC_ASSERT(modelManagerSupportProvider, return);
d->m_activeModelManagerSupport = modelManagerSupportProvider->createModelManagerSupport();
+ d->m_refactoringEngines[RefactoringEngineType::ClangCodeModel] =
+ &d->m_activeModelManagerSupport->refactoringEngineInterface();
}
CppCompletionAssistProvider *CppModelManager::completionAssistProvider() const