<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/110727>110727</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            clang-format 19 breaks ipynb files
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang-format
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          njzjz
      </td>
    </tr>
</table>

<pre>
    We know that `ipynb` files are JSON files. Give an example ipynb file as below:

```ipynb
{
  "a": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
```

```sh
clang-format test.ipynb
```

In clang-format 18, nothing changes.

```ipynb
{
  "a": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
```

In clang-format 19.1.0, the JSON is not valid anymore after formating:

```ipynb
{
  "a" :
 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
 "aaaaaaaaa"
}
```

But if one rename `test.ipynb` to `test.json`, nothing is broken.

----

I encounter this issue when using the [pre-commit](https://github.com/pre-commit/mirrors-clang-format), which formats ipynb files by default.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzkVE2P0zAQ_TXOZZTInn6kOeSwpSqCAxw4cHbSSeyuY1e209L99chNWdplhRACCYkoSpyJ5-nNm-eRIejeEtVssWaLTSbHqJyv7f5p_5Q1bneuPxM8WneCqGQEtuT6cLYNW3LotKEA0hO8__Txw_RZwFt9JJAW6IscDobgsv3yE2SAhow7sdkD4xvGvz2XfLon5ClWrqcFAEOUDJHNHi7Lf_VKFK_UNy_qerXYoKZAa6Tt8875QUaIFGJxK8NrEO8s3CWJFcM3YF1U2vbQKml7CsV_q_AP8lSFKHiSKKqrVXVIcsFRGr0Dac-D8wSyi-RhStK2_y2TwnPWn1TyufC_D_qLGq_HCLoDZwk8WTlQGgw35l1yiO45tg_OJoAbl-oAjXePZO98mud5ftdKINu60abGRKUD6BBGgpMiC2NIOKmlbLE-eMpbNww6ssWG4UrFeAipF7hluO11VGNTtG5guL3ZittBe-98yG8Nw7BKTE9Kt-pqh3AzxQI0Z9hRJ0cTi2xXz3bVrJIZ1aLEciX4vKwyVbe4lBI5rspSzMpqgbwV3W7eVbytqlLKTNfIcS44F6JCIapi162wK3HeLnlLTYdszmmQ2hTGHIfC-T67FF8LwUssMyMbMuEytRHv6WOa475OeXkz9oHNudEhhu9IUUdD9YtTAo0n-XhXajZ6U_9EywR4feUH7_bUJlEvPAPD7ZXqscavAQAA___z6QMN">