Код-форматирование для Objective-C

Подобные вопросы были заданы раньше, но они не помогли мне с тем, что я хотел бы сделать:

Я хочу переформатировать существующий код Objective-C (несколько сотен файлов). Для чистого форматирования в стиле Apple uncrustify, похоже, делает то, что я хочу. Но для нескольких проектов мне нужен другой стиль, который я не выяснил, как настроить uncrustify. В этом стиле длинные вызовы методов выглядят так (, пожалуйста, воздержитесь от обсуждения того, нравится ли вам этот стиль или нет, не предлагайте использовать другой стиль):

[self
    longMethod:arg1
    withLots:arg2
    ofArguments:arg3
    aBlock:^{
       [self doSomething];
    }
    andAnotherBlock:^{
       [self doSomethingElse];
    }
];

Эта упаковка выполняется, когда вызов метода превышает длину строки 80 или 100 символов. Каждая строка имеет отступы на один уровень и содержит ровно один аргумент, а селекторная часть соответствует соответствующему :. Таким образом, линии не выровнены по двоеточием.

Никакая упаковка не выполняется, если длина строки меньше 80 или 100 символов:

[self shortMethod:withAnArgument];

Есть ли форматировщик кода, который можно настроить для поддержки этого стиля? Если да, то что важнее, как?

Ответ 1

Формат Clang можно использовать для форматирования кода в любом количестве стилей. Вы даже можете указать точные параметры, которые вы желаете, или использовать один из нескольких стандартных стилей.

Существует плагин XCode.

Ответ 2

Нет, я не думаю, что для этого стиля есть форматирование кода. Вы можете использовать clang Lib Tooling для выполнения задания. Да, вам нужно создать собственный инструмент, используя его. Но разработка собственного инструмента - это обычный способ, если вы хотите сделать что-то очень необычное.