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