Commit 0c4bd321 authored by Christian Kamm's avatar Christian Kamm

Json: Fix indenter for json files.

Change-Id: Id864509dd78a70fc34a3798b80f7e1c8991181f4
Reviewed-on: http://codereview.qt-project.org/6038
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: default avatarFawzi Mohamed <fawzi.mohamed@nokia.com>
parent b5a92a19
......@@ -90,6 +90,7 @@ void CodeFormatter::recalculateStateAfter(const QTextBlock &block)
switch (kind) {
case Identifier: enter(objectdefinition_or_js); continue;
case Import: enter(top_qml); continue;
case LeftBrace: enter(top_js); enter(expression); continue; // if a file starts with {, it's likely json
default: enter(top_js); continue;
} break;
......
......@@ -170,6 +170,9 @@ void QtStyleCodeFormatter::onEnter(int newState, int *indentDepth, int *savedInd
if (parentState.type == expression && state(1).type == binding_assignment) {
*savedIndentDepth = state(2).savedIndentDepth;
*indentDepth = *savedIndentDepth + m_indentSize;
} else if (parentState.type == objectliteral_assignment) {
*savedIndentDepth = parentState.savedIndentDepth;
*indentDepth = *savedIndentDepth + m_indentSize;
} else if (!lastToken) {
*indentDepth = tokenPosition + 1;
} else {
......
......@@ -94,6 +94,7 @@ private Q_SLOTS:
void labelledStatements1();
void labelledStatements2();
void labelledStatements3();
void json1();
};
struct Line {
......@@ -1198,6 +1199,33 @@ void tst_QMLCodeFormatter::labelledStatements3()
checkIndent(data);
}
void tst_QMLCodeFormatter::json1()
{
QList<Line> data;
data << Line("{")
<< Line(" \"lab\": \"abc\",")
<< Line(" \"foo\": \"baroooo\",")
<< Line(" \"foo\": [ \"baroooo\", \"foo\" ],")
<< Line(" \"foo\": [")
<< Line(" \"baroooo\",")
<< Line(" \"doo\"")
<< Line(" ],")
<< Line(" \"lab\": \"abc\",")
<< Line(" \"object\": {")
<< Line(" \"lab\": \"abc\",")
<< Line(" \"foo\": \"baroooo\",")
<< Line(" \"foo\": [ \"baroooo\", \"foo\" ],")
<< Line(" \"foo\": [")
<< Line(" \"baroooo\",")
<< Line(" \"doo\"")
<< Line(" ],")
<< Line(" \"lab\": \"abc\"")
<< Line(" }")
<< Line("}")
;
checkIndent(data);
}
QTEST_APPLESS_MAIN(tst_QMLCodeFormatter)
#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