3

thisの質問をご覧ください。VSIXメソッドを実行するショートカットを作成する方法は?

初期の問題は解決されましたが、私の拡張ではメソッドがあります。 ユーザーが拡張機能をインストールするときに、キーボードショートカットもインストールする必要があります。これを押すとメソッドを実行する必要があります。

どうすればよいですか?

答えて

4

.vsctファイルにショートカットを追加できます。このファイルは、新しい拡張子を生成してメニューコマンドがあると言うとき、ウィザードで自動的に作成されます。手動で追加するには:

<VSCTCompile Include="MyCommands.vsct"> 
    <ResourceName>Menus.ctmenu</ResourceName> 
    <SubType>Designer</SubType> 
</VSCTCompile> 

    • は、あなたのプロジェクトをアンロードし、右クリックして[編集プロジェクトVSCTCompile
    • にMyCommands.vsct
    • 設定ファイルのプロパティを作成します。
    • プロジェクトにメニューとショートカットがあることを宣言してください:

    :あなたのPackage.Initializeで

    <KeyBindings> 
        <KeyBinding guid="yourCmdSet" id="cmdAwesome" 
        editor="guidVSStd97" 
        key1="VK_F7" mod1="Control Alt" 
        key2="VK_F1"> 
        </KeyBinding> 
    </KeyBindings> 
    

    [ProvideMenuResource("Menus.ctmenu",1)] 
    public sealed class MyPackage : Package 
    
    • は、キーバインドのセクションを追加

    // Add our command handlers for menu/shortcut (commands must exist in the .vsct file) 
    OleMenuCommandService mcs = GetService(typeof(IMenuCommandService)) as OleMenuCommandService; 
    if (null != mcs) 
    { 
        //// Create the command for the menu item. 
        var menuCommandID = new CommandID(GuidList.yourCmdSet,(int)PkgCmdIDList.cmdAwesome); 
        var menuItem = new MenuCommand((sender, evt) => 
        { 
         // Do stuff 
        } 
    } 
    

    その他のリソース:

+1

また 'ことを確認してください''の直後に「3210」セクションがあります。私はファイルにランダムに追加し、xmlスキーマエラーが発生しました。 – KernelMode

関連する問題