diff options
author | Ivan Donchevskii <ivan.donchevskii@qt.io> | 2017-09-25 16:41:17 +0200 |
---|---|---|
committer | Ivan Donchevskii <ivan.donchevskii@qt.io> | 2017-10-17 13:32:51 +0000 |
commit | 5c554c0de9fd9115dbcfa010353640b11e349c6c (patch) | |
tree | 5b019c66e95a596a9e31d783a6a6ecd7ab750ddc /src/plugins/cpptools/cppmodelmanager.h | |
parent | 57e35274c24591dfc616ed0b638c428b5a5a2cc1 (diff) | |
download | qt-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.h | 22 |
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); |