Cevap, her durum için tek bir uygun girinti karakteri olamayacağıdır. Karakterleri kullanarak biçimlendirme esnek değildir ve ekip içinde farklı stiller kullanıldığında çakışmaya neden olabilir.
Kodu farklı biçimleme stilleriyle kusursuz ve esnek bir şekilde biçimlendirmenin tek yöntemi, neredeyse herhangi bir girintili karakter olmadan yapmaktır. Bunu desteklediğini biliyorum tek kod editörü aşağıdaki örnekte kullanılan olanıdır:
Göstermek için sanal biçimlendirme aşağıdaki ekran görüntüsü bu girinti yöntemini kullanan bir XSLT editörü * dan (aynı zamanda kısa bir video var burada ). XSLT'deki her karakter, açıklama amaçlı olarak, içerikteki tek sekme veya boşluk karakterlerinin açıkça görülmesine izin vermek için sarı renkle vurgulanmıştır. Kod girintisi, sol kenar boşluğunu ayarlayan (beyaz arka planı olan) editörün oluşturma sistemi tarafından gerçekleştirilir.
Önde gelen tek boşluk karakterleri Kitaplar satırlarından önce gelir; çünkü bu, kod değil, değişmeyen metin içeriği olduğundan, bu boşluk karakterleri korunmalıdır.
Sanal biçimlendirme ile kaynak dosyadaki herhangi bir karakteri etkilemeden ortama ve girinti stiline uyacak girinti genişliğini seçersiniz. Aşağıda gösterildiği gibi kodun düzleştirilmiş bir görünümüne ihtiyacınız varsa girintiyi genişliğini 0 olarak bile ayarlayabilirsiniz:
Bunu boşluk karakter formatlamasıyla karşılaştırmak için, bir editörde sanal formatlama olmadan açılan aynı XSLT, o editörün otomatik formatlayıcısı tarafından şuna dönüştürülür:
Yukarıdaki ekran görüntüsündeki büyük boş sarı bloklar, geleneksel editörün formatlayıcısı tarafından eklenen boşluk karakterlerini açıkça göstermektedir. Ne yazık ki, bunlar artık gerçek içerikten ayırt edilemiyor, bu nedenle XSLT'nin bu sorunu düzeltmek için değiştirilmesi gerekiyor.
özet
XSLT muhtemelen aşırı bir durumdur, ancak bu ilke birçok programlama dili için geçerlidir: Karakterler içerik için kullanılmalı ve biçimlendirme konusunda aranan alternatif bir yöntem kullanılmalıdır.
** Açıklama: Sanal biçimlendirmeli XSLT Editör kendi şirketim tarafından geliştirilmiştir *