Zum Inhalt springen

Xcode 15: Parameter auf mehrere Zeilen aufteilen

Xcode 15 fügt eine eingebaute Aktion hinzu, um lange Funktionsparameterlisten von einer einzelnen Zeile auf mehrere Zeilen umzuformatieren.

Das Formatierungsproblem

Lange Funktionsaufrufe und -deklarationen mit vielen Parametern sind eines der häufigsten Lesbarkeitsprobleme in Swift-Code. Man endet mit Zeilen, die weit über jede vernünftige Spaltengrenze hinausgehen:

func configureView(title: String, subtitle: String, icon: Image, backgroundColor: Color, isEnabled: Bool, action: @escaping () -> Void) {

Das manuell in mehrere Zeilen umzubrechen ist mühsam. Du musst den Cursor positionieren, Zeilenumbrüche einfügen, jeden Parameter einrücken und sicherstellen, dass die schließende Klammer korrekt ausgerichtet ist.

Die neue Aktion in Xcode 15

Xcode 15 führt eine „Format to Multiple Lines”-Aktion ein, die das automatisch erledigt. Setze deinen Cursor auf einen Funktionsaufruf oder eine Deklaration mit mehreren Parametern, und Xcode bietet an, es umzuformatieren:

The Format to Multiple Lines option in Xcode 15

Das Ergebnis ist sauber formatiert mit einem Parameter pro Zeile:

func configureView(
   title: String,
   subtitle: String,
   icon: Image,
   backgroundColor: Color,
   isEnabled: Bool,
   action: @escaping () -> Void
) {

Du findest diese Aktion per Rechtsklick auf die Funktionssignatur unter Refactor oder über das Editor-Menü. Es funktioniert sowohl bei Funktionsdeklarationen als auch bei Aufrufstellen.

Wann man es einsetzt

Das ist am nützlichsten direkt nach dem Schreiben einer neuen Funktion oder dem Hinzufügen von Parametern zu einer bestehenden. Anstatt beim Schreiben manuell zu formatieren, kannst du alles in eine Zeile schreiben und dann den Formatierer in einer einzigen Aktion anwenden. Es hilft auch beim Code-Review, wenn jemand anderes lange einzeilige Signaturen hinterlassen hat – markieren und umformatieren ohne manuelles Editieren.

Die umgekehrte Operation (mehrere Zeilen zurück in eine zusammenfalten) ist derzeit nicht verfügbar, aber diese Richtung wird seltener benötigt.

War das hilfreich? Folge mir auf Bluesky und Mastodon für mehr Swift-Tipps und Indie-Dev-Updates.