Интеграция DSL с T4 и указание ошибок скрипта - PullRequest
0 голосов
/ 23 июня 2010

все.У меня сложный вопрос по T4, и я надеюсь, что кто-то может помочь.

Я создал DSL, подобный SQL, и сценарии сохраняются в файлах '.satsql' в моих проектах на C #, например;

// contents of myqueries.satsql
SELECT <column t1.Id> FROM <table mytable t1>

У меня есть файл .tt, который загружает файл и пытается его проанализировать.Если это не удается, я хочу добавить ошибку в список ошибок Visual Studio, например так:

myqueries.satsql (1,8) error: unknown column 'xid' on table 't3'.
myqueries.satsql (2,9) error: bad reference: pid.

Когда пользователь нажимает на ошибку, VS должен открыть файл 'myqueries.satsql' и указатьнаведите курсор на соответствующую строку и символ, точно так же, как это происходит с ошибками в C #.

T4 уже предоставляет метод void TextTransform.Error(string), но это, похоже, не дает мне возможности установить файл, строку исимвол, как ошибки C #.

Кто-нибудь знает, как файл T4 может сообщить об ошибке в другом файле, а не сам файл T4?

Большое спасибо,

Стив Купер.

1 Ответ

1 голос
/ 13 июля 2010

Вы можете использовать коллекцию TextTransformation.Errors для сообщения об ошибках с информацией о файле и номере строки.

...