Hieronder vind je mijn (persoonlijke) WordPress EditorConfig die ik gebruik voor WordPress core, thema en plugin development. Je mag hem zomaar gratis en voor niets kopiëren, want dat doen we als developers nogal makkelijk, maar ik geef graag wat extra toelichting waarom ik deze instellingen als mijn standaard code styling hanteer.
Wat is EditorConfig?
Als we het aan ChatGPT vragen krijgen we dit antwoord: “.editorconfig
is een bestandsformaat en een verzameling tools die bedoeld zijn om consistentie te behouden in coderingsstijlen tussen verschillende editors en IDE’s (Integrated Development Environments). Het doel is om de basisinstellingen van de editor, zoals tabs versus spaties of welke karakterset te gebruiken, consistent te houden over meerdere ontwikkelomgevingen en voor alle ontwikkelaars van een project.”
En dat vat het inderdaad goed samen. De officiële website van EditorConfig met alle bijbehorende voorbeelden, documentatie en IDE plugins vind je hier.
Mijn (persoonlijke) EditorConfig instellingen
Zoals beloofd wat meer toelichting over mijn persoonlijke EditorConfig instellingen, gebaseerd op WordPress development.
# Filip Van Reeth's .editorconfig
root = true
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
indent_style = space
indent_size = 2
# WordPress prefers,
# tabs for PHP files and,
# spaces for other types
[*.php]
indent_style = tab
# Specific file type(s)
[{.jshintrc,*.json,*.yml}]
indent_size = 2
# (S)CSS
[*.css, *.scss]
indent_size = 2
# JavaScript
[*.js]
indent_size = 2
Bashroot
root = true
Bashroot
geeft aan of dit het hoogste niveau .editorconfig
bestand is. Dit betekent dat wanneer een editor een .editorconfig
-bestand vindt met root=true, deze stopt met het zoek naar andere .editorconfig
-bestanden in hogere mappen. Een must-use instelling voor WordPress thema en plugin development.
[*]
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
indent_style = space
indent_size = 2
Bash[*]
staat voor een wildcard die overeenkomt met alle bestanden. Je kan specifieke patronen gebruiken om alleen bepaalde bestandstypen of -namen te targeten.
charset = utf-8
– Dit zet de standaard character set naar UTF-8.end_of_line = lf
– Zet de line ending naar LF (Unix-style line endings), wat de standaard is voor de meeste code repositories.insert_final_newline = true
– Zorgt ervoor dat er een (nieuwe) lijn aanwezig op het einde van je file.trim_trailing_whitespace = true
– Deze instelling zorgt ervoor dat extra spaties of tabs aan het einde van een lijn, maar voor een ‘newline’ character worden verwijderd. Deze instelling is optioneel maar speelt een belangrijke rol tijdens code reviews.indent_style = space
– Dit is een ‘gevoelige’ instelling die al eindeloze discussies hebben teweeggebracht tussen developers. Naar mijn mening is de keuze vrij eenvoudig: ‘Volg wat code standaarden je voorschrijven’ die je gebuikt. Ik verkies hier de algemene standaard instelling die de meeste programmeertalen hanteren zijndespaces
.indent_size = 2
– Ook deze instelling is volgens de algemene en gemiddelde programmeer standaarden.
[*.php]
Deze notatie is van toepassing voor alle bestanden met de .php
extensie.
[*.php]
indent_style = tab
BashNu hoor ik de PHP developers denken: “De PHP coding standaard PSR-2 of PSR-12 hanteert spaces
in plaats van tabs
.”. Je hebt volledig gelijk maar de WordPress Coding Standards beschrijft het gebruik van tabs. Vandaar de instelling indent_style
= tab.
Noot: voor puur PHP development (niet WordPress gerelateerde code) maak ik persoonlijk gebruik van de PSR-12 coding style standaard in combo met PSR-4 voor autoloading.
Overige instellingen
# Specific file type(s)
[{.jshintrc,*.json,*.yml}]
indent_size = 2
# (S)CSS
[*.css, *.scss]
indent_size = 2
# JavaScript
[*.js]
indent_size = 2
BashHier hanteer ik terug de algemene specifieke code style standaard en dit omdat er voor CSS en JavaScript geen ‘echte’ vastgelegde coding style standaarden zijn bepaald. Om toch op team niveau een bepaalde standaard te hanteren opteer ik voor Prettier, een opinionated code formatter.