QmlJS: Fix object literal indent in property initializers.

This commit is contained in:
Christian Kamm
2011-04-21 12:56:37 +02:00
parent b0da6a1e6c
commit 8d4d88f072
4 changed files with 54 additions and 6 deletions

View File

@@ -165,6 +165,21 @@ void CodeFormatter::recalculateStateAfter(const QTextBlock &block)
default: enter(expression); continue;
} break;
// property inits don't take statements
case property_initializer:
switch (kind) {
case Semicolon: leave(true); break;
case LeftBrace: enter(objectliteral_open); break;
case On:
case As:
case List:
case Import:
case Signal:
case Property:
case Identifier: enter(expression_or_objectdefinition); break;
default: enter(expression); continue;
} break;
case objectdefinition_open:
switch (kind) {
case RightBrace: leave(true); break;
@@ -206,7 +221,7 @@ void CodeFormatter::recalculateStateAfter(const QTextBlock &block)
case property_maybe_initializer:
switch (kind) {
case Colon: enter(binding_assignment); break;
case Colon: enter(property_initializer); break;
default: leave(true); continue;
} break;
@@ -298,7 +313,7 @@ void CodeFormatter::recalculateStateAfter(const QTextBlock &block)
case Colon: enter(objectliteral_assignment); break;
case RightBracket:
case RightParenthesis: leave(); continue; // error recovery
case RightBrace: leave(); break;
case RightBrace: leave(true); break;
} break;
// pretty much like expression, but ends with , or }