Table des matières
Préambule
Comment indentez-vous votre code ? Utilisez-vous la barre espace du clavier, ou bien la touche de tabulation (tab) ? Préférez-vous utiliser 2 ou 4 espaces, le cas échéant ?
Comment ça, vous n'indentez pas votre code ? Hérétique !
Figurez-vous que ces questions ont longtemps été sujet de à nombreuses discussions. Prenons alors quelques instants pour déterminer ensemble quelles sont les bonnes pratiques pour indenter proprement notre code.
La Bible de la tabulation
Je n'invente rien : il existe bien un site qui relate cette histoire : https://www.opimedia.be/DS/languages/tabs-vs-spaces/.
Ce site répertorie toutes les références d'un maximum de langages de programmation où nous retrouvons des recommandations concernant la mise en forme de notre code.
Je vous propose alors une brève synthèse de ce qu'on y retrouve.
Espace vs tabulation : qui est le grand gagnant ?
Quasiment toutes les références sont unanimes : on utilise les espaces !
Pour cause, certains langages sont tout simplement hermétiques face à l'utilisation de la tabulation, comme le langage Haskell :
Tabs are illegal. Use spaces for indenting.
Et d'autres références prennent le temps d'expliquer pourquoi il est préférable de ne pas utiliser la tabulation (même si celle-ci est autorisée), comme Modern Fortran: Style and Usage où nous retrouvons la mention suivante :
Do not use "hard" tabs. Tabulation characters, "tabs," can be a convenient way to insert multiple columns of white space into source code with a single keystroke. [...] Some compilers may treat a tab as a single character, while others might treat it as representing multiple blank characters. This is a problem when calculating line length limits and when tabs appear in character literals.
Cependant, on retrouve un cas de figure où il est obligatoire d'utiliser la tabulation : il s'agit des Makefiles. En effet, si on n'utilise pas de tabulation, on se retrouve avec une erreur de syntaxe : missing separator (did you mean TAB instead of 8 spaces?). Stop..
Combien d'espaces ?
Partant du principe que nous souhaitons alors utiliser des espaces : c'est bien, mais on en met combien ?
Là où, habituellement, une tabulation équivaut à 8 espaces (comme nous pouvons déjà le constater avec Vim), on voit que le nombre d'espaces varie d'un langage à un autre dans l'usage courant. Par exemple, on retrouve souvent 4 espaces en Python, 2 ou 4 en C, ou bien 2 espaces dans un fichier YAML ou HTML.
En clair, la réponse est simple : il n'y a pas de choix universel. Certains langages se présentent mieux avec 2 espaces, d'autres avec 4. Cela dépend alors de vous (et des éventuelles conventions d'un langage donné) !
Cas de VSCode/VSCodium
Il existe deux façons de paramétrer la gestion de la tabulation/des espaces sur VSCode/VSCodium.
Sans extension
Vous pouvez modifier le fichier .vscode/settings.json à la racine de votre projet en ajoutant, par exemple, les instructions suivantes :
{
"editor.insertSpaces": true,
"editor.tabSize": 4,
"[makefile]": {
"editor.insertSpaces": false,
"editor.detectIndentation": false,
"editor.tabSize": 8,
},
}
Avec une extension
Si vous avez installé l'extension EditorConfig for VS Code, vous pouvez créer un fichier .editorconfig à la racine de votre projet en spécifiant des règles concernant la mise en forme de votre code. Voici un exemple de fichier .editorconfig :
# EditorConfig is awesome: https://EditorConfig.org
# top-most EditorConfig file
root = true
[*]
indent_style = space
indent_size = 4
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[Makefile]
indent_style = tab
indent_size = 8
Conclusion
De ce fait, vous l'avez compris : il n'existe pas d'unique solution.
Pour vous conformer à l'usage courant : utilisez, de préférence, les espaces quand vous codez, et mettez-vous d'accord avec votre équipe pour choisir le nombre d'espaces pour les indentations selon les types de fichier.