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 = 2Die 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.
