Commit e20bfaed authored by Christian Kamm's avatar Christian Kamm

QmlJS indenter: Fix break/continue/throw in if statement without braces.

Reviewed-by: Roberto Raggi
parent 5f020eeb
......@@ -643,6 +643,14 @@ bool CodeFormatter::tryStatement()
enter(empty_statement);
leave(true);
return true;
case Break:
case Continue:
leave(true);
return true;
case Throw:
enter(throw_statement);
enter(expression);
return true;
case Return:
enter(return_statement);
enter(expression);
......
......@@ -156,6 +156,7 @@ public: // must be public to make Q_GADGET introspection work
substatement_open, // The brace that opens a substatement block.
return_statement, // After 'return'
throw_statement, // After 'throw'
statement_with_condition, // After the 'for', 'while', 'catch', ... token
statement_with_condition_paren_open, // While inside the (...)
......
......@@ -50,6 +50,7 @@ private Q_SLOTS:
// void whitesmithsStyle();
void expressionContinuation();
void objectLiteral();
void keywordStatement();
};
struct Line {
......@@ -896,6 +897,26 @@ void tst_QMLCodeFormatter::objectLiteral()
checkIndent(data);
}
void tst_QMLCodeFormatter::keywordStatement()
{
QList<Line> data;
data << Line("function shuffle() {")
<< Line(" if (1)")
<< Line(" break")
<< Line(" if (1)")
<< Line(" continue")
<< Line(" if (1)")
<< Line(" throw 1")
<< Line(" if (1)")
<< Line(" return")
<< Line(" if (1)")
<< Line(" return 1")
<< Line(" var x = 2")
<< Line("}")
;
checkIndent(data);
}
QTEST_APPLESS_MAIN(tst_QMLCodeFormatter)
#include "tst_qmlcodeformatter.moc"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment