Visual Studio 拡張機能でファイルの貼り付けイベントをインターセプトするにはどうすればよいですか?
ファイルの貼り付け = ソリューション エクスプローラーにファイル全体を貼り付けます。
私の目標は、コピーされたファイルに特定の置換を適用することです。
Visual Studio 拡張機能でファイルの貼り付けイベントをインターセプトするにはどうすればよいですか?
ファイルの貼り付け = ソリューション エクスプローラーにファイル全体を貼り付けます。
私の目標は、コピーされたファイルに特定の置換を適用することです。
コマンドguidおよびコマンドIDとしてDTE.Events.CommandEvents
(MSDN)を使用してインターセプトできます。typeof(VSConstants.VSStd97CmdID).GUID
VSConstants.VSStd97CmdID.Paste
例:
protected override void Initialize() {
var dte = (DTE)GetService(typeof(DTE));
var pasteGuid = typeof(VSConstants.VSStd97CmdID).GUID.ToString("B");
var pasteID = (int)VSConstants.VSStd97CmdID.Paste;
_pasteEvent = dte.Events.CommandEvents[pasteGuid, pasteID];
_pasteEvent.BeforeExecute += delegate { Trace.WriteLine("Before paste."); };
_pasteEvent.AfterExecute += delegate { Trace.WriteLine("After paste."); };
}
これは、他のコンテキストでも貼り付けをインターセプトする可能性があるため、実際には完全ではありませんが、最初のステップとしては適切です。ItemAdded
貼り付け中のイベントを見て、貼り付けたアイテムを取得することもできます。