forked from qt-creator/qt-creator
Delay the parsing of the document.
This commit is contained in:
@@ -390,6 +390,9 @@ void Document::check(CheckMode mode)
|
||||
{
|
||||
Q_ASSERT(!_globalNamespace);
|
||||
|
||||
if (! isParsed())
|
||||
parse();
|
||||
|
||||
Semantic semantic(_control);
|
||||
if (mode == FastCheck)
|
||||
semantic.setSkipFunctionBodies(true);
|
||||
@@ -450,7 +453,6 @@ Document::Ptr Snapshot::documentFromSource(const QByteArray &preprocessedCode,
|
||||
}
|
||||
|
||||
newDoc->setSource(preprocessedCode);
|
||||
newDoc->parse();
|
||||
return newDoc;
|
||||
}
|
||||
|
||||
|
||||
@@ -288,6 +288,7 @@ static void semanticSearch_helper(QFutureInterface<Core::Utils::FileSearchResult
|
||||
}
|
||||
|
||||
Document::Ptr newDoc = snapshot.documentFromSource(source, fileName);
|
||||
newDoc->parse();
|
||||
|
||||
if (SemanticSearch *search = factory->create(future, newDoc, snapshot)) {
|
||||
search->setSource(source);
|
||||
|
||||
@@ -412,6 +412,8 @@ void CppEditorSupport::checkDocumentNow()
|
||||
const QByteArray preprocessedCode = snapshot.preprocessedCode(plainText, fileName);
|
||||
|
||||
if (Document::Ptr doc = snapshot.documentFromSource(preprocessedCode, fileName)) {
|
||||
doc->parse();
|
||||
|
||||
CheckDocument checkDocument(doc, snapshot);
|
||||
QList<QuickFixOperationPtr> quickFixes = checkDocument(ed->textCursor());
|
||||
if (! quickFixes.isEmpty()) {
|
||||
|
||||
@@ -255,6 +255,8 @@ bool TranslationUnit::parse(ParseMode mode)
|
||||
if (! isTokenized())
|
||||
tokenize();
|
||||
|
||||
f._parsed = true;
|
||||
|
||||
Parser parser(this);
|
||||
parser.setQtMocRunEnabled(f._qtMocRunEnabled);
|
||||
parser.setObjCEnabled(f._objCEnabled);
|
||||
|
||||
Reference in New Issue
Block a user