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

22 июл 2025
8,930
708
75
1 неделя

SwiftFormat логотип

Когда код сам себя форматирует

Представьте: в команде из пяти разработчиков каждый пишет код по-своему. Кто-то ставит пробелы перед скобками, кто-то — нет. Один любит переносить параметры функций, другой пишет всё в одну строку. В результате кодовая база превращается в лоскутное одеяло, а code review — в бесконечные споры о стиле.

Именно эту проблему решает SwiftFormat — инструмент для автоматического форматирования Swift-кода. Он не просто расставляет пробелы и отступы, а приводит код к единому стандарту, исправляя сотни мелких несоответствий.

Что умеет SwiftFormat?

  1. Глубокая работа со стилем:

    • Корректирует отступы и выравнивание
    • Удаляет избыточные self и скобки
    • Исправляет порядок модификаторов доступа
    • Приводит к единому стилю объявления замыканий
  2. Гибкая настройка:

    Реклама
    • Более 50 правил форматирования
    • Поддержка конфигурационных файлов .swiftformat
    • Возможность создавать собственные правила
  3. Интеграция куда угодно:

    • Командная строка для ручного запуска
    • Плагины для 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"

Почему это стоит попробовать?

  1. Экономия времени — больше не тратьте часы на ручное форматирование
  2. Единый стиль — никаких споров в команде о том, где ставить скобки
  3. Чистый git history — меньше "стилевых" коммитов
  4. Focus на логике — сосредоточьтесь на том, что действительно важно

SwiftFormat особенно полезен:

  • Командам от 2+ разработчиков
  • Проектам с долгой историей разработки
  • При частых code review
  • Для поддержания качества opensource-проектов

Под капотом

Проект активно развивается с 2016 года, имеет более 8.5k звёзд на GitHub и поддерживает все актуальные версии Swift. Под капотом — мощный парсер Swift-кода и система правил, которые можно комбинировать как кубики LEGO.

# Показать все доступные правила
swiftformat --rules

# Информация о конкретном правиле
swiftformat --rule-info redundantSelf

Альтернативы

  • SwiftLint: Больше ориентирован на поиск проблем в коде, чем на форматирование
  • Крафтовые скрипты: Требуют поддержки и часто менее гибкие

Главное преимущество SwiftFormat — он не просто находит проблемы, а сразу их исправляет.

SwiftFormat — это не просто "ещё один инструмент", а настоящее спасение для команд, уставших от бесконечных правок стиля. Он берёт на себя всю рутинную работу по форматированию, позволяя сосредоточиться на решении реальных задач.

Попробуйте добавить его в свой workflow — первые результаты увидите уже после первого запуска. Ваш код станет чище, а жизнь — проще.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.