diff options
author | Fawzi Mohamed <fawzi.mohamed@qt.io> | 2020-09-29 13:11:20 +0200 |
---|---|---|
committer | Fawzi Mohamed <fawzi.mohamed@qt.io> | 2020-10-01 08:47:14 +0000 |
commit | 89c8021c5cd4a2c0bc03bcd58e022b1483eaf6eb (patch) | |
tree | 465827deeba580de04d5153b82c88056d51ed53e | |
parent | 2ee1af2032e369ec28afcf5a2cb841b89963e604 (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.h | 19 | ||||
-rw-r--r-- | src/libs/qmljs/qmljsreformatter.cpp | 2 |
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) |