forked from qt-creator/qt-creator
QmlDesigner: Retrieve possible imports only once per project
Getting the possible imports is slow. Add extra log for setupPossibleImports(). Task-number: QDS-8042 Change-Id: I9afee8d0fdedadb5694a47433ac343a398f52b68 Reviewed-by: Marco Bubke <marco.bubke@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
committed by
Tim Jenssen
parent
a8e74a1738
commit
07d30b8632
@@ -990,9 +990,17 @@ static QList<QmlDesigner::Import> generatePossibleLibraryImports(const QHash<QSt
|
|||||||
|
|
||||||
void TextToModelMerger::setupPossibleImports(const QmlJS::Snapshot &snapshot, const QmlJS::ViewerContext &viewContext)
|
void TextToModelMerger::setupPossibleImports(const QmlJS::Snapshot &snapshot, const QmlJS::ViewerContext &viewContext)
|
||||||
{
|
{
|
||||||
|
static QUrl lastProjectUrl;
|
||||||
|
auto &externalDependencies = m_rewriterView->externalDependencies();
|
||||||
|
auto projectUrl = externalDependencies.projectUrl();
|
||||||
|
|
||||||
|
if (m_possibleImportKeys.isEmpty() || projectUrl != lastProjectUrl)
|
||||||
m_possibleImportKeys = snapshot.importDependencies()->libraryImports(viewContext);
|
m_possibleImportKeys = snapshot.importDependencies()->libraryImports(viewContext);
|
||||||
QHash<QString, ImportKey> filteredPossibleImportKeys
|
|
||||||
= filterPossibleImportKeys(m_possibleImportKeys, m_rewriterView->model());
|
lastProjectUrl = projectUrl;
|
||||||
|
|
||||||
|
QHash<QString, ImportKey> filteredPossibleImportKeys = filterPossibleImportKeys(
|
||||||
|
m_possibleImportKeys, m_rewriterView->model());
|
||||||
|
|
||||||
const QmlJS::Imports *imports = m_scopeChain->context()->imports(m_document.data());
|
const QmlJS::Imports *imports = m_scopeChain->context()->imports(m_document.data());
|
||||||
if (imports)
|
if (imports)
|
||||||
@@ -1139,6 +1147,9 @@ bool TextToModelMerger::load(const QString &data, DifferenceHandler &differenceH
|
|||||||
collectLinkErrors(&errors, ctxt);
|
collectLinkErrors(&errors, ctxt);
|
||||||
|
|
||||||
setupPossibleImports(snapshot, m_vContext);
|
setupPossibleImports(snapshot, m_vContext);
|
||||||
|
|
||||||
|
qCInfo(rewriterBenchmark) << "possible imports:" << time.elapsed();
|
||||||
|
|
||||||
setupImports(m_document, differenceHandler);
|
setupImports(m_document, differenceHandler);
|
||||||
|
|
||||||
qCInfo(rewriterBenchmark) << "imports setup:" << time.elapsed();
|
qCInfo(rewriterBenchmark) << "imports setup:" << time.elapsed();
|
||||||
|
Reference in New Issue
Block a user