>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML
Swift

SwiftFormat: Automatyczny stylista dla Twojego kodu Swift

8841 gwiazdki

SwiftFormat logo

Kiedy kod sam się formatuje

Wyobraź sobie: w zespole pięciu deweloperów każdy pisze kod po swojemu. Jedni dodają spacje przed nawiasami, inni nie. Ktoś woli dzielić parametry funkcji na wiele linii, a ktoś inny pisze wszystko w jednej linii. Efektem jest patchworkowy codebase, a przegląd kodu zamienia się w niekończące się dyskusje o stylu.

SwiftFormat rozwiązuje dokładnie ten problem — narzędzie do automatycznego formatowania kodu Swift. Nie tylko dodaje spacje i wcięcia, ale przede wszystkim sprowadza kod do jednolitego standardu, naprawiając setki drobnych niespójności.

Co potrafi SwiftFormat?

  1. Głęboka praca nad stylem:

    • Poprawia wcięcia i wyrównanie
    • Usuwa zbędne self i nawiasy
    • Naprawia kolejność modyfikatorów dostępu
    • Unifikuje styl deklaracji domknięć
  2. Elastyczna konfiguracja:

    • Ponad 50 reguł formatowania
    • Wsparcie dla plików konfiguracyjnych .swiftformat
    • Możliwość tworzenia własnych reguł
  3. Integracja w dowolnym miejscu:

    • Linia poleceń do ręcznego uruchomienia
    • Wtyczki dla Xcode, VSCode, Sublime Text
    • Git pre-commit hooks
    • Wsparcie CI/CD przez 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))
}

Jak zacząć?

Instalacja przez Homebrew:

brew install swiftformat

Podstawowe użycie:

# Форматировать все файлы в текущей директории
swiftformat .

# Только проверить стиль без изменений (линтер)
swiftformat --lint .

W przypadku projektów zaleca się dodanie SwiftFormat jako kroku budowania w Xcode lub pre-commit hooka w Git. Dzięki temu kod będzie automatycznie formatowany przed każdym commitem.

Elastyczność konfiguracji

SwiftFormat rozumie, że każdy projekt ma swoje wymagania stylistyczne. Możesz:

  • Wyłączyć poszczególne reguły przez --disable
  • Utworzyć plik .swiftformat w korzeniu projektu
  • Konfigurować zachowanie dla konkretnych plików za pomocą komentarzy

Przykład konfiguracji:

# .swiftformat
--indent 4
--disable trailingCommas
--enable isEmpty
--header "Copyright (c) {year} MyCompany"

Dlaczego warto spróbować?

  1. Oszczędność czasu — nie musisz już spędzać godzin na ręcznym formatowaniu
  2. Spójny styl — koniec z dyskusjami w zespole o tym, gdzie postawić nawias
  3. Czysta historia git — mniej commitów "stylistycznych"
  4. Skupienie na logice — koncentruj się na tym, co naprawdę ważne

SwiftFormat jest szczególnie przydatny dla:

  • Zespołów liczących 2+ deweloperów
  • Projektów z długą historią rozwoju
  • Częstych przeglądów kodu
  • Utrzymywania jakości projektów open source

Pod maską

Projekt jest aktywnie rozwijany od 2016 roku, ma ponad 8,5 tys. gwiazdek na GitHubie i wspiera wszystkie obecne wersje Swifta. Pod maską kryje się potężny parser kodu Swift oraz system reguł, który można łączyć jak klocki LEGO.

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

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

Alternatywy

  • SwiftLint: Bardziej skupiony na znajdowaniu problemów w kodzie niż na formatowaniu
  • Ręczne skrypty: Wymagają konserwacji i często są mniej elastyczne

Główną zaletą SwiftFormat jest to, że nie tylko znajduje problemy — natychmiast je naprawia.

SwiftFormat to nie jest "kolejne narzędzie" — to prawdziwe ratowanie życia dla zespołów zmęczonych niekończącymi się poprawkami stylu. Zajmuje się całą rutynową pracą formatowania, pozwalając skupić się na rozwiązywaniu prawdziwych problemów.

Spróbuj dodać go do swojego workflow — rezultaty zobaczysz już po pierwszym uruchomieniu. Twój kod stanie się czystszy, a życie — łatwiejsze.