我正在从IWpfTextViewCreationListener
界面监听 TextViewCreated。
如何使用IWpfTextView
I get 作为参数来区分属于“代码定义窗口”的 textview 和普通文本编辑器?
谢谢!
我正在从IWpfTextViewCreationListener
界面监听 TextViewCreated。
如何使用IWpfTextView
I get 作为参数来区分属于“代码定义窗口”的 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 可导入组件,因此可通过[Import]
您的 MEF 容器使用。
这IVsCodeDefView
是一个较旧的 Visual Studio 服务。如果您有IServiceProvider
它可以通过QueryService
(确保SVsServiceProvider
用作服务类型和IVsServiceProvider
接口)。