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