summaryrefslogtreecommitdiff
path: root/src/libs/qmljs/qmljscodeformatter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/qmljs/qmljscodeformatter.cpp')
-rw-r--r--src/libs/qmljs/qmljscodeformatter.cpp43
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"))