8

Sto usando ClangFormat.ClangFormat style per ReactiveCocoa

desidero aggiornare lo stile del mio codice ReactiveCocoa da questo

[[self.myService indexCase] subscribeNext:^(id response) { 
     DDLogDebug(@"response : %@", response); 
    } 
     error:^(NSError *error) { 
      [self.dataManager sendError:error]; 
     }]; 

a questo

[[self.myService indexCase] 
    subscribeNext:^(id response) { 
     DDLogDebug(@"response : %@", response); 
    } error:^(NSError *error) { 
      [self.dataManager sendError:error]; 
     }]; 

Quali attributi ClangFormat dovrei essere guardando per raggiungere questo obiettivo?


mio attuale .clang-format di file:

BasedOnStyle: WebKit 
AlignTrailingComments: true 
AllowShortFunctionsOnASingleLine: false 
AllowShortIfStatementsOnASingleLine: true 
BreakBeforeBraces: Linux 
ColumnLimit: 120 
IndentCaseLabels: true 
IndentWidth: 4 
KeepEmptyLinesAtTheStartOfBlocks: false 
MaxEmptyLinesToKeep: 2 
ObjCSpaceAfterProperty: true 
ObjCSpaceBeforeProtocolList: true 
PointerBindsToType: false 
SpacesBeforeTrailingComments: 1 
TabWidth: 4 
UseTab: Never 
+0

Stavo cercando qualcosa di simile circa un anno fa, ma sembrava impossibile, quindi ho rinunciato :( –

risposta

0

Aggiungi questa:

AllowAllParametersOfDeclarationOnNextLine True 

o

BinPackParameters True 
+0

Nessuno di questi ha funzionato –

+0

Questo è strano perché sto usando questo sia su XCode. "SubscribeNext" è un parametro in Cocoa: quale IDE stai usando? e su quale sistema operativo potrebbe essere in conflitto con le altre impostazioni. Prova a rimuovere gli altri uno alla volta fino a ottenere ciò che desideri. – winux

0

ho messo // prima che il primo operatore a raggiungere questo obiettivo. il formato clang lo rileva come commento e inizia automaticamente sulla riga successiva per il resto dell'istruzione. Non è necessario inserirlo su ciascuna riga, in genere il primo è sufficiente ma a volte no (dipende anche dalle altre impostazioni nel file .clang-format).

così sembra un po 'come:

[[self.myService indexCase] // 
    subscribeNext:^(id response) { 
     DDLogDebug(@"response : %@", response); 
    } error:^(NSError *error) { 
     [self.dataManager sendError:error]; 
    }]; 

Io uso questo trucco per rendere clang formato rompere il codice di dove voglio. È un po 'hacky, potrebbe anche sembrare brutto ad alcuni, ma ritengo che i benefici di una maggiore leggibilità siano più preziosi delle occasionali dichiarazioni di commenti vuoti, quindi non mi fanno molto male agli occhi.