CppEditor: refactor FollowSymbol

Create an interface to get the ability to use
another FollowSymbol implementation

Change-Id: I5802f62523ff3ee47b8a14e487adf43edcb6c9b1
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
This commit is contained in:
Ivan Donchevskii
2017-08-03 16:43:38 +02:00
parent 76d12dc2d5
commit a137b08eaa
26 changed files with 442 additions and 164 deletions

View File

@@ -33,6 +33,8 @@
#include <QObject>
#include <QScopedPointer>
#include <memory>
QT_BEGIN_NAMESPACE
class QMenu;
class QWidget;
@@ -44,6 +46,8 @@ namespace TextEditor { class TextEditorWidget; }
namespace ClangCodeModel {
namespace Internal {
class ClangFollowSymbol;
class ModelManagerSupportClang:
public QObject,
public CppTools::ModelManagerSupport
@@ -57,6 +61,7 @@ public:
CppTools::CppCompletionAssistProvider *completionAssistProvider() override;
CppTools::BaseEditorDocumentProcessor *editorDocumentProcessor(
TextEditor::TextDocument *baseTextDocument) override;
CppTools::FollowSymbolInterface *followSymbolInterface() override;
IpcCommunicator &ipcCommunicator();
QString dummyUiHeaderOnDiskDirPath() const;
@@ -100,6 +105,7 @@ private:
UiHeaderOnDiskManager m_uiHeaderOnDiskManager;
IpcCommunicator m_ipcCommunicator;
ClangCompletionAssistProvider m_completionAssistProvider;
std::unique_ptr<ClangFollowSymbol> m_followSymbol;
};
class ModelManagerSupportProviderClang : public CppTools::ModelManagerSupportProvider