2
我正在從IWpfTextViewCreationListener
界面監聽TextViewCreated。VS2010擴展 - 代碼定義窗口
我該如何使用IWpfTextView
作爲參數來區分屬於「代碼定義窗口」的textview和普通的文本編輯器?
謝謝!
我正在從IWpfTextViewCreationListener
界面監聽TextViewCreated。VS2010擴展 - 代碼定義窗口
我該如何使用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導入的組件,因此它通過[Import]
是提供您的MEF容器上。
IVsCodeDefView
是較舊的Visual Studio服務。如果您有IServiceProvider
,則可以通過QueryService
(確保使用SVsServiceProvider
作爲服務類型,使用IVsServiceProvider
作爲接口)使用它。