ScopeChain Class
(QmlJS::ScopeChain)The ScopeChain class describes the scopes used for global lookup in a specific location. More...
Header: | #include <ScopeChain> |
Public Functions
ScopeChain(const Document::Ptr &document, const ContextPtr &context) | |
QList<const ObjectValue *> | all() const |
void | appendJsScope(const ObjectValue *scope) |
const ContextPtr & | context() const |
const ObjectValue * | cppContextProperties() const |
Document::Ptr | document() const |
const Value * | evaluate(AST::Node *node) const |
const ObjectValue * | globalScope() const |
const JSImportScope * | jsImports() const |
QList<const ObjectValue *> | jsScopes() const |
const Value * | lookup(const QString &name, const ObjectValue **foundInScope = 0) const |
QSharedPointer<const QmlComponentChain> | qmlComponentChain() const |
QList<const ObjectValue *> | qmlScopeObjects() const |
const TypeScope * | qmlTypes() const |
void | setCppContextProperties(const ObjectValue *cppContextProperties) |
void | setGlobalScope(const ObjectValue *globalScope) |
void | setJsImports(const JSImportScope *jsImports) |
void | setJsScopes(const QList<const ObjectValue *> &jsScopes) |
void | setQmlComponentChain(const QSharedPointer<const QmlComponentChain> &qmlComponentChain) |
void | setQmlScopeObjects(const QList<const ObjectValue *> &qmlScopeObjects) |
void | setQmlTypes(const TypeScope *qmlTypes) |
Detailed Description
The ScopeChain class describes the scopes used for global lookup in a specific location.
A ScopeChain is used to perform global lookup with the lookup() function and to access information about the enclosing scopes.
Once constructed for a Document in a Context it represents the root scope of that Document. From there, a ScopeBuilder can be used to push and pop scopes corresponding to functions, object definitions, etc.
It is an error to use the same ScopeChain from multiple threads; use a copy. Copying is cheap. Initial construction is currently expensive.
When a QmlJSEditor::QmlJSEditorDocument is available, there's no need to construct a new ScopeChain. Instead use QmlJSEditorDocument::semanticInfo()::scopeChain().
See also Document, Context, and ScopeBuilder.
Member Function Documentation
ScopeChain::ScopeChain(const Document::Ptr &document, const ContextPtr &context)
Default constructs an instance of ScopeChain.
QList<const ObjectValue *> ScopeChain::all() const
void ScopeChain::appendJsScope(const ObjectValue *scope)
const ContextPtr &ScopeChain::context() const
const ObjectValue *ScopeChain::cppContextProperties() const
See also setCppContextProperties().
Document::Ptr ScopeChain::document() const
const Value *ScopeChain::evaluate(AST::Node *node) const
const ObjectValue *ScopeChain::globalScope() const
See also setGlobalScope().
const JSImportScope *ScopeChain::jsImports() const
See also setJsImports().
QList<const ObjectValue *> ScopeChain::jsScopes() const
See also setJsScopes().
const Value *ScopeChain::lookup(const QString &name, const ObjectValue **foundInScope = 0) const
QSharedPointer<const QmlComponentChain> ScopeChain::qmlComponentChain() const
See also setQmlComponentChain().
QList<const ObjectValue *> ScopeChain::qmlScopeObjects() const
See also setQmlScopeObjects().
const TypeScope *ScopeChain::qmlTypes() const
See also setQmlTypes().
void ScopeChain::setCppContextProperties(const ObjectValue *cppContextProperties)
See also cppContextProperties().
void ScopeChain::setGlobalScope(const ObjectValue *globalScope)
See also globalScope().
void ScopeChain::setJsImports(const JSImportScope *jsImports)
See also jsImports().
void ScopeChain::setJsScopes(const QList<const ObjectValue *> &jsScopes)
See also jsScopes().
void ScopeChain::setQmlComponentChain(const QSharedPointer<const QmlComponentChain> &qmlComponentChain)
See also qmlComponentChain().
void ScopeChain::setQmlScopeObjects(const QList<const ObjectValue *> &qmlScopeObjects)
See also qmlScopeObjects().
void ScopeChain::setQmlTypes(const TypeScope *qmlTypes)
See also qmlTypes().