Editorconfig FTW

In PhpStorm 2019.2 wird nun endlich die Unterstützung von .editorconfig-Dateien serienmäßig. Bisher nur als Plugin verfügbar, kann man die Einstellungen für den CodeStyle nun als Textdatei versioniert in das Repository aufnehmen, und PhpStorm erkennt und befolgt die Regeln by default. Das war sowas von überfällig! Als nächstes bitte die Konfiguration von Inspections – wenn die nicht das ganze Team identisch eingestellt hat machen Inspections nur halb so viel Sinn!

Wie kann ich das nun nutzen?

Step 1: CodeStyle-Konfiguration exportieren

Über das Zahnrad-Icon kann man seine aktuelle Config exportieren

Man wird dann gefragt, wo man die Datei speichern möchte – idealerweise wählt man das root-Verzeichnis aus. Commit. Push. Fertig.

Step 2: Konfiguration anpassen / kürzen

Einstellungen mit IntelliJ-Kennung “ij_” gelten netterweise auch für die kleine Tochter PhpStorm

Die Konfigurationsdatei, die entsteht ist riesig. 797 Zeilen entstanden bei mir. Es wurde schließlich die komplette Konfiguration für alle Dateitypen gedumpt, und zwar inkl. aller PhpStorm-Besonderheiten, die im Standard nicht vorgesehen sind. Dies kann man dann je nach Gusto noch auf die wesentlichen Einstellungen anpassen, oder man belässt es “as is”.

Step 3: There is no Step 3

Da die Standardeinstellung ist: “Beachte die .editorconfig-Settings”, wirkt das bei allen Kollegen, sobald sie sich Deine Änderungen gezogen haben (und sie auf 2019.2 oder neuer aktualisiert haben). Ab sofort formatiert jeder Kollege identisch, es gibt keine Edit-Wars mehr.

MIND=BLOWN!

Wem das noch nicht reicht: Mittels Editorconfig kann man auch verschiedene Codestile in einem Projekt benutzen. Was zuerst bescheuert klingt hat sinnvolle Anwendungszwecke. Wir haben etwa ein Projekt, in dem wir Legacy-Code in etwas abgehangenem CodeStyle mit snake_case und anderen nicht zu PSR-12 passenden Regeln haben. Das kann man nicht einfach umformatieren, stattdessen modernisieren wir den Code stückweise in modularen, testbaren und standardisiert formatierten Code.

Damit haben wir im selben Projekt aber zwei Verzeichnisstrukturen, einmal mit altem, und einmal mit PSR-12 Format. Das hat PhpStorm bisher nicht unterstützt, weswegen wir immer von Hand in den Settings switchen mussten. Superlästig!

Editorconfig wirkt aber pro Directory rekursiv, und kann wie CSS Werte überschreiben. So haben wir jetzt einfach zwei .editorconfig-Dateien, und es funktioniert einfach. MAGIC!

About the author

People Enabler at CHECK24