summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/builtineditordocumentprocessor.cpp
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@digia.com>2014-08-26 14:26:28 +0200
committerNikolai Kosjar <nikolai.kosjar@digia.com>2014-08-29 16:12:57 +0200
commit45570d406889bbf881e033feab163e149a5628cc (patch)
tree2c6a3844ef1e8eb08c05ff5b15ba5b2ca800feed /src/plugins/cpptools/builtineditordocumentprocessor.cpp
parent46b5ed2ba942847d91fdb347718d798dd5244524 (diff)
downloadqt-creator-45570d406889bbf881e033feab163e149a5628cc.tar.gz
CppTools: Provide the editor snapshot for SemanticInfoUpdater
...so that SemanticInfoUpdater does not depend anymore on the EditorDocumentParser. Accessing the snapshot was a blocking operation that delayed the semantic info update longer than actually needed. Change-Id: I348d22ef83ab310d4319b2e8b9678fe90ee24d6a Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Diffstat (limited to 'src/plugins/cpptools/builtineditordocumentprocessor.cpp')
-rw-r--r--src/plugins/cpptools/builtineditordocumentprocessor.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/plugins/cpptools/builtineditordocumentprocessor.cpp b/src/plugins/cpptools/builtineditordocumentprocessor.cpp
index 4b50809112..9cdc4dd95a 100644
--- a/src/plugins/cpptools/builtineditordocumentprocessor.cpp
+++ b/src/plugins/cpptools/builtineditordocumentprocessor.cpp
@@ -132,7 +132,6 @@ BuiltinEditorDocumentProcessor::BuiltinEditorDocumentProcessor(
bool enableSemanticHighlighter)
: BaseEditorDocumentProcessor(document)
, m_parser(new BuiltinEditorDocumentParser(document->filePath()))
- , m_semanticInfoUpdater(m_parser.data())
, m_semanticHighlighter(enableSemanticHighlighter
? new CppTools::SemanticHighlighter(document)
: 0)
@@ -151,8 +150,8 @@ BuiltinEditorDocumentProcessor::BuiltinEditorDocumentProcessor(
});
}
- connect(cmm(), &CppModelManager::documentUpdated,
- this, &BuiltinEditorDocumentProcessor::onDocumentUpdated);
+ connect(m_parser.data(), &BuiltinEditorDocumentParser::finished,
+ this, &BuiltinEditorDocumentProcessor::onParserFinished);
connect(&m_semanticInfoUpdater, &SemanticInfoUpdater::updated,
this, &BuiltinEditorDocumentProcessor::onSemanticInfoUpdated);
}
@@ -197,7 +196,8 @@ BuiltinEditorDocumentProcessor *BuiltinEditorDocumentProcessor::get(const QStrin
return 0;
}
-void BuiltinEditorDocumentProcessor::onDocumentUpdated(CPlusPlus::Document::Ptr document)
+void BuiltinEditorDocumentProcessor::onParserFinished(CPlusPlus::Document::Ptr document,
+ CPlusPlus::Snapshot snapshot)
{
if (document.isNull())
return;
@@ -223,7 +223,9 @@ void BuiltinEditorDocumentProcessor::onDocumentUpdated(CPlusPlus::Document::Ptr
emit cppDocumentUpdated(document);
+ m_documentSnapshot = snapshot;
const auto source = createSemanticInfoSource(false);
+ QTC_CHECK(source.snapshot.contains(document->fileName()));
m_semanticInfoUpdater.updateDetached(source);
}
@@ -247,6 +249,7 @@ SemanticInfo::Source BuiltinEditorDocumentProcessor::createSemanticInfoSource(bo
return SemanticInfo::Source(path,
workingCopy.source(path),
workingCopy.revision(path),
+ m_documentSnapshot,
force);
}