在VisualStudio DTE中,如何获取ActiveDocument的内容?
我在VisualStudio中编写脚本,并试图获取当前ActiveDocument的内容。
这是我目前的解决方案:
var visualStudio = new API_VisualStudio_2010(); var vsDTE = visualStudio.VsAddIn.VS_Dte; var document = (Document)vsDTE.ActiveDocument; var textDocument = (TextDocument)document.Object("TextDocument"); var editPoint = textDocument.StartPoint.CreateEditPoint(); var text = editPoint.GetText(textDocument.EndPoint.CreateEditPoint()); panel.clear().add_SourceCodeViewer() .set_Text(text, document.FullName.extension());
这是最好的方法吗?
我得到了解决方案: 因为ActiveDocument.Text()太容易了…
这对我有用
protected DTE2 dte; dte2 = (EnvDTE80.DTE2)GetService(typeof(EnvDTE.DTE)); public string GetCurrentTextFile(){ TextDocument doc = (TextDocument)(dte.ActiveDocument.Object("TextDocument")); var p = doc.StartPoint.CreateEditPoint(); string s = p.GetText(doc.EndPoint); return s; }
你能尝试一下吗?
Dim objSelection As TextSelection = DTE.ActiveDocument.Selection