Zum Inhalt springen

EditorConfig für jedes SwiftPM-Paket

Warum jedes Swift Package eine .editorconfig-Datei beinhalten sollte, um konsistente Einrückung bei allen Mitwirkenden durchzusetzen.

Das unsichtbare Formatierungsproblem

Wenn mehrere Personen an einem Swift Package mitwirken, schleichen sich Einrückungs-Inkonsistenzen ein. Ein Mitwirkender nutzt 4 Leerzeichen, ein anderer Tabs, ein dritter 2 Leerzeichen. Pull Requests werden durch reine Whitespace-Änderungen unübersichtlich, und die Codebasis driftet in ein inkonsistentes Durcheinander. Die Lösung ist eine einzelne Datei, die in 30 Sekunden hinzugefügt ist.

Der .editorconfig-Standard

EditorConfig ist ein weit verbreiteter Standard zur Definition von Coding-Style-Einstellungen pro Projekt. Xcode respektiert .editorconfig-Dateien, sodass Mitwirkende automatisch die korrekten Einrückungseinstellungen bekommen, wenn sie das Projekt öffnen – keine manuelle Konfiguration, keine Dokumentation zum Lesen.

Hier ist die .editorconfig, die ich für jedes SwiftPM Package empfehle:

root = true

[*.swift]
indent_style = space
indent_size = 3

[*.{yml,yaml,json}]
indent_style = space
indent_size = 2

Die 3-Leerzeichen-Einrückung für Swift ist eine bewusste Wahl. Sie ist weniger verbreitet als 2 oder 4 Leerzeichen, trifft aber einen Sweet Spot: besser lesbar als 2 Leerzeichen bei verschachtelten Closures, weniger Verschwendung von horizontalem Platz als 4 Leerzeichen. Wenn du es einmal ausprobierst, fühlen sich die Standard-Optionen entweder zu eng oder zu weit auseinander an.

Warum das globale Einstellungen übertrifft

Jeder Entwickler hat seine eigenen Xcode-Einrückungspräferenzen global konfiguriert. Ohne .editorconfig werden diese globalen Einstellungen auf jedes Projekt angewandt, das geöffnet wird. Das bedeutet, ein Mitwirkender mit 4-Leerzeichen-Tabs wird Code stillschweigend umformatieren, wenn er eine Datei bearbeitet, selbst wenn die Projektkonvention anders ist.

Mit .editorconfig im Repository-Root überschreibt Xcode die globalen Einstellungen mit den projektspezifischen. Mitwirkende müssen nichts ändern – es funktioniert einfach.

Einführung

Lege diese Datei in dein Package-Root und committe sie. Das ist alles. Es gibt keinen Build-Schritt, keine Abhängigkeit, keine Konfiguration über die Datei selbst hinaus. Die meisten modernen Editoren (VS Code, Vim, Sublime Text) unterstützen ebenfalls EditorConfig, sodass auch Nicht-Xcode-Mitwirkende profitieren.

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