CppTools: add multiple refactoring engines support

Make model manager able to select the most functional
refactoring engine from the available ones.

Change-Id: I74031c910706fd694a0a7def022531501f1ea005
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
This commit is contained in:
Ivan Donchevskii
2017-09-25 16:41:17 +02:00
parent 57e35274c2
commit 5c554c0de9
17 changed files with 99 additions and 55 deletions

View File

@@ -127,14 +127,14 @@ void ClangQueryProjectsFindFilter::setProjectParts(const std::vector<CppTools::P
this->m_projectParts = projectParts;
}
bool ClangQueryProjectsFindFilter::isUsable() const
bool ClangQueryProjectsFindFilter::isAvailable() const
{
return m_server.isUsable();
return m_server.isAvailable();
}
void ClangQueryProjectsFindFilter::setUsable(bool isUsable)
void ClangQueryProjectsFindFilter::setAvailable(bool isAvailable)
{
m_server.setUsable(isUsable);
m_server.setAvailable(isAvailable);
}
SearchHandle *ClangQueryProjectsFindFilter::searchHandleForTestOnly() const

View File

@@ -66,8 +66,8 @@ public:
void setProjectParts(const std::vector<CppTools::ProjectPart::Ptr> &m_projectParts);
bool isUsable() const;
void setUsable(bool isUsable);
bool isAvailable() const;
void setAvailable(bool isAvailable);
SearchHandle* searchHandleForTestOnly() const;

View File

@@ -100,13 +100,15 @@ bool ClangRefactoringPlugin::initialize(const QStringList & /*arguments*/, QStri
void ClangRefactoringPlugin::extensionsInitialized()
{
CppTools::CppModelManager::setRefactoringEngine(&refactoringEngine());
CppTools::CppModelManager::addRefactoringEngine(
CppTools::RefactoringEngineType::ClangRefactoring, &refactoringEngine());
}
ExtensionSystem::IPlugin::ShutdownFlag ClangRefactoringPlugin::aboutToShutdown()
{
ExtensionSystem::PluginManager::removeObject(&d->qtCreatorfindFilter);
CppTools::CppModelManager::setRefactoringEngine(nullptr);
CppTools::CppModelManager::removeRefactoringEngine(
CppTools::RefactoringEngineType::ClangRefactoring);
d->refactoringClient.setRefactoringConnectionClient(nullptr);
d->refactoringClient.setRefactoringEngine(nullptr);
@@ -137,7 +139,7 @@ void ClangRefactoringPlugin::connectBackend()
void ClangRefactoringPlugin::backendIsConnected()
{
d->engine.setUsable(true);
d->engine.setRefactoringEngineAvailable(true);
}
} // namespace ClangRefactoring

View File

@@ -47,7 +47,7 @@ void RefactoringClient::sourceLocationsForRenamingMessage(
message.sourceLocations(),
message.textDocumentRevision());
m_refactoringEngine->setUsable(true);
m_refactoringEngine->setRefactoringEngineAvailable(true);
}
void RefactoringClient::sourceRangesAndDiagnosticsForQueryMessage(

View File

@@ -60,7 +60,7 @@ void RefactoringEngine::startLocalRenaming(const CppTools::CursorInEditor &data,
{
using CppTools::ClangCompilerOptionsBuilder;
setUsable(false);
setRefactoringEngineAvailable(false);
m_client.setLocalRenamingCallback(std::move(renameSymbolsCallback));
@@ -89,14 +89,14 @@ void RefactoringEngine::startGlobalRenaming(const CppTools::CursorInEditor &)
// TODO: implement
}
bool RefactoringEngine::isUsable() const
bool RefactoringEngine::isRefactoringEngineAvailable() const
{
return m_server.isUsable();
return m_server.isAvailable();
}
void RefactoringEngine::setUsable(bool isUsable)
void RefactoringEngine::setRefactoringEngineAvailable(bool isAvailable)
{
m_server.setUsable(isUsable);
m_server.setAvailable(isAvailable);
}
} // namespace ClangRefactoring

View File

@@ -48,8 +48,8 @@ public:
RenameCallback &&renameSymbolsCallback) override;
void startGlobalRenaming(const CppTools::CursorInEditor &data) override;
bool isUsable() const override;
void setUsable(bool isUsable);
bool isRefactoringEngineAvailable() const override;
void setRefactoringEngineAvailable(bool isAvailable);
ClangBackEnd::FilePathCachingInterface &filePathCache()
{