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