7#include <QtQml/private/qqmljsast_p.h>
8#include <QtQml/private/qqmljsastvisitor_p.h>
9#include <QtQml/private/qqmljsengine_p.h>
10#include <QtQml/private/qqmljslexer_p.h>
27 postOps[
n].append([
c,
this]() {
c->writePost(lw); });
33 for (
auto &op : postOps[
n]) {
49 if (cast<Block *>(ast)) {
52 if (finishWithSpaceOrNewline)
56 if (finishWithSpaceOrNewline)
57 postOps[ast].append([
this]() { this->
newLine(); });
125 if (lastElement->element && cast<ObjectPattern *>(lastElement->element->initializer)) {
152 const bool isObjectInitializer =
153 it->element && cast<ObjectPattern *>(
it->element->initializer);
154 if (isObjectInitializer)
159 if (
it->elision &&
it->element)
165 if (isObjectInitializer)
193 if (
property->type == PatternProperty::Getter)
195 else if (
property->type == PatternProperty::Setter)
198 if (
f->isGenerator) {
206 const bool scoped =
f->lbraceToken.isValid();
210 if (
f->body->next || scoped) {
227 bool useInitializer =
false;
228 const bool bindingIdentifierExist = !
property->bindingIdentifier.isEmpty();
229 if (
property->colonToken.isValid()) {
232 useInitializer =
true;
233 if (bindingIdentifierExist)
241 if (bindingIdentifierExist) {
243 useInitializer =
true;
507 if (cast<Block *>(ast->
ko) || cast<IfStatement *>(ast->
ko)) {
549 out(pe->declarationKindToken);
570 if (
auto pe = AST::cast<PatternElement *>(ast->
lhs)) {
571 out(pe->declarationKindToken);
750 const bool needParentheses = ast->
formals
798 if (
it->isSpreadElement)
813 if (
EmptyStatement *emptyStatement = cast<EmptyStatement *>(
it->statement)) {
814 if (loc2Str(emptyStatement->semicolonToken) !=
QLatin1String(
";"))
826 auto *commentForCurrentStatement = comments->commentForNode(
it->statement);
827 auto *commentForNextStatement = comments->commentForNode(
it->next->statement);
830 (commentForCurrentStatement && !commentForCurrentStatement->postComments().empty())
831 || (commentForNextStatement && !commentForNextStatement->preComments().empty())
834 quint32 lineDelta =
it->next->firstSourceLocation().startLine
835 -
it->statement->lastSourceLocation().startLine;
869 if (
auto id =
it->element->bindingIdentifier.toString(); !
id.isEmpty())
871 if (
it->element->bindingTarget)
900 postOps[
el->expression].append([
this]() {
out(
";"); });
1112 out(
"/* ERROR: Hit recursion limit ScriptFormatter::visiting AST, rewrite failed */");
SourceLocation lbracketToken
ExpressionNode * expression
SourceLocation rbracketToken
SourceLocation rbracketToken
PatternElementList * elements
SourceLocation lbracketToken
SourceLocation commaToken
SourceLocation operatorToken
StatementList * statements
SourceLocation rbraceToken
SourceLocation lbraceToken
SourceLocation identifierToken
SourceLocation breakToken
SourceLocation rparenToken
SourceLocation lparenToken
CaseClauses * moreClauses
SourceLocation lbraceToken
SourceLocation rbraceToken
DefaultClause * defaultClause
ExpressionNode * expression
SourceLocation colonToken
StatementList * statements
SourceLocation identifierToken
SourceLocation lparenToken
SourceLocation catchToken
ExpressionNode * heritage
ClassElementList * elements
SourceLocation classToken
ExpressionNode * expression
SourceLocation identifierToken
SourceLocation continueToken
SourceLocation defaultToken
StatementList * statements
SourceLocation colonToken
ExpressionNode * expression
ExpressionNode * expression
SourceLocation whileToken
SourceLocation rparenToken
SourceLocation lparenToken
SourceLocation semicolonToken
SourceLocation rightBraceToken
SourceLocation leftBraceToken
ExportsList * exportsList
SourceLocation exportToken
Node * variableStatementOrDeclaration
ExportClause * exportClause
QStringView exportedIdentifier
SourceLocation exportedIdentifierToken
SourceLocation falseToken
SourceLocation identifierToken
SourceLocation rparenToken
ExpressionNode * expression
SourceLocation lparenToken
ExpressionNode * expression
VariableDeclarationList * declarations
ExpressionNode * initialiser
SourceLocation rparenToken
ExpressionNode * condition
SourceLocation lparenToken
SourceLocation moduleSpecifierToken
FormalParameterList * formals
SourceLocation rparenToken
SourceLocation lbraceToken
SourceLocation rbraceToken
SourceLocation lparenToken
SourceLocation identifierToken
SourceLocation identifierToken
SourceLocation rparenToken
SourceLocation lparenToken
ExpressionNode * expression
SourceLocation importedDefaultBindingToken
QStringView importedDefaultBinding
NamedImports * namedImports
NameSpaceImport * nameSpaceImport
SourceLocation moduleSpecifierToken
SourceLocation importToken
QStringView moduleSpecifier
SourceLocation identifierToken
SourceLocation importedBindingToken
SourceLocation identifierToken
SourceLocation importedBindingToken
SourceLocation rightBraceToken
SourceLocation leftBraceToken
ImportsList * importsList
SourceLocation rparenToken
SourceLocation lparenToken
ExpressionNode * expression
ExpressionNode * expression
SourceLocation lparenToken
SourceLocation rparenToken
virtual void accept0(BaseVisitor *visitor)=0
@ Kind_FunctionDeclaration
ExpressionNode * expression
SourceLocation literalToken
SourceLocation lbraceToken
SourceLocation rbraceToken
PatternPropertyList * properties
SourceLocation identifierToken
ExpressionNode * initializer
Pattern * destructuringPattern() const
ExpressionNode * bindingTarget
bool isVariableDeclaration() const
SourceLocation decrementToken
SourceLocation incrementToken
SourceLocation decrementToken
ExpressionNode * expression
ExpressionNode * expression
SourceLocation incrementToken
SourceLocation propertyNameToken
SourceLocation literalToken
ExpressionNode * expression
SourceLocation returnToken
SourceLocation literalToken
SourceLocation switchToken
ExpressionNode * expression
SourceLocation rparenToken
SourceLocation lparenToken
SourceLocation literalToken
ExpressionNode * expression
ExpressionNode * expression
SourceLocation throwToken
SourceLocation tildeToken
ExpressionNode * expression
Finally * finallyExpression
ExpressionNode * expression
ExpressionNode * expression
SourceLocation minusToken
ExpressionNode * expression
PatternElement * declaration
SourceLocation declarationKindToken
VariableDeclarationList * declarations
ExpressionNode * expression
ExpressionNode * expression
SourceLocation whileToken
SourceLocation lparenToken
SourceLocation rparenToken
SourceLocation rparenToken
SourceLocation lparenToken
ExpressionNode * expression
OutWriter & ensureNewline(int nNewlines=1)
int increaseIndent(int level=1)
int decreaseIndent(int level=1, int expectedIndent=-1)
constexpr QStringView left(qsizetype n) const noexcept
QString toString() const
Returns a deep copy of this string view's data as a QString.
constexpr bool isNull() const noexcept
Returns whether this string view is null - that is, whether {data() == nullptr}.
constexpr QStringView right(qsizetype n) const noexcept
QString mid(qsizetype position, qsizetype n=-1) const &
bool contains(QChar c, Qt::CaseSensitivity cs=Qt::CaseSensitive) const
static QString number(int, int base=10)
This is an overloaded member function, provided for convenience. It differs from the above function o...
QSet< QString >::iterator it
T lastListElement(T head)
void reformatAst(OutWriter &lw, const std::shared_ptr< AstComments > &comments, const std::function< QStringView(SourceLocation)> &loc2Str, AST::Node *n)
Combined button and popup list for selecting options.
QTextStream out(stdout)
[7]
\inmodule QtCore \reentrant