forked from qt-creator/qt-creator
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:
@@ -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) {
|
||||
|
Reference in New Issue
Block a user