代码之家  ›  专栏  ›  技术社区  ›  Steve Cooper

将DSL与T4集成,并指示脚本错误

  •  0
  • Steve Cooper  · 技术社区  · 14 年前

    每个人。我有一个高级的T4问题,我希望有人能帮上忙。

    我创建了一个类似于SQL的DSL,脚本保存在我的C项目中的“.satsql”文件中,就像这样;

    // 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文件本身?

    多谢,

    Steve Cooper。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Oleg Sych    14 年前

    可以使用textformation.errors集合报告包含文件和行号信息的错误。