diff options
Diffstat (limited to 'src/libs/qmljs/qmljscodeformatter.cpp')
-rw-r--r-- | src/libs/qmljs/qmljscodeformatter.cpp | 43 |
1 files changed, 36 insertions, 7 deletions
diff --git a/src/libs/qmljs/qmljscodeformatter.cpp b/src/libs/qmljs/qmljscodeformatter.cpp index 63932e9ecd..ac08030542 100644 --- a/src/libs/qmljs/qmljscodeformatter.cpp +++ b/src/libs/qmljs/qmljscodeformatter.cpp @@ -163,6 +163,8 @@ void CodeFormatter::recalculateStateAfter(const QTextBlock &block) case Import: case Signal: case Property: + case Required: + case Readonly: case Identifier: enter(expression_or_objectdefinition); break; // error recovery @@ -175,8 +177,10 @@ void CodeFormatter::recalculateStateAfter(const QTextBlock &block) case objectdefinition_open: switch (kind) { case RightBrace: leave(true); break; - case Default: enter(default_property_start); break; + case Default: + case Readonly: enter(property_modifiers); break; case Property: enter(property_start); break; + case Required: enter(required_property); break; case Function: enter(function_start); break; case Signal: enter(signal_start); break; case Enum: enter(enum_start); break; @@ -187,12 +191,14 @@ void CodeFormatter::recalculateStateAfter(const QTextBlock &block) case Identifier: enter(binding_or_objectdefinition); break; } break; - case default_property_start: - if (kind != Property) - leave(true); - else - turnInto(property_start); - break; + case property_modifiers: + switch (kind) { + case Property: turnInto(property_start); break; + case Default: + case Readonly: break; + case Required: turnInto(required_property); break; + default: leave(true); break; + } break; case property_start: switch (kind) { @@ -203,6 +209,21 @@ void CodeFormatter::recalculateStateAfter(const QTextBlock &block) default: leave(true); continue; } break; + case required_property: + switch (kind) { + case Property: turnInto(property_start); break; + case Default: + case Readonly: turnInto(property_modifiers); break; + case Identifier: leave(true); break; + default: leave(true); continue; + } break; + + case component_start: + switch (kind) { + case Identifier: turnInto(StateType::component_name); break; + default: leave(true); continue; + } break; + case property_name: turnInto(property_maybe_initializer); break; @@ -788,6 +809,8 @@ bool CodeFormatter::tryStatement() case As: case List: case Property: + case Required: + case Readonly: case Function: case Number: case String: @@ -938,6 +961,12 @@ CodeFormatter::TokenKind CodeFormatter::extendedTokenKind(const QmlJS::Token &to return Signal; if (text == QLatin1String("property")) return Property; + if (text == QLatin1String("readonly")) + return Readonly; + if (text == QLatin1String("component")) + return Component; + if (text == QLatin1String("required")) + return Required; if (text == QLatin1String("on")) return On; if (text == QLatin1String("list")) |