インターフェイスから TextViewCreated をリッスンしていIWpfTextViewCreationListener
ます。
IWpfTextView
I get をパラメーターとして使用して、「コード定義ウィンドウ」に属するテキストビューと通常のテキストエディターを区別するにはどうすればよいですか?
ありがとう!
インターフェイスから TextViewCreated をリッスンしていIWpfTextViewCreationListener
ます。
IWpfTextView
I get をパラメーターとして使用して、「コード定義ウィンドウ」に属するテキストビューと通常のテキストエディターを区別するにはどうすればよいですか?
ありがとう!
これを実現するための基本的なコードを次に示します。
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
インターフェイスとして使用してください)。