繁体   English   中英

使用EnvDTE自动缩进现有文件

[英]Auto-indent existing file using EnvDTE

我正在使用T4文本模板来自动生成代码,但是必须正确设置此代码的格式,尤其是由于TT文件的原因。

我想使用EnvDTE来应用smartformat,但是我发现的所有示例都需要在应用程序上打开文件。

有什么方法可以在不打开智能格式的情况下将其应用于现有文件?

有人举一个例子吗?

必须打开该文档,但这并不意味着该文档对用户可见。

给定一个EnvDTE.ProjectItem,您可以使用所需的视图(代码)对它进行.Open(查看),然后获得一个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();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM