Commit 90a44ab1 authored by Christian Kamm's avatar Christian Kamm

QmlJS indenter: Fix object bindings with namespaces.

Task-number: QTCREATORBUG-3371
Reviewed-by: Roberto Raggi
parent ca73b6b9
...@@ -246,8 +246,10 @@ void CodeFormatter::recalculateStateAfter(const QTextBlock &block) ...@@ -246,8 +246,10 @@ void CodeFormatter::recalculateStateAfter(const QTextBlock &block)
case expression_or_objectdefinition: case expression_or_objectdefinition:
switch (kind) { 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; 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; } break;
case expression: case expression:
......
...@@ -8,6 +8,7 @@ SRCDIR = ../../../../../src ...@@ -8,6 +8,7 @@ SRCDIR = ../../../../../src
#include($$SRCDIR/../qtcreator.pri) #include($$SRCDIR/../qtcreator.pri)
include($$SRCDIR/libs/qmljs/qmljs-lib.pri) include($$SRCDIR/libs/qmljs/qmljs-lib.pri)
include($$SRCDIR/libs/utils/utils-lib.pri) include($$SRCDIR/libs/utils/utils-lib.pri)
include($$SRCDIR/libs/languageutils/languageutils-lib.pri)
#LIBS += -L$$IDE_LIBRARY_PATH #LIBS += -L$$IDE_LIBRARY_PATH
SOURCES += \ SOURCES += \
......
...@@ -53,6 +53,7 @@ private Q_SLOTS: ...@@ -53,6 +53,7 @@ private Q_SLOTS:
void expressionContinuation(); void expressionContinuation();
void objectLiteral(); void objectLiteral();
void keywordStatement(); void keywordStatement();
void namespacedObjects();
}; };
struct Line { struct Line {
...@@ -961,6 +962,19 @@ void tst_QMLCodeFormatter::keywordStatement() ...@@ -961,6 +962,19 @@ void tst_QMLCodeFormatter::keywordStatement()
checkIndent(data); 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) QTEST_APPLESS_MAIN(tst_QMLCodeFormatter)
#include "tst_qmlcodeformatter.moc" #include "tst_qmlcodeformatter.moc"
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment