Odpowiedź jest taka, że dla każdej sytuacji nie może istnieć pojedynczy właściwy znak wcięcia. Formatowanie przy użyciu znaków jest nieelastyczne i może powodować konflikt, gdy w zespole stosowane są różne style.
Jedyną metodą bezbłędnego i elastycznego formatowania kodu za pomocą różnych stylów formatowania jest wykonanie go wirtualnie, to znaczy bez znaków wcięcia. Jedynym znanym mi edytorem kodu, który to obsługuje, jest ten użyty w poniższym przykładzie:
Aby zademonstrować wirtualny formatowanie , poniżej zrzut ekranu jest z edytora * XSLT, który korzysta z tej metody wcięcia (tam również krótki film tutaj ). Każdy znak w XSLT został podświetlony na żółto, w celach ilustracyjnych, aby umożliwić wyraźne widzenie jedynych znaków tabulacji lub spacji w treści. Wcięcie kodu jest obsługiwane przez system renderujący edytora dostosowujący lewy margines (który ma białe tło).
Jedyne wiodące znaki spacji poprzedzają wiersze Książki , ponieważ jest to dosłowna treść tekstu, a nie kod, te znaki spacji muszą zostać zachowane.
Dzięki wirtualnemu formatowaniu wybierasz szerokość wcięcia, aby dopasować je do środowiska i stylu wcięcia, nie wpływając na żadne znaki w pliku źródłowym. Możesz nawet ustawić szerokość wcięcia na 0, jeśli potrzebujesz spłaszczonego widoku kodu, jak pokazano poniżej:
Aby przeciwstawić to formatowaniu znaków spacji, ten sam XSLT otwarty w edytorze bez formatowania wirtualnego jest przekształcany przez autoformatator tego edytora w następujący sposób:
Większe puste żółte bloki na powyższym zrzucie ekranu wyraźnie pokazują znaki spacji dodane przez formatyzator konwencjonalnego edytora. Niestety, nie można ich teraz odróżnić od prawdziwej treści, dlatego XSLT musiałoby zostać zmodyfikowany, aby rozwiązać ten problem.
Podsumowanie
XSLT jest prawdopodobnie skrajnym przypadkiem, ale ta zasada obowiązuje w wielu językach programowania: Znaki powinny być używane w treściach i alternatywnej metodzie poszukiwanej, jeśli chodzi o formatowanie.
** Ujawnienie: Edytor XSLT z wirtualnym formatowaniem został opracowany przez moją własną firmę *