diff options
author | Nikolai Kosjar <nikolai.kosjar@digia.com> | 2014-08-26 14:26:28 +0200 |
---|---|---|
committer | Nikolai Kosjar <nikolai.kosjar@digia.com> | 2014-08-29 16:12:57 +0200 |
commit | 45570d406889bbf881e033feab163e149a5628cc (patch) | |
tree | 2c6a3844ef1e8eb08c05ff5b15ba5b2ca800feed /src/plugins/cpptools/builtineditordocumentprocessor.cpp | |
parent | 46b5ed2ba942847d91fdb347718d798dd5244524 (diff) | |
download | qt-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.cpp | 11 |
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); } |