Visual Studio 扩展:在打开新代码 window 时跟踪?
Visual Studio Extension: Track when new code window is opened?
我正在尝试编写一个 Visual Studio 扩展来跟踪何时打开新代码 window。我发现 class IVsCodeWindowEvents
似乎为此提供了侦听器方法:
public int OnNewView(IVsTextView pView)
但是,我有一个问题,我不知道如何注册以收听这些事件。
我的 class 看起来像这样:
public sealed class VSTrackerPackage : Package, IVsCodeWindowEvents
在这个 class 中,我实现了 OnNewView 方法,但是如何在我的 Initialize
方法中注册这个侦听器?
是的,您可以通过 DTE and more specifically DTE2.
注册 Visual Studio 活动
第一步是通过 Initialize
方法从您的包中获取访问权限:
public sealed class VSTrackerPackage : Package
{
DTE2 dte = GetService(typeof (DTE)) as DTE2;
}
此时,我建议附加到 DocumentEvents.DocumentOpened 事件。从那里您可以检查它是否是您感兴趣的文档。如果您需要在那里与之互动,您还可以获得 Window:
_dte.Events.DocumentEvents.DocumentOpened += document =>
{
//double check this logic.
if (document.Language != "C#")
return;
//do work
//or - load window document.ActiveWindow.
};
如果有帮助,我有一个开源的 Visual Studio 插件(shameluss 插件:pMixins ) that attaches to a number of VS events. Relevant class is on GitHub: https://github.com/ppittle/pMixins/blob/master/CopaceticSoftware.CodeGenerator.StarterKit/Infrastructure/VisualStudioEventProxy.cs。Class 定义从第 243 行开始。
我正在尝试编写一个 Visual Studio 扩展来跟踪何时打开新代码 window。我发现 class IVsCodeWindowEvents
似乎为此提供了侦听器方法:
public int OnNewView(IVsTextView pView)
但是,我有一个问题,我不知道如何注册以收听这些事件。
我的 class 看起来像这样:
public sealed class VSTrackerPackage : Package, IVsCodeWindowEvents
在这个 class 中,我实现了 OnNewView 方法,但是如何在我的 Initialize
方法中注册这个侦听器?
是的,您可以通过 DTE and more specifically DTE2.
注册 Visual Studio 活动第一步是通过 Initialize
方法从您的包中获取访问权限:
public sealed class VSTrackerPackage : Package
{
DTE2 dte = GetService(typeof (DTE)) as DTE2;
}
此时,我建议附加到 DocumentEvents.DocumentOpened 事件。从那里您可以检查它是否是您感兴趣的文档。如果您需要在那里与之互动,您还可以获得 Window:
_dte.Events.DocumentEvents.DocumentOpened += document =>
{
//double check this logic.
if (document.Language != "C#")
return;
//do work
//or - load window document.ActiveWindow.
};
如果有帮助,我有一个开源的 Visual Studio 插件(shameluss 插件:pMixins ) that attaches to a number of VS events. Relevant class is on GitHub: https://github.com/ppittle/pMixins/blob/master/CopaceticSoftware.CodeGenerator.StarterKit/Infrastructure/VisualStudioEventProxy.cs。Class 定义从第 243 行开始。