QmlJS indenter: Fix for expressions starting with numbers or strings.

Reviewed-by: Roberto Raggi
This commit is contained in:
Christian Kamm
2010-12-09 13:20:13 +01:00
parent abd4a7b931
commit 5f04fbba1a
3 changed files with 38 additions and 5 deletions

View File

@@ -12,11 +12,11 @@ include($$SRCDIR/libs/utils/utils-lib.pri)
SOURCES += \
tst_qmlcodeformatter.cpp \
$$SRCDIR/plugins/qmljseditor/qmljseditorcodeformatter.cpp \
$$SRCDIR/plugins/qmljstools/qmljsqtstylecodeformatter.cpp \
$$SRCDIR/plugins/texteditor/basetextdocumentlayout.cpp
HEADERS += \
$$SRCDIR/plugins/qmljseditor/qmljseditorcodeformatter.h \
$$SRCDIR/plugins/texteditor/basetextdocumentlayout.h \
$$SRCDIR/plugins/qmljstools/qmljseditorcodeformatter.h \
$$SRCDIR/plugins/texteditor/basetextdocumentlayout.h
INCLUDEPATH += $$SRCDIR/plugins $$SRCDIR/libs

View File

@@ -4,9 +4,9 @@
#include <QTextDocument>
#include <QTextBlock>
#include <qmljseditor/qmljseditorcodeformatter.h>
#include <qmljstools/qmljsqtstylecodeformatter.h>
using namespace QmlJSEditor;
using namespace QmlJSTools;
class tst_QMLCodeFormatter: public QObject
{
@@ -27,6 +27,7 @@ private Q_SLOTS:
void signalDeclarations();
void ifBinding1();
void ifBinding2();
void ifBinding3();
void ifStatementWithoutBraces1();
void ifStatementWithoutBraces2();
void ifStatementWithBraces1();
@@ -431,6 +432,36 @@ void tst_QMLCodeFormatter::ifBinding2()
checkIndent(data);
}
void tst_QMLCodeFormatter::ifBinding3()
{
QList<Line> data;
data << Line("A.Rectangle {")
<< Line(" foo: bar")
<< Line(" x: if (a) 1")
<< Line(" x: if (a)")
<< Line(" 1")
<< Line(" x: if (a) 1;")
<< Line(" x: if (a)")
<< Line(" 1;")
<< Line(" x: if (a) 1; else 2")
<< Line(" x: if (a) 1")
<< Line(" else 2")
<< Line(" x: if (a) 1;")
<< Line(" else 2")
<< Line(" x: if (a) 1;")
<< Line(" else")
<< Line(" 2")
<< Line(" x: if (a)")
<< Line(" 1")
<< Line(" else")
<< Line(" 2")
<< Line(" x: if (a) 1; else 2;")
<< Line(" x: 1")
<< Line("}")
;
checkIndent(data);
}
void tst_QMLCodeFormatter::ifStatementWithoutBraces1()
{
QList<Line> data;