diff --git a/src/libs/qmljs/qmljsbind.cpp b/src/libs/qmljs/qmljsbind.cpp index f6acc38b3e64160a1af93be24f13e13d5f8ed28c..9f94dd0381f9f615adbbb8a6b22929efeb727caa 100644 --- a/src/libs/qmljs/qmljsbind.cpp +++ b/src/libs/qmljs/qmljsbind.cpp @@ -39,6 +39,22 @@ using namespace QmlJS; using namespace QmlJS::AST; using namespace QmlJS::Interpreter; +/*! + \class QmlJS::Bind + \brief Collected information about a single Document. + \sa QmlJS::Document QmlJS::Link + + Each QmlJS::Document owns a instance of Bind. It provides access to data + that can be derived by looking at the document in isolation. If you need + information that goes beyond that, you need to create a + \l{QmlJS::Interpreter::Context} using \l{QmlJS::Link}. + + The document's imports are classified and available through fileImports(), + directoryImports() and libraryImports(). + + It allows AST to code model lookup through findQmlObject() and findFunctionScope(). +*/ + Bind::Bind(Document *doc) : _doc(doc), _currentObjectValue(0), diff --git a/src/libs/qmljs/qmljsdocument.cpp b/src/libs/qmljs/qmljsdocument.cpp index 8cad21c1d41e8c9fa48c57f2112430c97328d26f..c1d9d7f3cbe0546217e9476a785ade807e48eee5 100644 --- a/src/libs/qmljs/qmljsdocument.cpp +++ b/src/libs/qmljs/qmljsdocument.cpp @@ -39,6 +39,47 @@ using namespace QmlJS; using namespace QmlJS::AST; +/*! + \class QmlJS::Document + \brief A Qml or JavaScript document. + \sa QmlJS::Snapshot + + Documents are usually created by the \l{QmlJSEditor::Internal::ModelManager} + and stored in a \l{QmlJS::Snapshot}. They allow access to data such as + the file path, source code, abstract syntax tree and the \l{QmlJS::Bind} + instance for the document. + + To make sure unused and outdated documents are removed correctly, Document + instances are usually accessed through a shared pointer, see \l{Document::Ptr}. +*/ + +/*! + \class QmlJS::LibraryInfo + \brief A Qml library. + \sa QmlJS::Snapshot + + A LibraryInfo is created when the \l{QmlJSEditor::Internal::ModelManager} finds + a Qml library and parses the qmldir file. The instance holds information about + which Components the library provides and which plugins to load. + + The ModelManager will try to extract detailed information about the types + defined in the plugins this library loads. Once it is done, the data will + be available through the metaObjects() function. +*/ + +/*! + \class QmlJS::Snapshot + \brief A set of Document::Ptr and LibraryInfo instances. + \sa QmlJS::Document QmlJS::LibraryInfo + + A Snapshot holds and offers access to a set of Document and LibraryInfo instances. + + Usually Snapshots are copies of the snapshot maintained and updated by the + \l{QmlJSEditor::Internal::ModelManager} that updates its instance as parsing + threads finish and new information becomes available. +*/ + + Document::Document(const QString &fileName) : _engine(0) , _pool(0) diff --git a/src/libs/qmljs/qmljslink.cpp b/src/libs/qmljs/qmljslink.cpp index 5cab864e7e029fd72cf151b9ac98cbadb795e633..583a884f78fa356655de2e4fddfe520554d48f53 100644 --- a/src/libs/qmljs/qmljslink.cpp +++ b/src/libs/qmljs/qmljslink.cpp @@ -43,6 +43,19 @@ using namespace QmlJS; using namespace QmlJS::Interpreter; using namespace QmlJS::AST; +/*! + \class QmlJS::Link + \brief Initializes the Context for a Document. + \sa QmlJS::Document QmlJS::Interpreter::Context + + Initializes a context by resolving imports and building the root scope + chain. Currently, this is a expensive operation. + + It's recommended to use a the \l{LookupContext} returned by + \l{QmlJSEditor::SemanticInfo::lookupContext()} instead of building a new + \l{Context} with \l{Link}. +*/ + Link::Link(Context *context, const Document::Ptr &doc, const Snapshot &snapshot, const QStringList &importPaths) : _doc(doc)