QmlDesigner: Adding logging category to TextToModelMerger

This allows some easy benchmarking.

Change-Id: Ib9e16542870d0fc47fc2a0441311020730b79203
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
This commit is contained in:
Thomas Hartmann
2016-06-21 16:09:10 +02:00
parent 9410a812b9
commit a073cbe214

View File

@@ -54,10 +54,13 @@
#include <QSet>
#include <QDir>
#include <QLoggingCategory>
using namespace LanguageUtils;
using namespace QmlJS;
static Q_LOGGING_CATEGORY(rewriterBenchmark, "rewriter.load")
namespace {
static inline bool isSupportedAttachedProperties(const QString &propertyName)
@@ -866,6 +869,12 @@ void TextToModelMerger::setupUsedImports()
bool TextToModelMerger::load(const QString &data, DifferenceHandler &differenceHandler)
{
qCInfo(rewriterBenchmark) << Q_FUNC_INFO;
QTime time;
if (rewriterBenchmark().isInfoEnabled())
time.start();
// maybe the project environment (kit, ...) changed, so we need to clean old caches
NodeMetaInfo::clearCache();
@@ -889,6 +898,8 @@ bool TextToModelMerger::load(const QString &data, DifferenceHandler &differenceH
doc->setSource(data);
doc->parseQml();
qCInfo(rewriterBenchmark) << "parsed correctly: " << doc->isParsedCorrectly() << time.elapsed();
if (!doc->isParsedCorrectly()) {
QList<RewriterError> errors;
foreach (const QmlJS::DiagnosticMessage &message, doc->diagnosticMessages())
@@ -904,6 +915,8 @@ bool TextToModelMerger::load(const QString &data, DifferenceHandler &differenceH
new ScopeChain(ctxt.scopeChain()));
m_document = doc;
qCInfo(rewriterBenchmark) << "linked:" << time.elapsed();
QList<RewriterError> errors;
QList<RewriterError> warnings;
@@ -916,6 +929,7 @@ bool TextToModelMerger::load(const QString &data, DifferenceHandler &differenceH
if (view()->checkSemanticErrors()) {
collectSemanticErrorsAndWarnings(&errors, &warnings);
if (!errors.isEmpty()) {
@@ -924,6 +938,7 @@ bool TextToModelMerger::load(const QString &data, DifferenceHandler &differenceH
return false;
}
m_rewriterView->setWarnings(warnings);
qCInfo(rewriterBenchmark) << "checked semantic errors:" << time.elapsed();
}
setupUsedImports();
@@ -935,6 +950,8 @@ bool TextToModelMerger::load(const QString &data, DifferenceHandler &differenceH
syncNode(modelRootNode, astRootNode, &ctxt, differenceHandler);
m_rewriterView->positionStorage()->cleanupInvalidOffsets();
qCInfo(rewriterBenchmark) << "synced nodes:" << time.elapsed();
setActive(false);
return true;
} catch (Exception &e) {