-- /file.json --
~~ lineWidth: 60, indentWidth: 4 ~~
== should keep on one line for an empty root node ==
{}

[expect]
{}

== should format all the json types ==
{
"test": "string", "other": "asdf", "a1": 5, "a2": false, "a3": null,
"a4": { "test": null, "other": [1, 2, 3, 4] }, "a5": {

}, "a6": {},
"a7": [123456, 123456, 123456, 123456, 123456, 123456, 123456],
"a8": [
    1234, 5677]}

[expect]
{
    "test": "string",
    "other": "asdf",
    "a1": 5,
    "a2": false,
    "a3": null,
    "a4": { "test": null, "other": [1, 2, 3, 4] },
    "a5": {
    },
    "a6": {},
    "a7": [
        123456,
        123456,
        123456,
        123456,
        123456,
        123456,
        123456
    ],
    "a8": [
        1234,
        5677
    ]
}

== should handle escaped string literals ==
{
    "testing": "asdf \"test\""
}

[expect]
{
    "testing": "asdf \"test\""
}

== should handle property names without quotes ==
{
    testing: "testing",
    a1: "asdf",
    121212: "testing"
}

[expect]
{
    "testing": "testing",
    "a1": "asdf",
    "121212": "testing"
}

== should support hexadecimal numbers ==
{
    "prop": 0x123
}

[expect]
{
    "prop": 0x123
}

== should support words with underscores ==
{
    prop_test: 1234
}

[expect]
{
    "prop_test": 1234
}

== should support numbers with a plus sign ==
{
    "prop": +123
}

[expect]
{
    "prop": +123
}
