summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppmodelmanager.h
diff options
context:
space:
mode:
authorIvan Donchevskii <ivan.donchevskii@qt.io>2017-09-25 16:41:17 +0200
committerIvan Donchevskii <ivan.donchevskii@qt.io>2017-10-17 13:32:51 +0000
commit5c554c0de9fd9115dbcfa010353640b11e349c6c (patch)
tree5b019c66e95a596a9e31d783a6a6ecd7ab750ddc /src/plugins/cpptools/cppmodelmanager.h
parent57e35274c24591dfc616ed0b638c428b5a5a2cc1 (diff)
downloadqt-creator-5c554c0de9fd9115dbcfa010353640b11e349c6c.tar.gz
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>
Diffstat (limited to 'src/plugins/cpptools/cppmodelmanager.h')
-rw-r--r--src/plugins/cpptools/cppmodelmanager.h22
1 files changed, 18 insertions, 4 deletions
diff --git a/src/plugins/cpptools/cppmodelmanager.h b/src/plugins/cpptools/cppmodelmanager.h
index df04beec3a..0a66e63bad 100644
--- a/src/plugins/cpptools/cppmodelmanager.h
+++ b/src/plugins/cpptools/cppmodelmanager.h
@@ -27,6 +27,7 @@
#include "cpptools_global.h"
+#include "refactoringengineinterface.h"
#include "projectinfo.h"
#include "projectpart.h"
#include "projectpartheaderpath.h"
@@ -53,7 +54,6 @@ class CppCompletionAssistProvider;
class CppEditorDocumentHandle;
class CppIndexingSupport;
class ModelManagerSupportProvider;
-class RefactoringEngineInterface;
class FollowSymbolInterface;
class SymbolFinder;
class WorkingCopy;
@@ -67,7 +67,15 @@ namespace Tests {
class ModelManagerTestHelper;
}
-class CPPTOOLS_EXPORT CppModelManager : public CPlusPlus::CppModelManagerBase
+enum class RefactoringEngineType : int
+{
+ BuiltIn = 0,
+ ClangCodeModel = 1,
+ ClangRefactoring = 2
+};
+
+class CPPTOOLS_EXPORT CppModelManager final : public CPlusPlus::CppModelManagerBase,
+ public RefactoringEngineInterface
{
Q_OBJECT
@@ -140,6 +148,11 @@ public:
QList<int> references(CPlusPlus::Symbol *symbol, const CPlusPlus::LookupContext &context);
+ void startLocalRenaming(const CursorInEditor &data,
+ CppTools::ProjectPart *projectPart,
+ RenameCallback &&renameSymbolsCallback) final;
+ void startGlobalRenaming(const CursorInEditor &data) final;
+
void renameUsages(CPlusPlus::Symbol *symbol, const CPlusPlus::LookupContext &context,
const QString &replacement = QString());
void findUsages(CPlusPlus::Symbol *symbol, const CPlusPlus::LookupContext &context);
@@ -179,8 +192,9 @@ public:
static QString configurationFileName();
static QString editorConfigurationFileName();
- static void setRefactoringEngine(RefactoringEngineInterface *refactoringEngine);
- static RefactoringEngineInterface &refactoringEngine();
+ static void addRefactoringEngine(RefactoringEngineType type,
+ RefactoringEngineInterface *refactoringEngine);
+ static void removeRefactoringEngine(RefactoringEngineType type);
void renameIncludes(const QString &oldFileName, const QString &newFileName);