Как настроить Xcode для установки '{', где я хочу его в сгенерированных файлах

Я знаю, что это довольно спорная проблема среди программистов, но при разработке мне нравится, когда моя IDE позиционирует открытую фигурную скобку под объявлением метода/интерфейса/управления для иллюстративных целей: -

Так Xcode автоматически генерирует скелетные методы с {в конце: -

-(void) isTrue:(BOOL)input {
    if(input) {
        return YES;
    }
    else {
        return NO;
    }
}

Вот как мне нравится выкладывать свой код (который, я считаю, называется Allman style): -

-(void) isTrue:(BOOL)input 
{
    if(input) 
    {
        return YES;
    }
    else 
    {
        return NO;
    }
}

Мне просто интересно, есть ли какой-либо переключатель конфигурации в Xcode, чтобы включить этот стиль разработки? Это очень раздражает при наборе инструкций if/else, поскольку он стремится автоматически завершить предложение else с { в конце строки, которое выглядит просто глупо, если вам нравится разрабатывать с ними под ним.

Или я неразумный? Является ли Objective-C придерживаться стандарта, определенного Apple?

Ответ 2

После переваривания полезной информации из WhirlWind выше (спасибо), полученный фрагмент (просто вырезать и вставить в терминал):

defaults написать com.apple.Xcode XCCodeSenseFormattingOptions -dict BlockSeparator "\\n" PreMethodDeclSpacing ""

Глупое цитирование косой черты. При вводе на терминале в блочном разделителе должно быть ДВА ДВОИХ обратных косых черт.

Ответ 3

Даже с этими настройками он не работает с шаблонами. Если вы установите это значение, а затем введите "init" в файле .m, вы получите:

- (id)init
{
  self = [super init];
  if (self) {
    <#initializations#>
  }
  return self;
}

Обратите внимание на строку "if (self) {".

Ответ 4

Я считаю, что "defaults write com.apple.Xcode" не работает в последних версиях Xcode (7.x)

Вот рекомендации, которые я знаю:

  • Snippet Edit - эта небольшая программа позволит редактировать по умолчанию фрагменты кода Xcode. Таким образом, вы сможете открывать фигурные скобки из новой строки в if, for, while и т.д. Однако это не позволяет изменять отступ блока.

  • Uncrustify - это может также решить вашу проблему, но это не похоже на то, что вы легко настраиваетесь. И он только форматирует код после, он уже написан, вместо форматирования 'на ходу'.