diff options
author | Ivan Donchevskii <ivan.donchevskii@qt.io> | 2017-09-26 16:00:30 +0200 |
---|---|---|
committer | Ivan Donchevskii <ivan.donchevskii@qt.io> | 2017-11-20 10:24:47 +0000 |
commit | 32bae7ef6cd5c5a2a9e37ee0ca77eb3b5e68be67 (patch) | |
tree | e225b6f8b6b6d797c34cc01fd1fab4f1440b52ea /src/plugins/cpptools/cppmodelmanager.cpp | |
parent | 94e818dc822a68e546a6c96ebf08c39b7aa3eb3d (diff) | |
download | qt-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.cpp | 12 |
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 |