【发布时间】:2012-02-20 22:43:53
【问题描述】:
我在代码视图中使用右键菜单编写 Visual Studio (2010) 扩展。我希望能够从我的菜单项事件处理程序中检查当前代码,但无法在对象模型中找到执行此操作的某个位置。
如何在 Visual Studio 扩展中访问当前窗口中的代码?
编辑
这是我用来获取当前文档文本的代码
DTE dte = Package.GetGlobalService(typeof(DTE)) as DTE ;
TextDocument activeDoc = dte.ActiveDocument.Object() as TextDocument;
var text = activeDoc.CreateEditPoint(activeDoc.StartPoint).GetText(activeDoc.EndPoint);
【问题讨论】:
-
您是从 MEF 组件开始的吗?如果是这样,您有 ITextView 还是要获取活动的?
-
@JaredPar 我认为它的 MPF,我不知道如何使用 MEF 连接到 VS,我只是从 VSPackage 模板开始。
-
@JaredPar 在开始使用 MEF 时,是否有一种简单的 2020 年获取活动视图的方法?
-
更新:似乎可以实现
IWpfTextViewConnectionListener并将其导出为具有IWpfTextView ActiveDocument { get; }属性的另一个接口。该属性可以在SubjectBuffersConnected中设置,在SubjectBuffersDisconnected中取消设置。 -
我创建了另一个问题并在更新 1 中发布了一个可能的解决方案:How to get active IWpfTextView in VS2019 extension (MEF)
标签: c# visual-studio-2010 vsix vspackage visual-studio-extensions