Edytor szablonów tekstowych T4
Dlaczego Visual Studio nie koloruje składni?
Visual Studio ma wbudowana obsługę szablonów T4, szablony T4 można nawet debugować. Jest jednak jeden drobny problem, problem wynikający z przyzwyczajeń. Przyzwyczailiśmy się do kolorowych edytorów, narzędzi podpowiadających składnię i oczekujemy, że takie udogodnienia będą wszędzie. I tu niemiła niespodzianka - domyślnie Visual Studio nie koloruje składni szablonów T4. Nie trzeba chyba tłumaczyć o ile trudniejsze i mniej przyjemne staje się pisanie kodu bez żadnych narzędzi. Wystaczy otworzyć sobie zwykły notatnik Windows i spróbować napisać choćby prostą aplikację. Cały kod wygląda tak samo, nie odróżnimy słów kluczowych od zmiennych, popełnimy mnóstwo literówek. Polecam przeprowadzić taki eksperymrnt.
A właściwie dlaczego Visual Studio tego nie robi sam? Dlaczego zabrakło tak ważnej funkcji? Nie ma oficjalnych informacji, ale zapewne nie starczyło na to czasu i środków. Podejrzewam, że Intellisense i kolorowanie składni pojawi się w jednej z przyszłych wersji Visual Studio. Co możemy teraz zrobić? Pierwszym krokiem może być zainstalowanie sobie jakiegoś dodatku, który nasz kod pokoloruje i w wielu momentach podpowie.
Tangible T4 Editor
Jednym z rozwiązań jest edytor T4 grupy Tangible Engineering.
Pobierz edytor szablonów T4Edytor posiada większość podstawowych funkcji, które powinien zawierać szanujący się edytor. Przede wszystkim koloruje składnię. Zamiast takiego szarego kodu...
<#@ template debug="false" hostspecific="false" language="C#" #> <#@ output extension=".cs" #> public enum States { <#for (int i = 0, bitValue = 1; i < 8; i++, bitValue <<= 1){#> Bit<#=i.ToString() #> = <#=bitValue#>, <#}#> }
...możemy otrzymać znacznie przyjemniejszy i bardziej czytelny fragment:
<#@ template debug="false" hostspecific="false" language="C#" #> <#@ output extension=".cs" #> public enum States { <#for (int i = 0, bitValue = 1; i < 8; i++, bitValue <<= 1){#> Bit<#=i.ToString() #> = <#=bitValue#>, <#}#> }
Oprócz kolorowania dostajemy w pakiecie funkcję podpowiadania składni, zarówno podczas pisania znaczników, atrybutów, jak i podczas pisania funkcji i kodu:
Oprócz niezaprzeczalnej wygody z powyższych funkcji warto wspomnieć o pewnych niedogodnościach. Czego w edytorze brak? Mam na myśli darmową wersję, bo istnieje również wersja płatna. Pomimo tego, że twórcy chwalą się parsowaniem i walidacją fragmentów kodu, nie jest to do końca prawda. Wiele błędów wychodzi dopiero na etapie kompilacji. Nie ujrzymy słynnych czerwonych wężyków podkreślających miejsca z błędami składniowymi. Pamiętajmy jednak, że nie jest to w takim edytorze proste. Różne fragmenty kodu mogą się bowiem generować w kilku miejscach i dopiero całość może tworzyć coś spójnego. Szablony T4 dają dużą swobodę. Duża swoboda to duże pole do nadużyć i błędów. Przypomnijmy sobie ile czasu zajęło napisanie Intellisense do języka JavaScript i jak on działa. Robi co może, ale wszystkiego nie załatwi.
Podsumowanie
Reasumując, dopóki Visual Studio nie będzie miał wbudowanych mechanizmów nowoczesnego edytora, jesteśmy zdani na zewnętrzne dodatki. Postaram się w przyszłości rozszerzyć ten wpis o opis innych edytorów lub dodać więcej informacji na temat T4 Tangible Editor. Gdy edytorów będzie więcej, może pokuszę się o jakieś porównanie i zestawienie funkcji. Myślę, że na ten czas rozsądniej będzie umieścić kilka wpisów dotyczących samych szablonów T4.
Brak komentarzy - bądź pierwszy