A resposta é que não pode haver um único caractere de indentação adequado para cada situação. A formatação usando caracteres é inflexível e pode causar conflitos quando estilos diferentes são usados em uma equipe.
O único método para formatar o código de maneira impecável e flexível com diferentes estilos de formatação é fazê-lo virtualmente, ou seja, sem nenhum caractere de recuo. O único editor de código que conheço que suporta isso é o usado no exemplo abaixo:
Para demonstrar a formatação virtual , a captura de tela abaixo é de um editor XSLT * que usa esse método de indentação (também há um pequeno vídeo aqui ). Cada caractere no XSLT foi destacado em amarelo, para fins ilustrativos, para permitir que os únicos caracteres de tabulação ou espaço no conteúdo sejam vistos claramente. O recuo do código é tratado pelo sistema de renderização do editor, ajustando a margem esquerda (que tem um fundo branco).
Os únicos caracteres de espaço à esquerda precedem as linhas Livros , porque esse é o conteúdo literal do texto, não o código; esses caracteres de espaço devem ser preservados.
Com a formatação virtual, você escolhe a largura do recuo para se adequar ao ambiente e ao estilo do recuo sem afetar nenhum caractere no arquivo de origem. Você pode até definir a largura do recuo como 0, se precisar de uma visualização nivelada do código, como mostrado abaixo:
Para contrastar isso com a formatação de caracteres de espaço, o mesmo XSLT aberto em um editor sem formatação virtual é transformado pelo formatador automático desse editor para:
Os blocos amarelos em branco maiores na captura de tela acima mostram claramente os caracteres de espaço adicionados pelo formatador do editor convencional. Infelizmente, agora eles não podem ser distinguidos do conteúdo real, portanto o XSLT precisaria ser modificado para corrigir esse problema.
Sumário
O XSLT é possivelmente um caso extremo, mas esse princípio é válido para muitas linguagens de programação: Os caracteres devem ser usados para o conteúdo e um método alternativo procurado quando se trata de formatação.
** Divulgação: o XSLT Editor com formatação virtual foi desenvolvido por minha própria empresa *