aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFawzi Mohamed <fawzi.mohamed@qt.io>2020-09-29 13:11:20 +0200
committerFawzi Mohamed <fawzi.mohamed@qt.io>2020-10-01 08:47:14 +0000
commit89c8021c5cd4a2c0bc03bcd58e022b1483eaf6eb (patch)
tree465827deeba580de04d5153b82c88056d51ed53e
parent2ee1af2032e369ec28afcf5a2cb841b89963e604 (diff)
QmlJS: fix reformatting of required properties
Fixes: QTCREATORBUG-24376 Change-Id: I9ebe66f881575ce8e58cee46d34c3ff8da55ef9c Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
-rw-r--r--src/libs/qmljs/parser/qmljsast_p.h19
-rw-r--r--src/libs/qmljs/qmljsreformatter.cpp2
2 files changed, 13 insertions, 8 deletions
diff --git a/src/libs/qmljs/parser/qmljsast_p.h b/src/libs/qmljs/parser/qmljsast_p.h
index 209a983c52..842812cf73 100644
--- a/src/libs/qmljs/parser/qmljsast_p.h
+++ b/src/libs/qmljs/parser/qmljsast_p.h
@@ -3325,14 +3325,17 @@ public:
SourceLocation firstSourceLocation() const override
{
- if (defaultToken.isValid())
- return defaultToken;
- else if (readonlyToken.isValid())
- return readonlyToken;
- else if (requiredToken.isValid())
- return requiredToken;
-
- return propertyToken;
+ if (requiredToken.isValid()) {
+ if (defaultToken.isValid() && defaultToken.offset < requiredToken.offset)
+ return defaultToken;
+ return requiredToken;
+ }
+ if (defaultToken.isValid())
+ return defaultToken;
+ if (readonlyToken.isValid())
+ return readonlyToken;
+
+ return propertyToken;
}
SourceLocation lastSourceLocation() const override
diff --git a/src/libs/qmljs/qmljsreformatter.cpp b/src/libs/qmljs/qmljsreformatter.cpp
index b71d777dae..b723f9ff7b 100644
--- a/src/libs/qmljs/qmljsreformatter.cpp
+++ b/src/libs/qmljs/qmljsreformatter.cpp
@@ -632,6 +632,8 @@ protected:
bool visit(UiPublicMember *ast) override
{
if (ast->type == UiPublicMember::Property) {
+ if (ast->isRequired)
+ out("required ", ast->requiredToken);
if (ast->isDefaultMember)
out("default ", ast->defaultToken);
else if (ast->isReadonlyMember)