summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@theqtcompany.com>2014-11-28 12:03:58 +0100
committerNikolai Kosjar <nikolai.kosjar@theqtcompany.com>2014-11-28 14:20:29 +0100
commit9ccb6b81c982cebf6859d67d08683741df857842 (patch)
tree36eb3d08862b03dab63b6fc61488753e488ea9a8
parent488bf9179774c84136c12baa38fa70f7e3db3706 (diff)
downloadqt-creator-9ccb6b81c982cebf6859d67d08683741df857842.tar.gz
CppTools: Fix include hierarchy for clang code model
This makes the editor document snapshot accessible through BaseEditorDocumentProcessor since we need it for the include hierarchy if the the clang code model is activated. Task-number: QTCREATORBUG-13553 Change-Id: I7214cc578d05fe5cad6e12b4d29fe6f840a88e8d Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
-rw-r--r--src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp5
-rw-r--r--src/plugins/clangcodemodel/clangeditordocumentprocessor.h2
-rw-r--r--src/plugins/cppeditor/cppcodemodelinspectordialog.cpp6
-rw-r--r--src/plugins/cppeditor/cppincludehierarchymodel.cpp16
-rw-r--r--src/plugins/cpptools/baseeditordocumentprocessor.h1
-rw-r--r--src/plugins/cpptools/builtineditordocumentprocessor.cpp5
-rw-r--r--src/plugins/cpptools/builtineditordocumentprocessor.h2
-rw-r--r--src/plugins/cpptools/cppsourceprocessor_test.cpp8
8 files changed, 28 insertions, 17 deletions
diff --git a/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp b/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp
index 7c7823a3d8..e7ded2e40b 100644
--- a/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp
+++ b/src/plugins/clangcodemodel/clangeditordocumentprocessor.cpp
@@ -160,6 +160,11 @@ CppTools::BaseEditorDocumentParser *ClangEditorDocumentProcessor::parser()
return &m_parser;
}
+CPlusPlus::Snapshot ClangEditorDocumentProcessor::snapshot()
+{
+ return m_builtinProcessor.snapshot();
+}
+
bool ClangEditorDocumentProcessor::isParserRunning() const
{
return m_parserWatcher.isRunning();
diff --git a/src/plugins/clangcodemodel/clangeditordocumentprocessor.h b/src/plugins/clangcodemodel/clangeditordocumentprocessor.h
index 0ceed0b10f..7d24ffd9fd 100644
--- a/src/plugins/clangcodemodel/clangeditordocumentprocessor.h
+++ b/src/plugins/clangcodemodel/clangeditordocumentprocessor.h
@@ -37,7 +37,6 @@
#include <cpptools/builtineditordocumentprocessor.h>
#include <cpptools/semantichighlighter.h>
-
#include <QFutureWatcher>
namespace ClangCodeModel {
@@ -55,6 +54,7 @@ public:
void semanticRehighlight(bool force) Q_DECL_OVERRIDE;
CppTools::SemanticInfo recalculateSemanticInfo() Q_DECL_OVERRIDE;
CppTools::BaseEditorDocumentParser *parser() Q_DECL_OVERRIDE;
+ CPlusPlus::Snapshot snapshot() Q_DECL_OVERRIDE;
bool isParserRunning() const Q_DECL_OVERRIDE;
private slots:
diff --git a/src/plugins/cppeditor/cppcodemodelinspectordialog.cpp b/src/plugins/cppeditor/cppcodemodelinspectordialog.cpp
index d95680c6c5..9a3811cc2d 100644
--- a/src/plugins/cppeditor/cppcodemodelinspectordialog.cpp
+++ b/src/plugins/cppeditor/cppcodemodelinspectordialog.cpp
@@ -35,7 +35,7 @@
#include <coreplugin/editormanager/editormanager.h>
#include <coreplugin/icore.h>
-#include <cpptools/builtineditordocumentparser.h>
+#include <cpptools/baseeditordocumentprocessor.h>
#include <cpptools/cppcodemodelinspectordumper.h>
#include <cpptools/cppmodelmanager.h>
#include <cpptools/cppworkingcopy.h>
@@ -1365,8 +1365,8 @@ void CppCodeModelInspectorDialog::refresh()
if (editor) {
const QString editorFilePath = editor->document()->filePath();
editorDocument = cmmi->editorDocument(editorFilePath);
- if (auto *builtinDocumentParser = BuiltinEditorDocumentParser::get(editorFilePath)) {
- const CPlusPlus::Snapshot editorSnapshot = builtinDocumentParser->snapshot();
+ if (auto *documentProcessor = BaseEditorDocumentProcessor::get(editorFilePath)) {
+ const CPlusPlus::Snapshot editorSnapshot = documentProcessor->snapshot();
m_snapshotInfos->append(SnapshotInfo(editorSnapshot, SnapshotInfo::EditorSnapshot));
const QString editorSnapshotTitle
= QString::fromLatin1("Current Editor's Snapshot (%1 Documents)")
diff --git a/src/plugins/cppeditor/cppincludehierarchymodel.cpp b/src/plugins/cppeditor/cppincludehierarchymodel.cpp
index ce0149aaa5..8481c8cb0b 100644
--- a/src/plugins/cppeditor/cppincludehierarchymodel.cpp
+++ b/src/plugins/cppeditor/cppincludehierarchymodel.cpp
@@ -33,7 +33,7 @@
#include "cppincludehierarchyitem.h"
#include <coreplugin/fileiconprovider.h>
-#include <cpptools/builtineditordocumentparser.h>
+#include <cpptools/baseeditordocumentprocessor.h>
#include <cpptools/cppmodelmanager.h>
#include <cpptools/editordocumenthandle.h>
#include <texteditor/texteditor.h>
@@ -184,9 +184,9 @@ void CppIncludeHierarchyModel::fetchMore(const QModelIndex &parent)
}
if (item == m_includesItem) {
- auto *parser = BuiltinEditorDocumentParser::get(editorFilePath);
- QTC_ASSERT(parser, return);
- const Snapshot editorDocumentSnapshot = parser->snapshot();
+ auto *processor = BaseEditorDocumentProcessor::get(editorFilePath);
+ QTC_ASSERT(processor, return);
+ const Snapshot editorDocumentSnapshot = processor->snapshot();
buildHierarchyIncludes_helper(parentItem->filePath(), parentItem,
editorDocumentSnapshot, &cyclic);
} else {
@@ -286,11 +286,11 @@ void CppIncludeHierarchyModel::buildHierarchyIncludes(const QString &currentFile
return;
const QString editorFilePath = m_editor->document()->filePath();
- auto *parser = BuiltinEditorDocumentParser::get(editorFilePath);
- QTC_ASSERT(parser, return);
- const Snapshot snapshot = parser->snapshot();
+ auto *documentProcessor = BaseEditorDocumentProcessor::get(editorFilePath);
+ QTC_ASSERT(documentProcessor, return);
+ const Snapshot editorDocumentSnapshot = documentProcessor->snapshot();
QSet<QString> cyclic;
- buildHierarchyIncludes_helper(currentFilePath, m_includesItem, snapshot, &cyclic);
+ buildHierarchyIncludes_helper(currentFilePath, m_includesItem, editorDocumentSnapshot, &cyclic);
}
void CppIncludeHierarchyModel::buildHierarchyIncludes_helper(const QString &filePath,
diff --git a/src/plugins/cpptools/baseeditordocumentprocessor.h b/src/plugins/cpptools/baseeditordocumentprocessor.h
index f507176cb7..866508eaab 100644
--- a/src/plugins/cpptools/baseeditordocumentprocessor.h
+++ b/src/plugins/cpptools/baseeditordocumentprocessor.h
@@ -59,6 +59,7 @@ public:
virtual void run() = 0;
virtual void semanticRehighlight(bool force) = 0;
virtual CppTools::SemanticInfo recalculateSemanticInfo() = 0;
+ virtual CPlusPlus::Snapshot snapshot() = 0;
virtual BaseEditorDocumentParser *parser() = 0;
virtual bool isParserRunning() const = 0;
diff --git a/src/plugins/cpptools/builtineditordocumentprocessor.cpp b/src/plugins/cpptools/builtineditordocumentprocessor.cpp
index 3a3ee3eebb..758c7083db 100644
--- a/src/plugins/cpptools/builtineditordocumentprocessor.cpp
+++ b/src/plugins/cpptools/builtineditordocumentprocessor.cpp
@@ -174,6 +174,11 @@ BaseEditorDocumentParser *BuiltinEditorDocumentProcessor::parser()
return &m_parser;
}
+CPlusPlus::Snapshot BuiltinEditorDocumentProcessor::snapshot()
+{
+ return m_parser.snapshot();
+}
+
void BuiltinEditorDocumentProcessor::semanticRehighlight(bool force)
{
const auto source = createSemanticInfoSource(force);
diff --git a/src/plugins/cpptools/builtineditordocumentprocessor.h b/src/plugins/cpptools/builtineditordocumentprocessor.h
index a090118120..69f6148322 100644
--- a/src/plugins/cpptools/builtineditordocumentprocessor.h
+++ b/src/plugins/cpptools/builtineditordocumentprocessor.h
@@ -37,7 +37,6 @@
#include "cpptools_global.h"
#include "semantichighlighter.h"
-
namespace CppTools {
class CPPTOOLS_EXPORT BuiltinEditorDocumentProcessor : public BaseEditorDocumentProcessor
@@ -55,6 +54,7 @@ public:
void semanticRehighlight(bool force) Q_DECL_OVERRIDE;
CppTools::SemanticInfo recalculateSemanticInfo() Q_DECL_OVERRIDE;
BaseEditorDocumentParser *parser() Q_DECL_OVERRIDE;
+ CPlusPlus::Snapshot snapshot() Q_DECL_OVERRIDE;
bool isParserRunning() const Q_DECL_OVERRIDE;
private:
diff --git a/src/plugins/cpptools/cppsourceprocessor_test.cpp b/src/plugins/cpptools/cppsourceprocessor_test.cpp
index 4d18d729a3..70a98bed2c 100644
--- a/src/plugins/cpptools/cppsourceprocessor_test.cpp
+++ b/src/plugins/cpptools/cppsourceprocessor_test.cpp
@@ -30,7 +30,7 @@
#include "cpptoolsplugin.h"
-#include "builtineditordocumentparser.h"
+#include "baseeditordocumentprocessor.h"
#include "cppmodelmanager.h"
#include "cppsourceprocessertesthelper.h"
#include "cppsourceprocessor.h"
@@ -143,9 +143,9 @@ void CppToolsPlugin::test_cppsourceprocessor_includes_cyclic()
// Check editor snapshot
const QString filePath = editor->document()->filePath();
- auto *parser = BuiltinEditorDocumentParser::get(filePath);
- QVERIFY(parser);
- Snapshot snapshot = parser->snapshot();
+ auto *processor = BaseEditorDocumentProcessor::get(filePath);
+ QVERIFY(processor);
+ Snapshot snapshot = processor->snapshot();
QCOMPARE(snapshot.size(), 3); // Configuration file included
// Check includes