SwiftFormat Автоматический стилист для вашего Swift-кода

Когда код сам себя форматирует
Представьте: в команде из пяти разработчиков каждый пишет код по-своему. Кто-то ставит пробелы перед скобками, кто-то — нет. Один любит переносить параметры функций, другой пишет всё в одну строку. В результате кодовая база превращается в лоскутное одеяло, а code review — в бесконечные споры о стиле.
Именно эту проблему решает SwiftFormat — инструмент для автоматического форматирования Swift-кода. Он не просто расставляет пробелы и отступы, а приводит код к единому стандарту, исправляя сотни мелких несоответствий.
Что умеет SwiftFormat?
-
Глубокая работа со стилем:
- Корректирует отступы и выравнивание
- Удаляет избыточные
selfи скобки - Исправляет порядок модификаторов доступа
- Приводит к единому стилю объявления замыканий
-
Гибкая настройка:
- Более 50 правил форматирования
- Поддержка конфигурационных файлов
.swiftformat - Возможность создавать собственные правила
-
Интеграция куда угодно:
- Командная строка для ручного запуска
- Плагины для Xcode, VSCode, Sublime Text
- Git pre-commit хуки
- Поддержка CI/CD через GitHub Actions
// До форматирования
func processData(data:[String:Any], completion:(Result)->Void){
guard let value=data["key"] else{return}
self.completion(.success(value))
}
// После SwiftFormat
func processData(
data: [String: Any],
completion: (Result) -> Void
) {
guard let value = data["key"] else { return }
completion(.success(value))
}
Как начать использовать?
Установка через Homebrew:
brew install swiftformat
Базовое использование:
# Форматировать все файлы в текущей директории
swiftformat .
# Только проверить стиль без изменений (линтер)
swiftformat --lint .
Для проектов рекомендуется добавить SwiftFormat как шаг сборки в Xcode или pre-commit хук в Git. Так код будет автоматически форматироваться перед каждым коммитом.
Гибкость настроек
SwiftFormat понимает, что у каждого проекта свои требования к стилю. Вы можете:
- Отключать отдельные правила через
--disable - Создавать файл
.swiftformatв корне проекта - Настраивать поведение для отдельных файлов через комментарии
Пример конфигурации:
# .swiftformat
--indent 4
--disable trailingCommas
--enable isEmpty
--header "Copyright (c) {year} MyCompany"
Почему это стоит попробовать?
- Экономия времени — больше не тратьте часы на ручное форматирование
- Единый стиль — никаких споров в команде о том, где ставить скобки
- Чистый git history — меньше "стилевых" коммитов
- Focus на логике — сосредоточьтесь на том, что действительно важно
SwiftFormat особенно полезен:
- Командам от 2+ разработчиков
- Проектам с долгой историей разработки
- При частых code review
- Для поддержания качества opensource-проектов
Под капотом
Проект активно развивается с 2016 года, имеет более 8.5k звёзд на GitHub и поддерживает все актуальные версии Swift. Под капотом — мощный парсер Swift-кода и система правил, которые можно комбинировать как кубики LEGO.
# Показать все доступные правила
swiftformat --rules
# Информация о конкретном правиле
swiftformat --rule-info redundantSelf
Альтернативы
- SwiftLint: Больше ориентирован на поиск проблем в коде, чем на форматирование
- Крафтовые скрипты: Требуют поддержки и часто менее гибкие
Главное преимущество SwiftFormat — он не просто находит проблемы, а сразу их исправляет.
SwiftFormat — это не просто "ещё один инструмент", а настоящее спасение для команд, уставших от бесконечных правок стиля. Он берёт на себя всю рутинную работу по форматированию, позволяя сосредоточиться на решении реальных задач.
Попробуйте добавить его в свой workflow — первые результаты увидите уже после первого запуска. Ваш код станет чище, а жизнь — проще.
