llvm/llvm-project

Add equivalent of LambdaBodyIndentation for ObjC blocks

Open

#53 740 ouverte le 11 févr. 2022

Voir sur GitHub
 (6 commentaires) (3 réactions) (1 assigné)C++ (10 782 forks)batch import
clang-formatgood first issueobjective-c

Métriques du dépôt

Stars
 (26 378 stars)
Métriques de merge PR
 (Merge moyen 1j 2h) (1 000 PRs mergées en 30 j)

Description

With the attached clang-format file, the following (mildly reduced) Objective-C snippet formats as displayed:

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

- (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.

Guide contributeur