gpt4 book ai didi

c# - VS2010扩展——代码定义窗口

转载 作者:太空宇宙 更新时间:2023-11-03 11:26:24 27 4
gpt4 key购买 nike

我正在从 IWpfTextViewCreationListener 接口(interface)监听 TextViewCreated。

如何使用作为参数获取的 IWpfTextView 来区分属于“代码定义窗口”的 TextView 和普通文本编辑器?

谢谢!

最佳答案

这是完成此操作的基本代码。

static bool IsCodeDefWindow(
IWpfTextView textView,
IVsEditorAdaptersFactoryService editorAdaptersFactoryService,
IVsCodeDefView vsCodeDefView)
{
var vsTextView = editorAdaptersFactoryService.GetViewAdapter(textView);
if (vsTextView == null)
{
// Happens for unshimmed IWpfTextView instances
return false;
}

int isCodeDef;
return
ErrorHandler.Succeeded(vsCodeDefView.IsCodeDefView(vsTextView, out isCodeDef)) &&
isCodeDef != 0;
}

IVsEditorAdaptersFactoryService 是 MEF 可导入组件,因此可通过 MEF 容器上的 [Import] 使用。

IVsCodeDefView 是一个较旧的 Visual Studio 服务。如果您有一个 IServiceProvider,它可以通过 QueryService 使用(一定要使用 SVsServiceProvider 作为服务类型,使用 IVsServiceProvider 作为界面)。

关于c# - VS2010扩展——代码定义窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9178728/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com