Loading…

О проекте Онлайн-форматер Swift

Писать Swift-код, который **компилируется**, легко. Писать Swift-код, который **красив, единообразен и готов к ревью**, сложнее. Этот онлайн-форматер Swift использует правила в стиле SwiftFormat для нормализации отступов, пробелов и переносов строк, чтобы ваши `.swift` файлы оставались чистыми в Xcode, Swift Playgrounds и CI-пайплайнах.

Ключевые особенности форматера Swift

  • **Очистка в один клик** отступов, пробелов и скобок в коде Swift
  • **Настраиваемый размер отступа** с помощью ползунка *Размер отступа* (1–8 пробелов)
  • **Управление переносом / длиной строки** для удержания длинных выражений в предпочитаемой ширине столбца
  • Поддерживает стандартные `.swift` исходные файлы и вставленные фрагменты
  • Отлично подходит для проектов **iOS, macOS, watchOS, tvOS и серверного Swift**
  • Использует движок в стиле SwiftFormat для идиоматического вывода Swift
  • Идемпотентное форматирование – многократный запуск дает одинаковый результат
  • Аккаунт не требуется – просто вставьте, отформатируйте и скопируйте очищенный результат

🛠️ Как использовать Swift Formatter for swift-formatter

1

1. Вставьте или загрузите ваш код Swift

📥 Вставьте код Swift прямо в редактор или перетащите файл `.swift`. Инструмент оптимизирован для типичных исходников Swift в стиле Xcode.

2

2. Установите отступы и длину строки

📏 Используйте слайдер **Размер отступа** чтобы выбрать количество пробелов для каждого уровня отступа, и настройте **Перенос / Длина строки** чтобы контролировать обрыв длинных строк (или установите `0` чтобы отключить форматирование переноса).

3

3. Нажмите «Форматировать»

⚡ Нажмите кнопку **Форматировать** чтобы применить правила в стиле SwiftFormat. Форматировщик нормализует отступы, пробелы вокруг `:` и операторов, и переносит длинные строки согласно вашим настройкам.

4

4. Проверьте и скопируйте результат

🔍 Сравните оригинальную и отформатированную версии. Когда результат вас устроит, скопируйте отформатированный Swift обратно в Xcode, Swift Playground или ваш Git коммит.

Технические характеристики

Движок форматирования и стиль

Инструмент следует общим соглашениям SwiftFormat для поддержания единообразия кодовой базы между файлами и разработчиками.

АспектПоведениеПримечания
ЯзыкSwiftЛучше всего работает с исходными файлами Swift 5+.
ОтступыНастраиваемые пробелы на уровеньКонтролируется опцией **Размер отступа** (1–8).
Перенос строкОпциональная колонка переносаКонтролируется **Перенос / Длина строки** (0–120; `0` = без переноса).
ПробелыНормализация вокруг `:` и операторовУлучшает читаемость и единообразие при ревью кода.
Идемпотентный выводОдинаковый ввод → одинаковый выводБезопасно запускать многократно без изменения форматирования.

Поддерживаемый ввод и ограничения

Сфокусирован на реальных исходных файлах Swift, используемых в проектах для платформ Apple и серверного Swift.

ПараметрЗначение / ПоведениеПримечания
Расширения файлов.swiftСтандартные исходные файлы Swift.
MIME-типыtext/x-swiftИспользуется внутри для обнаружения редактором и зоной загрузки.
Максимальный размер ввода≈ 2 МБ исходного кодаОчень большие файлы лучше форматировать через локальный SwiftFormat в CI.
Расширение вывода.swiftОтформатированное содержимое лучше сохранять как исходный файл Swift.

Проверка и Ошибки

Форматировщик ожидает синтаксически корректный Swift. Если ввод неполный или содержит серьёзные синтаксические ошибки, он может завершиться неудачей или вернуть сообщение об ошибке вместо отформатированного вывода.

Альтернативы Командной Строки с SwiftFormat

Хотите тот же стиль в Xcode, CI или pre-commit хуках? Используйте SwiftFormat напрямую:

macOS (Homebrew)

Установите SwiftFormat через Homebrew

brew install swiftformat

Добавляет CLI `swiftformat` в вашу систему.

Форматирование одного файла Swift

swiftformat MyViewController.swift

Перезаписывает файл на месте, используя стандартные правила SwiftFormat.

Форматирование всего проекта Xcode

swiftformat .

Рекурсивно форматирует все файлы `.swift` в текущей директории.

Конфигурация на уровне проекта

Использование пользовательской конфигурации

swiftformat . --config .swiftformat

Применяет специфичные для команды правила, хранящиеся в файле конфигурации `.swiftformat`.

Интеграция с Git pre-commit

swiftformat . && git commit

Запускайте SwiftFormat перед каждым коммитом, чтобы поддерживать чистоту основной ветки.

Используйте этот онлайн-инструмент для быстрых разовых очисток, затем отразите тот же стиль в вашем репозитории с помощью SwiftFormat и общего файла `.swiftformat`.

Практические Сценарии Использования Swift Форматировщика

Разработка Приложений для iOS и macOS

Сохраняйте код, насыщенный UIKit, SwiftUI и Combine, читаемым и единообразным во всех ветках функциональности.

  • Стандартизируйте форматирование контроллеров представления, моделей представления и сервисов перед код-ревью.
  • Очищайте черновой или прототипный Swift-код перед копированием в рабочие цели.
  • Выравнивайте отступы и переносы сложных иерархий SwiftUI представлений.
struct ContentView: View {
  var body: some View {
    VStack {
      Text("Hello")
      Button("Tap me") {
        print("Tapped")
      }
    }
  }
}

Серверный Swift (Vapor, Hummingbird и др.)

Сделайте обработчики API и код маршрутизации более удобными для просмотра и проверки.

  • Переформатируйте объявления маршрутов и промежуточного ПО, чтобы сложные цепочки было легко отслеживать.
  • Очищайте структуры кодирования/декодирования JSON с длинными списками свойств.
  • Обеспечьте единообразный перенос длинных вызовов SQL или HTTP-клиентов внутри Swift-кода.
app.get("hello") { req async throws -> String in
    "Hello, world!"
}

Обучение Swift

Покажите студентам, как выглядит идиоматический Swift, и уменьшите «шум стиля» в упражнениях.

  • Нормализуйте Swift-код перед публикацией примеров в слайдах или документации.
  • Очищайте студенческие работы, чтобы сосредоточиться на логике, а не на пробелах и отступах.
  • Продемонстрируйте, как хорошее форматирование улучшает читаемость без изменения поведения.
func fibonacci(_ n: Int) -> Int {
    if n < 2 { return n }
    return fibonacci(n - 1) + fibonacci(n - 2)
}

❓ Frequently Asked Questions

Что именно меняет этот Swift Formatter?

Форматтер корректирует **отступы, пробелы и переносы строк** в соответствии с соглашениями Swift-стиля. Он не изменяет логику вашего кода — только его расположение.

📏Что выбрать для Wrap / Длина строки?

Обычно выбирают от **80 до 100 символов** в зависимости от команды и ширины экрана. Используйте меньшее значение для узких макетов (например, разделенный вид Xcode) и большее, если ваша команда предпочитает широкие строки. Установите `0`, если не хотите переносов на основе длины строки.

🧹Это замена SwiftLint?

Нет. Форматтер фокусируется на **макете и стиле** (отступы, переносы, пробелы), а SwiftLint — на **правилах линтинга и потенциальных проблемах** (неиспользуемый код, именование, сложность). Многие команды используют оба инструмента вместе.

🔒Безопасно ли вставлять рабочий Swift-код сюда?

Как правило, избегайте вставки высокочувствительного кода (например, проприетарных алгоритмов или секретов) в любые онлайн-инструменты. Для конфиденциальных проектов предпочтительнее запускать SwiftFormat локально или в вашей CI-системе с приватной конфигурацией.

Можно ли запускать этот форматтер автоматически при каждом коммите?

Да — используйте **SwiftFormat** в вашем репозитории (например, через Git pre-commit hook, фазу сборки Xcode или задачу CI) для автоматического применения единого стиля. Этот онлайн-инструмент идеален для быстрых проверок и небольших фрагментов.

Pro Tips

Best Practice

Договоритесь с командой о едином **Размере отступа** и **Длине строки / Переносе**, затем отразите эти значения как в этом инструменте, так и в вашей конфигурации `.swiftformat`.

Best Practice

Запускайте форматирование в пул-реквестах, чтобы сосредоточить код-ревью на логике и архитектуре, а не на спорах о пробелах.

Best Practice

Используйте форматирование для сгенерированного кода Swift (например, из инструментов кодогенерации), чтобы он выглядел так же чисто, как и написанный вручную код.

Best Practice

Сочетайте этот форматировщик с функцией Xcode «Переформатировать отступы» только для быстрой локальной настройки; используйте SwiftFormat в CI для поддержания по-настоящему единообразного стиля.

Additional Resources

Other Tools