Skip to content
Snippets Groups Projects
Commit 8df6dd6d authored by Christian Kamm's avatar Christian Kamm
Browse files

QmlJS: Add initial documentation for the base classes of the code model.

parent ee3ad439
No related branches found
No related tags found
No related merge requests found
......@@ -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),
......
......@@ -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)
......
......@@ -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)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment