forked from qt-creator/qt-creator
C++ indenter: Don't get confused on 'for (a in b)'.
Reviewed-by: Roberto Raggi Reviewed-by: Erik Verbruggen
This commit is contained in:
@@ -317,12 +317,14 @@ void CodeFormatter::recalculateStateAfter(const QTextBlock &block)
|
||||
switch (kind) {
|
||||
case T_SEMICOLON: turnInto(for_statement_condition); break;
|
||||
case T_LPAREN: enter(condition_paren_open); break;
|
||||
case T_RPAREN: turnInto(for_statement_expression); continue;
|
||||
} break;
|
||||
|
||||
case for_statement_condition:
|
||||
switch (kind) {
|
||||
case T_SEMICOLON: turnInto(for_statement_expression); break;
|
||||
case T_LPAREN: enter(condition_paren_open); break;
|
||||
case T_RPAREN: turnInto(for_statement_expression); continue;
|
||||
} break;
|
||||
|
||||
case for_statement_expression:
|
||||
|
||||
@@ -33,6 +33,7 @@ private Q_SLOTS:
|
||||
void classAccess();
|
||||
void ternary();
|
||||
void objcAtDeclarations();
|
||||
void objcCallAndFor();
|
||||
void braceList();
|
||||
void bug1();
|
||||
void bug2();
|
||||
@@ -666,6 +667,24 @@ void tst_CodeFormatter::objcAtDeclarations()
|
||||
checkIndent(data);
|
||||
}
|
||||
|
||||
void tst_CodeFormatter::objcCallAndFor()
|
||||
{
|
||||
QList<Line> data;
|
||||
data << Line("void foo() {")
|
||||
<< Line(" NSArray *windows = [NSApp windows];")
|
||||
<< Line(" for (NSWindow *window in windows) {")
|
||||
<< Line(" NSArray *drawers = [window drawers];")
|
||||
<< Line(" for (NSDrawer *drawer in drawers) {")
|
||||
<< Line(" NSArray *views = [[drawer contentView] subviews];")
|
||||
<< Line(" int x;")
|
||||
<< Line(" }")
|
||||
<< Line(" }")
|
||||
<< Line("}")
|
||||
<< Line("int y;")
|
||||
;
|
||||
checkIndent(data);
|
||||
}
|
||||
|
||||
void tst_CodeFormatter::switch1()
|
||||
{
|
||||
QList<Line> data;
|
||||
|
||||
Reference in New Issue
Block a user