<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">