La réponse est qu'il ne peut y avoir aucun caractère d'indentation approprié pour chaque situation. La mise en forme à l'aide de caractères est inflexible et peut entraîner des conflits lorsque différents styles sont utilisés au sein d'une équipe.
La seule méthode permettant de formater le code de manière parfaite et flexible avec différents styles de formatage consiste à le faire virtuellement, c'est-à-dire sans caractères d'indentation. Le seul éditeur de code que je connaisse qui supporte ceci est celui utilisé dans l'exemple ci-dessous:
Pour illustrer le formatage virtuel , la capture d'écran ci-dessous provient d'un éditeur XSLT * qui utilise cette méthode d'indentation (une courte vidéo est également disponible ici ). Tous les caractères du XSLT ont été surlignés en jaune, à des fins d’illustration, afin de permettre aux seuls caractères de tabulation ou d’espace du contenu d’être clairement vus. L'indentation du code est gérée par le système de rendu de l'éditeur en ajustant la marge gauche (qui a un fond blanc).
Le seul caractère d'espace précèdent les livres lignes, parce que c'est le contenu du texte littéral, pas de code, doivent être conservés ces espaces.
Avec le formatage virtuel, vous choisissez la largeur d’indentation en fonction de l’environnement et du style d’indentation sans affecter les caractères du fichier source. Vous pouvez même définir la largeur d'indentation sur 0, si vous avez besoin d'une vue aplatie du code, comme indiqué ci-dessous:
Pour mettre cela en contraste avec le formatage des caractères d'espacement, le même XSLT ouvert dans un éditeur sans formatage virtuel est transformé par le formatage automatique de cet éditeur en ceci:
Les blocs jaunes plus grands de la capture d'écran ci-dessus indiquent clairement les espaces ajoutés par le formateur de l'éditeur classique. Malheureusement, ceux-ci ne peuvent désormais plus être distingués du contenu réel, il faudrait donc modifier le XSLT pour corriger ce problème.
Sommaire
XSLT est peut-être un cas extrême, mais ce principe est valable pour de nombreux langages de programmation: les caractères doivent être utilisés pour le contenu et une méthode alternative doit être recherchée pour le formatage.
** Divulgation: l'éditeur XSLT avec formatage virtuel a été développé par ma propre entreprise *