我有一个IWpfTextViewConnectionListener基础扩展。我需要访问与我获得的EnvDTE.Document相关联的权限IWpfTextView。我试过 storage _DTE.ActiveDocument,但这仅适用于以前未打开的文件(如果文件已打开,则为null)。
如何获取正在显示的文本视图的文档对象?
我有一个IWpfTextViewConnectionListener基础扩展。我需要访问与我获得的EnvDTE.Document相关联的权限IWpfTextView。我试过 storage _DTE.ActiveDocument,但这仅适用于以前未打开的文件(如果文件已打开,则为null)。
如何获取正在显示的文本视图的文档对象?
从一个IWpfTextView.TextBuffer,你可以得到ITextBuffer。从中,您可以使用ITextDocumentFactoryService.TryGetTextDocument()来获取匹配项ITextDocument(如果存在)。然后,ITextDocument.FilePath为您提供文件的路径。
然后,您可以枚举DTE2.Documents集合以找到具有相同路径的打开文档。
更多信息:http ITextDocumentFactoryService: //msdn.microsoft.com/en-us/library/microsoft.visualstudio.text.itextdocumentfactoryservice.aspx