summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@qt.io>2018-01-11 17:06:26 +0100
committerNikolai Kosjar <nikolai.kosjar@qt.io>2018-01-16 08:31:11 +0000
commit5e861d2be6729b7d4b0927b1d334f6298927013e (patch)
treeced4c2b983c44173b6331e406a1f255f6881d089
parent53a744a6dfe3999b86e9adaab3c05d60322a251e (diff)
downloadqt-creator-5e861d2be6729b7d4b0927b1d334f6298927013e.tar.gz
CppTools: Move CppHoverHandler to CppTools
This is in preparation for clang code model to provide its own hover handler. Change-Id: Ifbdd96f427989bd5d1fbc4badb9c38108485c2f2 Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
-rw-r--r--src/plugins/clangcodemodel/clangmodelmanagersupport.cpp6
-rw-r--r--src/plugins/clangcodemodel/clangmodelmanagersupport.h1
-rw-r--r--src/plugins/cppeditor/cppeditor.pro4
-rw-r--r--src/plugins/cppeditor/cppeditor.qbs4
-rw-r--r--src/plugins/cppeditor/cppeditorplugin.cpp9
-rw-r--r--src/plugins/cppeditor/cppincludehierarchy.cpp2
-rw-r--r--src/plugins/cppeditor/cpptypehierarchy.cpp3
-rw-r--r--src/plugins/cppeditor/cpptypehierarchy.h7
-rw-r--r--src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp2
-rw-r--r--src/plugins/cpptools/cppelementevaluator.cpp (renamed from src/plugins/cppeditor/cppelementevaluator.cpp)6
-rw-r--r--src/plugins/cpptools/cppelementevaluator.h (renamed from src/plugins/cppeditor/cppelementevaluator.h)16
-rw-r--r--src/plugins/cpptools/cpphoverhandler.cpp (renamed from src/plugins/cppeditor/cpphoverhandler.cpp)7
-rw-r--r--src/plugins/cpptools/cpphoverhandler.h (renamed from src/plugins/cppeditor/cpphoverhandler.h)10
-rw-r--r--src/plugins/cpptools/cppmodelmanager.cpp7
-rw-r--r--src/plugins/cpptools/cppmodelmanager.h8
-rw-r--r--src/plugins/cpptools/cppmodelmanagersupport.h6
-rw-r--r--src/plugins/cpptools/cppmodelmanagersupportinternal.cpp6
-rw-r--r--src/plugins/cpptools/cppmodelmanagersupportinternal.h1
-rw-r--r--src/plugins/cpptools/cpptools.pro4
-rw-r--r--src/plugins/cpptools/cpptools.qbs4
20 files changed, 69 insertions, 44 deletions
diff --git a/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp b/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp
index f66392d64e..9271975dfd 100644
--- a/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp
+++ b/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp
@@ -33,6 +33,7 @@
#include <coreplugin/editormanager/editormanager.h>
#include <cpptools/cppfollowsymbolundercursor.h>
+#include <cpptools/cpphoverhandler.h>
#include <cpptools/cppmodelmanager.h>
#include <cpptools/editordocumenthandle.h>
#include <cpptools/projectinfo.h>
@@ -111,6 +112,11 @@ CppTools::CppCompletionAssistProvider *ModelManagerSupportClang::completionAssis
return &m_completionAssistProvider;
}
+TextEditor::BaseHoverHandler *ModelManagerSupportClang::createHoverHandler()
+{
+ return new CppTools::CppHoverHandler;
+}
+
CppTools::FollowSymbolInterface &ModelManagerSupportClang::followSymbolInterface()
{
return *m_followSymbol;
diff --git a/src/plugins/clangcodemodel/clangmodelmanagersupport.h b/src/plugins/clangcodemodel/clangmodelmanagersupport.h
index 842c1d75fa..92f253c5a8 100644
--- a/src/plugins/clangcodemodel/clangmodelmanagersupport.h
+++ b/src/plugins/clangcodemodel/clangmodelmanagersupport.h
@@ -61,6 +61,7 @@ public:
~ModelManagerSupportClang();
CppTools::CppCompletionAssistProvider *completionAssistProvider() override;
+ TextEditor::BaseHoverHandler *createHoverHandler() override;
CppTools::BaseEditorDocumentProcessor *createEditorDocumentProcessor(
TextEditor::TextDocument *baseTextDocument) override;
CppTools::FollowSymbolInterface &followSymbolInterface() override;
diff --git a/src/plugins/cppeditor/cppeditor.pro b/src/plugins/cppeditor/cppeditor.pro
index 0bc3391ce8..74b1daf63b 100644
--- a/src/plugins/cppeditor/cppeditor.pro
+++ b/src/plugins/cppeditor/cppeditor.pro
@@ -12,10 +12,8 @@ HEADERS += \
cppeditorenums.h \
cppeditorplugin.h \
cppeditorwidget.h \
- cppelementevaluator.h \
cppfunctiondecldeflink.h \
cpphighlighter.h \
- cpphoverhandler.h \
cppparsecontext.h \
cppincludehierarchy.h \
cppinsertvirtualmethods.h \
@@ -38,10 +36,8 @@ SOURCES += \
cppeditordocument.cpp \
cppeditorplugin.cpp \
cppeditorwidget.cpp \
- cppelementevaluator.cpp \
cppfunctiondecldeflink.cpp \
cpphighlighter.cpp \
- cpphoverhandler.cpp \
cppparsecontext.cpp \
cppincludehierarchy.cpp \
cppinsertvirtualmethods.cpp \
diff --git a/src/plugins/cppeditor/cppeditor.qbs b/src/plugins/cppeditor/cppeditor.qbs
index 5d8b17adb4..5a44f175eb 100644
--- a/src/plugins/cppeditor/cppeditor.qbs
+++ b/src/plugins/cppeditor/cppeditor.qbs
@@ -39,14 +39,10 @@ QtcPlugin {
"cppeditorenums.h",
"cppeditorplugin.cpp",
"cppeditorplugin.h",
- "cppelementevaluator.cpp",
- "cppelementevaluator.h",
"cppfunctiondecldeflink.cpp",
"cppfunctiondecldeflink.h",
"cpphighlighter.cpp",
"cpphighlighter.h",
- "cpphoverhandler.cpp",
- "cpphoverhandler.h",
"cppincludehierarchy.cpp",
"cppincludehierarchy.h",
"cppinsertvirtualmethods.cpp",
diff --git a/src/plugins/cppeditor/cppeditorplugin.cpp b/src/plugins/cppeditor/cppeditorplugin.cpp
index 3f352f1ffe..27cbf4827e 100644
--- a/src/plugins/cppeditor/cppeditorplugin.cpp
+++ b/src/plugins/cppeditor/cppeditorplugin.cpp
@@ -31,7 +31,6 @@
#include "cppeditorwidget.h"
#include "cppeditordocument.h"
#include "cpphighlighter.h"
-#include "cpphoverhandler.h"
#include "cppincludehierarchy.h"
#include "cppoutline.h"
#include "cppquickfixassistant.h"
@@ -53,6 +52,7 @@
#include <coreplugin/icore.h>
#include <coreplugin/navigationwidget.h>
#include <coreplugin/progressmanager/progressmanager.h>
+#include <cpptools/cpphoverhandler.h>
#include <cpptools/cpptoolsconstants.h>
#include <texteditor/texteditoractionhandler.h>
#include <texteditor/texteditorconstants.h>
@@ -105,7 +105,7 @@ public:
| TextEditorActionHandler::UnCollapseAll
| TextEditorActionHandler::FollowSymbolUnderCursor);
- addHoverHandler(new CppHoverHandler);
+ addHoverHandler(CppModelManager::instance()->createHoverHandler());
addHoverHandler(new ColorPreviewHoverHandler);
addHoverHandler(new ResourcePreviewHoverHandler);
}
@@ -145,7 +145,6 @@ bool CppEditorPlugin::initialize(const QStringList & /*arguments*/, QString *err
{
Q_UNUSED(errorMessage)
- addAutoReleasedObject(new CppEditorFactory);
addAutoReleasedObject(new CppOutlineWidgetFactory);
addAutoReleasedObject(new CppTypeHierarchyFactory);
addAutoReleasedObject(new CppIncludeHierarchyFactory);
@@ -268,6 +267,10 @@ bool CppEditorPlugin::initialize(const QStringList & /*arguments*/, QString *err
void CppEditorPlugin::extensionsInitialized()
{
+ // Add the editor factory here instead of in initialize()
+ // so that the Clang Code Model has a chance to hook in.
+ addAutoReleasedObject(new CppEditorFactory);
+
if (!HostOsInfo::isMacHost() && !HostOsInfo::isWindowsHost()) {
FileIconProvider::registerIconOverlayForMimeType(
QIcon(creatorTheme()->imageFile(Theme::IconOverlayCppSource, QLatin1String(":/cppeditor/images/qt_cpp.png"))),
diff --git a/src/plugins/cppeditor/cppincludehierarchy.cpp b/src/plugins/cppeditor/cppincludehierarchy.cpp
index 1f5f089181..22bebf3daf 100644
--- a/src/plugins/cppeditor/cppincludehierarchy.cpp
+++ b/src/plugins/cppeditor/cppincludehierarchy.cpp
@@ -29,13 +29,13 @@
#include "cppeditorwidget.h"
#include "cppeditorconstants.h"
#include "cppeditorplugin.h"
-#include "cppelementevaluator.h"
#include <coreplugin/editormanager/editormanager.h>
#include <coreplugin/fileiconprovider.h>
#include <coreplugin/find/itemviewfind.h>
#include <cpptools/baseeditordocumentprocessor.h>
+#include <cpptools/cppelementevaluator.h>
#include <cpptools/cppmodelmanager.h>
#include <cpptools/cpptoolsbridge.h>
#include <cpptools/editordocumenthandle.h>
diff --git a/src/plugins/cppeditor/cpptypehierarchy.cpp b/src/plugins/cppeditor/cpptypehierarchy.cpp
index 54eaaf2f57..0b3198d4c9 100644
--- a/src/plugins/cppeditor/cpptypehierarchy.cpp
+++ b/src/plugins/cppeditor/cpptypehierarchy.cpp
@@ -28,11 +28,11 @@
#include "cppeditorconstants.h"
#include "cppeditor.h"
#include "cppeditorwidget.h"
-#include "cppelementevaluator.h"
#include "cppeditorplugin.h"
#include <coreplugin/find/itemviewfind.h>
#include <coreplugin/editormanager/editormanager.h>
+#include <cpptools/cppelementevaluator.h>
#include <utils/algorithm.h>
#include <utils/annotateditemdelegate.h>
#include <utils/navigationtreeview.h>
@@ -46,6 +46,7 @@
#include <QVBoxLayout>
using namespace CppEditor;
+using namespace CppTools;
using namespace CppEditor::Internal;
using namespace Utils;
diff --git a/src/plugins/cppeditor/cpptypehierarchy.h b/src/plugins/cppeditor/cpptypehierarchy.h
index 355f87065d..e99d8a180e 100644
--- a/src/plugins/cppeditor/cpptypehierarchy.h
+++ b/src/plugins/cppeditor/cpptypehierarchy.h
@@ -47,11 +47,12 @@ class NavigationTreeView;
class AnnotatedItemDelegate;
}
+namespace CppTools { class CppClass; }
+
namespace CppEditor {
namespace Internal {
class CppEditorWidget;
-class CppClass;
class CppTypeHierarchyModel : public QStandardItemModel
{
@@ -75,8 +76,8 @@ public:
void perform();
private:
- typedef QList<CppClass> CppClass::*HierarchyMember;
- void buildHierarchy(const CppClass &cppClass, QStandardItem *parent,
+ typedef QList<CppTools::CppClass> CppTools::CppClass::*HierarchyMember;
+ void buildHierarchy(const CppTools::CppClass &cppClass, QStandardItem *parent,
bool isRoot, HierarchyMember member);
void showNoTypeHierarchyLabel();
void showTypeHierarchy();
diff --git a/src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp b/src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp
index 1f7576c49b..ef025a6179 100644
--- a/src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp
+++ b/src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp
@@ -27,8 +27,8 @@
#include "cppeditorwidget.h"
#include "cppeditorplugin.h"
#include "cppeditortestcase.h"
-#include "cppelementevaluator.h"
+#include <cpptools/cppelementevaluator.h>
#include <cpptools/cppfollowsymbolundercursor.h>
#include <cpptools/cppvirtualfunctionassistprovider.h>
#include <cpptools/cppvirtualfunctionproposalitem.h>
diff --git a/src/plugins/cppeditor/cppelementevaluator.cpp b/src/plugins/cpptools/cppelementevaluator.cpp
index 1e95850a18..3281783ef2 100644
--- a/src/plugins/cppeditor/cppelementevaluator.cpp
+++ b/src/plugins/cpptools/cppelementevaluator.cpp
@@ -42,8 +42,7 @@
using namespace CPlusPlus;
-namespace CppEditor {
-namespace Internal {
+namespace CppTools {
static QStringList stripName(const QString &name)
{
@@ -471,5 +470,4 @@ CppEnumerator::CppEnumerator(EnumeratorDeclaration *declaration)
tooltip.append(QLatin1String(" = ") + enumeratorValue);
}
-} // namespace Internal
-} // namespace CppEditor
+} // namespace CppTools
diff --git a/src/plugins/cppeditor/cppelementevaluator.h b/src/plugins/cpptools/cppelementevaluator.h
index 91ef68e2d8..af994989ed 100644
--- a/src/plugins/cppeditor/cppelementevaluator.h
+++ b/src/plugins/cpptools/cppelementevaluator.h
@@ -25,6 +25,8 @@
#pragma once
+#include "cpptools_global.h"
+
#include <texteditor/texteditor.h>
#include <texteditor/helpitem.h>
@@ -41,14 +43,11 @@ class LookupItem;
class LookupContext;
}
-namespace CppTools { class CppModelManager; }
-
-namespace CppEditor {
-namespace Internal {
-
+namespace CppTools {
class CppElement;
+class CppModelManager;
-class CppElementEvaluator
+class CPPTOOLS_EXPORT CppElementEvaluator
{
public:
explicit CppElementEvaluator(TextEditor::TextEditorWidget *editor);
@@ -82,7 +81,7 @@ private:
QString m_diagnosis;
};
-class CppElement
+class CPPTOOLS_EXPORT CppElement
{
protected:
CppElement();
@@ -189,5 +188,4 @@ public:
explicit CppEnumerator(CPlusPlus::EnumeratorDeclaration *declaration);
};
-} // namespace Internal
-} // namespace CppEditor
+} // namespace CppTools
diff --git a/src/plugins/cppeditor/cpphoverhandler.cpp b/src/plugins/cpptools/cpphoverhandler.cpp
index d480c12c61..d01102f4f2 100644
--- a/src/plugins/cppeditor/cpphoverhandler.cpp
+++ b/src/plugins/cpptools/cpphoverhandler.cpp
@@ -25,7 +25,6 @@
#include "cpphoverhandler.h"
-#include "cppeditorconstants.h"
#include "cppelementevaluator.h"
#include <coreplugin/helpmanager.h>
@@ -89,8 +88,7 @@ void processWithEditorDocumentProcessor(TextEditorWidget *editorWidget,
} // anonymous namespace
-namespace CppEditor {
-namespace Internal {
+namespace CppTools {
void CppHoverHandler::identifyMatch(TextEditorWidget *editorWidget, int pos)
{
@@ -186,5 +184,4 @@ void CppHoverHandler::operateTooltip(TextEditor::TextEditorWidget *editorWidget,
helpId);
}
-} // namespace Internal
-} // namespace CppEditor
+} // namespace CppTools
diff --git a/src/plugins/cppeditor/cpphoverhandler.h b/src/plugins/cpptools/cpphoverhandler.h
index accc275152..b728b970fe 100644
--- a/src/plugins/cppeditor/cpphoverhandler.h
+++ b/src/plugins/cpptools/cpphoverhandler.h
@@ -25,12 +25,13 @@
#pragma once
+#include "cpptools_global.h"
+
#include <texteditor/basehoverhandler.h>
-namespace CppEditor {
-namespace Internal {
+namespace CppTools {
-class CppHoverHandler : public TextEditor::BaseHoverHandler
+class CPPTOOLS_EXPORT CppHoverHandler : public TextEditor::BaseHoverHandler
{
private:
void identifyMatch(TextEditor::TextEditorWidget *editorWidget, int pos) override;
@@ -41,5 +42,4 @@ private:
int m_positionForEditorDocumentProcessor = -1;
};
-} // namespace Internal
-} // namespace CppEditor
+} // namespace CppTools
diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp
index 9beb97b2f3..f1b1d2c2bd 100644
--- a/src/plugins/cpptools/cppmodelmanager.cpp
+++ b/src/plugins/cpptools/cppmodelmanager.cpp
@@ -1293,8 +1293,13 @@ CppCompletionAssistProvider *CppModelManager::completionAssistProvider() const
return d->m_activeModelManagerSupport->completionAssistProvider();
}
+TextEditor::BaseHoverHandler *CppModelManager::createHoverHandler() const
+{
+ return d->m_activeModelManagerSupport->createHoverHandler();
+}
+
BaseEditorDocumentProcessor *CppModelManager::createEditorDocumentProcessor(
- TextEditor::TextDocument *baseTextDocument) const
+ TextEditor::TextDocument *baseTextDocument) const
{
return d->m_activeModelManagerSupport->createEditorDocumentProcessor(baseTextDocument);
}
diff --git a/src/plugins/cpptools/cppmodelmanager.h b/src/plugins/cpptools/cppmodelmanager.h
index bf05c26156..d8b8d2f192 100644
--- a/src/plugins/cpptools/cppmodelmanager.h
+++ b/src/plugins/cpptools/cppmodelmanager.h
@@ -44,7 +44,10 @@ class IEditor;
}
namespace CPlusPlus { class LookupContext; }
namespace ProjectExplorer { class Project; }
-namespace TextEditor { class TextDocument; }
+namespace TextEditor {
+class BaseHoverHandler;
+class TextDocument;
+} // namespace TextEditor
namespace CppTools {
@@ -173,7 +176,8 @@ public:
void activateClangCodeModel(ModelManagerSupportProvider *modelManagerSupportProvider);
CppCompletionAssistProvider *completionAssistProvider() const;
BaseEditorDocumentProcessor *createEditorDocumentProcessor(
- TextEditor::TextDocument *baseTextDocument) const;
+ TextEditor::TextDocument *baseTextDocument) const;
+ TextEditor::BaseHoverHandler *createHoverHandler() const;
FollowSymbolInterface &followSymbolInterface() const;
void setIndexingSupport(CppIndexingSupport *indexingSupport);
diff --git a/src/plugins/cpptools/cppmodelmanagersupport.h b/src/plugins/cpptools/cppmodelmanagersupport.h
index 306f1aa974..06102f6007 100644
--- a/src/plugins/cpptools/cppmodelmanagersupport.h
+++ b/src/plugins/cpptools/cppmodelmanagersupport.h
@@ -30,7 +30,10 @@
#include <QSharedPointer>
#include <QString>
-namespace TextEditor { class TextDocument; }
+namespace TextEditor {
+class TextDocument;
+class BaseHoverHandler;
+} // namespace TextEditor
namespace CppTools {
@@ -48,6 +51,7 @@ public:
virtual ~ModelManagerSupport() = 0;
virtual CppCompletionAssistProvider *completionAssistProvider() = 0;
+ virtual TextEditor::BaseHoverHandler *createHoverHandler() = 0;
virtual BaseEditorDocumentProcessor *createEditorDocumentProcessor(
TextEditor::TextDocument *baseTextDocument) = 0;
virtual FollowSymbolInterface &followSymbolInterface() = 0;
diff --git a/src/plugins/cpptools/cppmodelmanagersupportinternal.cpp b/src/plugins/cpptools/cppmodelmanagersupportinternal.cpp
index 2dfc34dbab..5191995554 100644
--- a/src/plugins/cpptools/cppmodelmanagersupportinternal.cpp
+++ b/src/plugins/cpptools/cppmodelmanagersupportinternal.cpp
@@ -26,6 +26,7 @@
#include "cppcompletionassist.h"
#include "cppmodelmanagersupportinternal.h"
#include "cppfollowsymbolundercursor.h"
+#include "cpphoverhandler.h"
#include "cpprefactoringengine.h"
#include "builtineditordocumentprocessor.h"
@@ -74,6 +75,11 @@ CppCompletionAssistProvider *ModelManagerSupportInternal::completionAssistProvid
return m_completionAssistProvider.data();
}
+TextEditor::BaseHoverHandler *ModelManagerSupportInternal::createHoverHandler()
+{
+ return new CppHoverHandler;
+}
+
FollowSymbolInterface &ModelManagerSupportInternal::followSymbolInterface()
{
return *m_followSymbol;
diff --git a/src/plugins/cpptools/cppmodelmanagersupportinternal.h b/src/plugins/cpptools/cppmodelmanagersupportinternal.h
index 70b56f4351..e2954792ea 100644
--- a/src/plugins/cpptools/cppmodelmanagersupportinternal.h
+++ b/src/plugins/cpptools/cppmodelmanagersupportinternal.h
@@ -41,6 +41,7 @@ public:
virtual ~ModelManagerSupportInternal();
CppCompletionAssistProvider *completionAssistProvider() final;
+ TextEditor::BaseHoverHandler *createHoverHandler() final;
BaseEditorDocumentProcessor *createEditorDocumentProcessor(
TextEditor::TextDocument *baseTextDocument) final;
FollowSymbolInterface &followSymbolInterface() final;
diff --git a/src/plugins/cpptools/cpptools.pro b/src/plugins/cpptools/cpptools.pro
index 4dfc0ceece..e16e3ec0bc 100644
--- a/src/plugins/cpptools/cpptools.pro
+++ b/src/plugins/cpptools/cpptools.pro
@@ -32,11 +32,13 @@ HEADERS += \
cppdoxygen.h \
cppeditoroutline.h \
cppeditorwidgetinterface.h \
+ cppelementevaluator.h \
cppfileiterationorder.h \
cppfilesettingspage.h \
cppfindreferences.h \
cppfollowsymbolundercursor.h \
cppfunctionsfilter.h \
+ cpphoverhandler.h \
cppincludesfilter.h \
cppindexingsupport.h \
cpplocalsymbols.h \
@@ -125,11 +127,13 @@ SOURCES += \
cppcurrentdocumentfilter.cpp \
cppeditoroutline.cpp \
cppdoxygen.cpp \
+ cppelementevaluator.cpp \
cppfileiterationorder.cpp \
cppfilesettingspage.cpp \
cppfindreferences.cpp \
cppfollowsymbolundercursor.cpp \
cppfunctionsfilter.cpp \
+ cpphoverhandler.cpp \
cppincludesfilter.cpp \
cppindexingsupport.cpp \
cpplocalsymbols.cpp \
diff --git a/src/plugins/cpptools/cpptools.qbs b/src/plugins/cpptools/cpptools.qbs
index a510f5a21d..a258ce18a3 100644
--- a/src/plugins/cpptools/cpptools.qbs
+++ b/src/plugins/cpptools/cpptools.qbs
@@ -90,6 +90,8 @@ Project {
"cppeditoroutline.cpp",
"cppeditoroutline.h",
"cppeditorwidgetinterface.h",
+ "cppelementevaluator.cpp",
+ "cppelementevaluator.h",
"cppfileiterationorder.cpp",
"cppfileiterationorder.h",
"cppfilesettingspage.cpp",
@@ -101,6 +103,8 @@ Project {
"cppfollowsymbolundercursor.h",
"cppfunctionsfilter.cpp",
"cppfunctionsfilter.h",
+ "cpphoverhandler.cpp",
+ "cpphoverhandler.h",
"cppincludesfilter.cpp",
"cppincludesfilter.h",
"cppindexingsupport.cpp",