我有一个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