QmlJS: Make the astPath available.

Change-Id: Ice51730ee118723dbd755467dd221eb9940775fd
Reviewed-on: http://codereview.qt.nokia.com/2774
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
This commit is contained in:
Christian Kamm
2011-08-09 12:18:56 +02:00
parent e91a0f6737
commit c879b9aeed
4 changed files with 115 additions and 66 deletions

View File

@@ -107,16 +107,22 @@ public:
bool isValid() const;
int revision() const;
// Returns the AST path
QList<QmlJS::AST::Node *> astPath(int cursorPosition) const;
// Returns the AST node at the offset (the last member of the astPath)
QmlJS::AST::Node *astNodeAt(int cursorPosition) const;
// Returns the list of declaration-type nodes that enclose the given position.
// It is more robust than astPath because it tracks ranges with text cursors
// and will thus be correct even if the document was changed and not yet
// reparsed. It does not return the full path of AST nodes.
QList<QmlJS::AST::Node *> rangePath(int cursorPosition) const;
// Returns the declaring member
QmlJS::AST::Node *rangeAt(int cursorPosition) const;
QmlJS::AST::Node *declaringMemberNoProperties(int cursorPosition) const;
// Returns the AST node under cursor
QmlJS::AST::Node *nodeUnderCursor(int cursorPosition) const;
// Returns the list of nodes that enclose the given position.
QList<QmlJS::AST::Node *> rangePath(int cursorPosition) const;
// Returns a scopeChain for the given path
QmlJS::ScopeChain scopeChain(const QList<QmlJS::AST::Node *> &path = QList<QmlJS::AST::Node *>()) const;