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

    <tr>
        <th>Summary</th>
        <td>
            clang-format: Generalize BAS_AlwaysBreak to all delimiter types
        </td>
    </tr>

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

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

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

<pre>
    The setting  `AlignAfterOpenBracket: AlwaysBreak` eliminates most cases of [endline layout (vertically coupled alignment)](https://softwareengineering.stackexchange.com/a/453510/457643), but unfortunately not all.  For example, when it's set, with a 50-column limit, I get the following:

```c++
template <
    class SomethingLong, class SomethingElse>
void a_long_function_name(
    int x, int y, std::string z,
    std::vector<SomethingLong> q) {
  int a[] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
             1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
             1, 1, 1, 1, 1, 1, 1, 1};
  int b = a_very_long_name
 [some + very + very + long + expression +
       that + causes + wrapping];
}
```

Notice that it isn't applied to initializer lists or subscript expressions.  There should be a way to apply it to everything, to help avoid the problems of needlessly large diffs (and thus merge conflicts) that tend to result.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy8VE-P47YP_TTKhZjAluP8OfiQzEx--AFFe9i9B7RM2-rSkivRyXg_fSFndmbSWy8NDIegyMf3aIoYo-0cUaXKkypfVjhJ70PVYB2wxyGuat_M1feeIJKIdR2A2mZHtp07tkLhj5HcKaD5QaKKIxz5hnM8BcIfapsBsR2sQ6EIg48CBiNF8C2o8kSuYesIGGc_CSi9v1IQa5B5BuOnkakBTIUGcqL0QZUvSu97kTGq4qj0Welz9K3cMBC5zjqiYF23jpLovJkeXUdr4welz6j0eVMWZZ4txm67KRKifoZ6Ephc64NMiSjP4LwAMq8Bzj4AveEwMqXQW08OrCi9i6kbi8tKDwhl9mQ8T4ODJHg5-T90JCA9QeuZ_c26LrHOXlT2673N7o9R-pSexSs0jIxCoIrnuwcAwDDGCN_8QNJb1_3mXZeK_MP9ypFU8XpPu3rbAF7Yu-7STs6I9e7icCCl95_A1gm8JahkzMmI0iSixTFKaif8VPoLkY_TKxnxQRXPj6SKV_hL6QOo3elXUkLG-3iBKl7SUZ4K_ZvXJ4GP33-GsXtRxYOYepGBlyuF-d7fpa33CFWeoh8IlD5BCng0UvRi0NsYKEbrHXx8-ndS0qMsMQandF2SeQs4jmmEyk8yidjjIH2drt-9WEN3MCtgo1N6J4DjyJYaEA_WWbHI9icFYBslgg8QpzqaYEf5wjCuAb73FAhi7yduoCZAuOGcUBLgnCqIB0o6l1lInRMPPfEIuExiuglj8DXTsGwAR9QwxcgzMIaOoLFtm8Tu0aXoKcJAyW-8a9kaiWmsFjlCbhEQKE4s61VTFc2hOOCKqnxX5Fmms1Kv-sq09a7c1nVTZ01etuXmgBlu8q3Z0q7Z6u3KVjrTmzzPdvmu3OR63WyKTZ2R2es2b4rDXm0yGtDymvk6rH3oVjbGiao8L4tSrxhr4risTq0No-ueWh8GFKV1WqahSnlP9dRFtcmWHn8iiRWm6iGrOML_yFFYPgqcjt8uX_bp0mxmaJalKhRA5pHiagpcPS7Fzko_1e-bL9V7_3sag_-TjCh9XmREpc_vSq6V_jsAAP__9WjYaw">