<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJztV1lv2zgQ_jXyC2FBh-XjQQ--0jWQhdvYQbpPBiWOLSYU6ZJUXPfXdyjlcLL2YtO4u0BRQrB5zjcXvwEzxfbpDbcFsQUQLxlRa2leACO5oHLTXitdUkvWXICXTLyoX1i7NV489KIL_DZ4ssr8XJU4EOL-8a-91eoWcotDd9Tgfz_oJJ1Bgr1Dyb79ipsGXjSuFVgrIdSOyw1BqJILJvZEA6tyYLiLzDMnlN9De0yM5NstoGq1HEOoIYybraB73Iv6BRMvePztBs2nstu8mWo7gHvFnVgLxj5s7I2aDsHmpFGbFytq9jLH7U8TG7CrjVAZFasvFVSAa5PZ4uNwOf5j9el6ej1dfbyaza9my79Wk-nF8Ppy6ewLHuz0kukLnBpLkb_NuTahlmbUwMIqTTdwo7l1aAbE2mcv1x5FR_3FZDGU-3rvUlNpKLpMSTR4aJ-Hzp1HIV3DPODSgm62XnDJQBOQVYlTFq6lBsr-BGMQ1owAIwALpe3M-d00naNi39AONY0P9fYrudN0-0GzrPHGe5GalgmV37m0qT2IaRGP5zeLK7QTXZjfYUZ68ZQ4u2cWSufr0Xx-6XxqrNr-ozN_qGEEHsFISfXd0DhdhnbJS8xWWm5RV7fheXw-7JPNFg7SxaPp_FTInOu8KtE2mQNCvhj-XFtP5p5jwPicUW63M0conypl6RWUlMs60c4JwdeO6Y7AEC9GayY1LZ05eV17uBkOBR2KHHlWq7ze5EzSnKQTYXVLSNmvl3Ca7Aqsav_CsS8Ov5L3ZMNTeTqsWbsCJJmRnaoEI4LfAeGWWPVQ7rDa_RoF7oT_kPO-jtzSgn87njq_K-OvURn_i0L3nrp1tjL0w1Xl7UXiTJz_Jgo_ycj_I8Ee51WeF4QbREAa_ZwrBkhOYHyyLHDWAJSGwJeK31MBsqbcS1pmjI7wpTTD6y4tbVhiTLLKuleLRobpGSLV4TkD1jpdkQLcs2Xc3CPjt1gas0E8oC1a2ULp9FYrA23DN5KKVqVF-uYXFjemqp9YSdzrBK0iDfusF3Y7cRZ2AhYmISQRDWjWjYNuZ53E3ZagGQiT4t3zokjCjtQisI-Rar1fA55GQYRfGAZhMggjPwv6YbfbgW7E-vEg7HqdwAVT-E6Or_SmpdNaZFZtDC4Kbqx5XqTGuQegVhg1tNwKSIeMHTpcrY8H6nUEWrWyaa3pdwz3-LI>53740</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            Add equivalent of LambdaBodyIndentation for ObjC blocks
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

    <tr>
      <th>Reporter</th>
      <td>
          jrose-signal
      </td>
    </tr>
</table>

<pre>
    With the [attached clang-format file](https://github.com/llvm/llvm-project/files/8045495/clang-format.txt), the following (mildly reduced) Objective-C snippet formats as displayed:

```objc
- (void)test
{
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        do {
            DatabaseStorageWrite(self.databaseStorage, ^(SDSAnyWriteTransaction *transaction) {
                [interactionFinder enumerateUnreadMessagesBeforeSortId:sortId
                                                           transaction:transaction.unwrapGrdbWrite
                                                                 block:^(id<OWSReadTracking> readItem, BOOL *stop) {
                                                                     [readItem markAsReadAtTimestamp:readTimestamp
                                                                                              thread:thread
                                                                                        circumstance:circumstance
                                                                                         transaction:transaction];
                                                                     --batchQuotaRemaining;
                                                                     if (batchQuotaRemaining == 0) {
                                                                         *stop = true;
                                                                     }
                                                                 }];
            });
        } while (batchQuotaRemaining == 0);
    });
}
```

when I would like it to format as

```objc
- (void)test
{
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        do {
            batchQuotaRemaining = maxBatchSize;
            DatabaseStorageWrite(self.databaseStorage, ^(SDSAnyWriteTransaction *transaction) {
                [interactionFinder enumerateUnreadMessagesBeforeSortId:sortId
                                                           transaction:transaction.unwrapGrdbWrite
                                                                 block:^(id<OWSReadTracking> readItem, BOOL *stop) {
                    [readItem markAsReadAtTimestamp:readTimestamp
                                             thread:thread
                                       circumstance:circumstance
                                        transaction:transaction];
                    --batchQuotaRemaining;
                    if (batchQuotaRemaining == 0) {
                        *stop = true;
                    }
                }];
            });
        } while (batchQuotaRemaining == 0);
    });
```

which is what Xcode does. This seems equivalent to LambdaBodyIndentation, but there's no equivalent setting for ObjC blocks.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJztV9tu2zgQ_Rr5hbAgS5YvD3rwLVsDKdzGDtI-GZQ4sphQpEtScd2v71DKxUntxaZ1d4FiCcEmOeScmeHwDJgqtk9uuC2ILYB48ZhaS7MCGMkElZt2rnRJLcm5AC-eeuGgsHZrvGjkhRf4bXBnlfqZKnEgxP3jX3ur1S1kFoduq8H_QdCNu8MYe4eaffsVFw29cFIbkCsh1I7LDUGokgsm9kQDqzJguIosUqeU30N7Qozk2y2gabUeQ6ghjJutoHtci_YFUy94_O0FzafS26yZajuAe8WdWgvGPizsj5sOwea0UZsVa2r2MsPlTxMbsOuNUCkV6y8VVICy6Xz5YbSavFt_vJ5dz9YfruaLq_nq83o6uxhdX66cf8GDn148e4FTYynyw5xrU2ppSg0srdJ0AzeaW4dmQOQ-eyl7VB0OltPlSO7rtStNpaEYMiXR4ZF9HrpwHoV0DfOASwu6WXrBJQNNQFYlTlm4lhooew_GIKwZA54ALJW2cxd303SOqn1DO7Q0OrTbr-RO0-1fmqVNNH4VqWmpUNmdS5s6gpgW0WRxs7xCPzGE2R1mpBfNiPN7bqF0sR4vFpcupsaq7d8G86cansAjGCmpvhsZZ8vIrniJ2UrLLdrqFjyPz4d9stnCQbrzaDq_FTLjOqtK9E1mgJAvhr_X15O55xgwOucpt9upI5SPlbL0CkrKZZ1o54TguWO6IzDEi9CbaU1LZ05e1x5uhkPBgCJHntUrrz89kzan6cSxOhFS9msRTpNdgVXtHwT2xeZX-p58eCpPhzVrV4Akc7JTlWBE8Dsg3BKrHsodVrs_o8CdiB9y3texEy35t-Op839l_DMq479R6H6lbp2tDP10VXl7kTgT57-Jwk8y8n9IsMd5lWcF4QYRkEY_ZYoBkhMYn6wKnDUApSHwpeL3VICsKfeSlimjY3wpzfG6S0sblpiQtLLu1aKRYfqGSHW4z4C1zlakAPdsmTT3yPgtlkRsGA1py3IrIBkxdrhN5cfhXutpVVokb36LcWOq-jEWR_1u0CqSbpSzXkBZntFePxqG0aA3iDp5nPaHgxDCuCVoCsIkeEu9MJSwI7UK7OOZtngSBiF-nU7QiYed0E-DQafX60IvZINo2Ol53cAdmvCdHb7Sm5ZOapPSamNQKLix5llIjeEbCVDDoX5a2ULp5FYrA20noqJV4ye1_d8BXRPjxg">