我正在使用T4 Text模板进行自动代码生成,但是这段代码的格式不正确,特别是因为TT文件。
我想使用EnvDTE来应用smartformat,但我发现的所有示例都需要在应用程序上打开文件。
有没有办法将智能格式应用到现有文件而不打开它?
有人有例子吗?
必须打开文档,但这并不意味着文档对用户可见。
给定一个EnvDTE.ProjectItem,您可以使用所需的视图(代码)打开(查看)它,并获得一个不可见的EnvDTE.Window(您需要设置.Visible = true)。但是,您可以获取其.Document属性,然后将其.Object属性强制转换为EnvDTE.TextDocument,然后获取.StartPoint和.EndPoint文本点,从中获取.CreateEditPoint以获取编辑点和您之间的.SmartFormat()他们。
这段代码对我有用:
Window window = projectItem.Open();
EnvDTE.TextDocument textDocument = window.Document.Object() as EnvDTE.TextDocument;
textDocument.Selection.SelectAll();
textDocument.Selection.SmartFormat();
window.ProjectItem.Save();