summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/libs/qmljs/qmljscodeformatter.cpp4
-rw-r--r--tests/auto/qml/qmleditor/qmlcodeformatter/qmlcodeformatter.pro1
-rw-r--r--tests/auto/qml/qmleditor/qmlcodeformatter/tst_qmlcodeformatter.cpp14
3 files changed, 18 insertions, 1 deletions
diff --git a/src/libs/qmljs/qmljscodeformatter.cpp b/src/libs/qmljs/qmljscodeformatter.cpp
index 023c7286e9..f71bab2387 100644
--- a/src/libs/qmljs/qmljscodeformatter.cpp
+++ b/src/libs/qmljs/qmljscodeformatter.cpp
@@ -246,8 +246,10 @@ void CodeFormatter::recalculateStateAfter(const QTextBlock &block)
case expression_or_objectdefinition:
switch (kind) {
+ case Dot:
+ case Identifier: break; // need to become an objectdefinition_open in cases like "width: Qt.Foo {"
case LeftBrace: turnInto(objectdefinition_open); break;
- default: enter(expression); continue; // really? first token already gone!
+ default: enter(expression); continue; // really? identifier and more tokens might already be gone
} break;
case expression:
diff --git a/tests/auto/qml/qmleditor/qmlcodeformatter/qmlcodeformatter.pro b/tests/auto/qml/qmleditor/qmlcodeformatter/qmlcodeformatter.pro
index 54797eb7ea..74297ab811 100644
--- a/tests/auto/qml/qmleditor/qmlcodeformatter/qmlcodeformatter.pro
+++ b/tests/auto/qml/qmleditor/qmlcodeformatter/qmlcodeformatter.pro
@@ -8,6 +8,7 @@ SRCDIR = ../../../../../src
#include($$SRCDIR/../qtcreator.pri)
include($$SRCDIR/libs/qmljs/qmljs-lib.pri)
include($$SRCDIR/libs/utils/utils-lib.pri)
+include($$SRCDIR/libs/languageutils/languageutils-lib.pri)
#LIBS += -L$$IDE_LIBRARY_PATH
SOURCES += \
diff --git a/tests/auto/qml/qmleditor/qmlcodeformatter/tst_qmlcodeformatter.cpp b/tests/auto/qml/qmleditor/qmlcodeformatter/tst_qmlcodeformatter.cpp
index a8b0c42240..c83e7c703f 100644
--- a/tests/auto/qml/qmleditor/qmlcodeformatter/tst_qmlcodeformatter.cpp
+++ b/tests/auto/qml/qmleditor/qmlcodeformatter/tst_qmlcodeformatter.cpp
@@ -53,6 +53,7 @@ private Q_SLOTS:
void expressionContinuation();
void objectLiteral();
void keywordStatement();
+ void namespacedObjects();
};
struct Line {
@@ -961,6 +962,19 @@ void tst_QMLCodeFormatter::keywordStatement()
checkIndent(data);
}
+void tst_QMLCodeFormatter::namespacedObjects()
+{
+ QList<Line> data;
+ data << Line("Item {")
+ << Line(" width: Q.Foo {")
+ << Line(" Q.Bar {")
+ << Line(" x: 12")
+ << Line(" }")
+ << Line(" }")
+ ;
+ checkIndent(data);
+}
+
QTEST_APPLESS_MAIN(tst_QMLCodeFormatter)
#include "tst_qmlcodeformatter.moc"