<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/107914>107914</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
clang-format BraceWrapping.BeforeLambdaBody: True overrides AllowShortLambdasOnASingleLine: All
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang-format
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
d3matt
</td>
</tr>
</table>
<pre>
Found a partial workaround here: https://stackoverflow.com/questions/67547349/clang-format-lambda-on-single-line-doesnt-work
It should be possible to have multi-line lambdas require Allman style bracing, but have short lambdas truly be a single line.
Suggest switching BeforeLambdaBody from a boolean to a tri-state (Never, OnlyMultiline, Always). With OnlyMultiLine having the new behavior I'm looking for:
```
auto oneliner = [](auto x){ return 2*x; };
auto multiliner = [](auto x)
{
if (x %2 == 0)
{
return x*2;
}
return x*3;
};
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx0U01vq0gQ_DXDpYUFAxhz4IDXshQpuzlkpZwbaGA2w4wzH_7496sBP8d50rMsED1V1dXQhdaKURHVrNiz4hChd5M2dZ_N6FzU6v5WH7VXPSCc0DiBEi7afKJZihMZYlkDk3Mny7KG8SPjR-uw-9RnMoPUl02nZ8aPX56sE1pZxo_bssjLLK8YP3YS1RgP2szoYolz22OsVWyFGiXFUiiKe01WuTh0ZcmBJc16fXFgJ-1lDy3BSVsrWkngNEx4Jpi9dGLhw6pqwdCXF4agkXJGBdbdJEFrsBNqZPwvaL1buXbSxj1oznh5Cz0QVlcQVDfPVt79OJJ1YC_CdZNQI-xp0IZeF4m97m8wGD0DQqu1JFTBJoIzIrYOHQHju3_oTCbYeFPy9ndwH9qEQiMveLOMVxv4EG76BryG6SY8h4ZuIlB0gZZCQRt4YbycQWr9GY4HbcLXWT1vk_t_eUTvNGhFoZ0Blh1g3QTGd8vRlfGKlXsw5LxRwBlvrizbAysPLNs_acy_TP9RZW1f3kkAAGIIs1-B8YIHViAmD2hA_ICH393HlfGGPwwsbh6wJ0j2gDz7fbyCqK-zvsoqjKhOS15U6TbdltFU9yVlu6wqSizyXTf0yTYtBsyTskopL7YYiZonPE-qpOJpUvFyk_QpJjRguSsK2u4Klic0o5AbKc_zRpsxEtZ6qtOgkUcSW5J2SR3nzylgnIccmjrw4taPluWJFNbZbyUnnKT6mQV7gx19GDydhBo3v-9fyOi_xhOEVBrRkw0x0Jf3sOorzL6p5n1Z8LBXgdBIGXkj65_hHoWbfHtPdXB0v8Uno_-jzjF-XAYNQb_Peq75_wEAAP__s8ViEQ">