Clang-формат Objective-C в макроблоке и выравнивание аргументов - PullRequest
0 голосов
/ 02 апреля 2019

Я довольно новичок в использовании clang-формата и у меня проблемы с форматированием макроблоков, содержащих аргументы; например, React Native имеет RCT_EXPORT_METHOD, который создает метод с аргументами. Однако это приводит к путанице в большинстве опций форматирования, и результат получается следующим образом:

RCT_EXPORT_METHOD(preferencesSetBool
                  : (NSString *)key boolValue
                  : (BOOL)boolValue resolver
                  : (RCTPromiseResolveBlock)resolve rejecter
                  : (RCTPromiseRejectBlock)reject) {
  [[RNFBPreferences shared] setBooleanValue:key boolValue:boolValue];
  resolve([NSNull null]);
}

Как вы можете видеть выше, имена аргументов не совпадают и находятся в разных строках.

Это формат, который я в идеале пытаюсь достичь:

  RCT_EXPORT_METHOD(
    preferencesSetBool : (NSString *) key
    boolValue          : (BOOL) boolValue
    resolver           : (RCTPromiseResolveBlock) resolve
    rejecter           : (RCTPromiseRejectBlock) reject
  ) {
    [[RNFBPreferences shared] setBooleanValue:key boolValue:boolValue];
    resolve([NSNull null]);
  }

Возможно ли это даже с помощью clang-формата? Я посмотрел на MacroBlockBegin в своем файле формата и попытался поиграть с этим и другими вариантами, но, похоже, не могу сделать много работы.

Если бы кто-нибудь мог помочь мне или указать мне правильное направление, это было бы здорово, спасибо!

...