qmljs: new import/dep tracking

Change-Id: I9f4de2a06aad3afb80372a4b80e56db658683575
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
This commit is contained in:
Fawzi Mohamed
2013-10-16 15:08:27 +02:00
parent 5bf3ed7c6a
commit e1b44e870f
24 changed files with 1327 additions and 32 deletions

View File

@@ -39,11 +39,13 @@
#include "parser/qmljsengine_p.h"
#include "qmljs_global.h"
#include "qmljsconstants.h"
#include "qmljsimportdependencies.h"
namespace QmlJS {
class Bind;
class Snapshot;
class ImportDependencies;
class QMLJS_EXPORT Document
{
@@ -204,9 +206,11 @@ class QMLJS_EXPORT Snapshot
QHash<QString, Document::Ptr> _documents;
QHash<QString, QList<Document::Ptr> > _documentsByPath;
QHash<QString, LibraryInfo> _libraries;
ImportDependencies _dependencies;
public:
Snapshot();
Snapshot(const Snapshot &o);
~Snapshot();
typedef _Base::iterator iterator;
@@ -219,6 +223,9 @@ public:
void insertLibraryInfo(const QString &path, const LibraryInfo &info);
void remove(const QString &fileName);
const ImportDependencies *importDependencies() const;
ImportDependencies *importDependencies();
Document::Ptr document(const QString &fileName) const;
QList<Document::Ptr> documentsInDirectory(const QString &path) const;
LibraryInfo libraryInfo(const QString &path) const;