<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<!--
# Copyright (c) 2006, 2018 Wind River Systems, Inc. and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License 2.0
# which accompanies this distribution, and is available at
# https://www.eclipse.org/legal/epl-2.0/

    SPDX-License-Identifier: EPL-2.0
#
# Contributors:
# Michael Scharf (Wind River) - initial API and implementation
# Martin Oberhuber (Wind River) - fixed copyright headers and beautified
# Michael Scharf (Wind River) - [237425] undefined tm.terminal command
# Martin Oberhuber (Wind River) - [378691][api] push Preferences into the Widget
# Martin Oberhuber (Wind River) - [434294] Add Mac bindings with COMMAND
# Martin Oberhuber (Wind River) - [434487] Add key bindings for "maximize view" and "quick access"
# Martin Oberhuber (Wind River) - [434939] Fix Keybinding conflicts with JEE Luna package
-->
<plugin>
   <extension-point id="connectors" name="%terminal.connectors.name" schema="schema/connectors.exsd"/>

   <extension point="org.eclipse.ui.contexts">
      <context
            name="%terminal.context.name.terminal"
            description="%terminal.context.description.terminal"
            parentId="org.eclipse.ui.contexts.window"
            id="org.eclipse.tm.terminal.TerminalContext"
            />
    <context
            name="%terminal.context.name.edit"
            description="%terminal.context.description.edit"
            parentId="org.eclipse.ui.contexts.window"
            id="org.eclipse.tm.terminal.EditContext" />
   </extension>

    <extension point="org.eclipse.help.contexts">
        <contexts file="HelpContexts.xml"/>
   </extension>
   <extension
         point="org.eclipse.ui.commands">
      <!-- Dummy commands for bindings, see below -->
      <command
            categoryId="org.eclipse.tm.terminal.category1"
            id="org.eclipse.tm.terminal.command1"
            name="%terminal.insertion.name"/>
      <command
            categoryId="org.eclipse.tm.terminal.category1"
            id="org.eclipse.tm.terminal.copy"
            name="%terminal.command.copy.name"/>
      <command
            categoryId="org.eclipse.tm.terminal.category1"
            id="org.eclipse.tm.terminal.paste"
            name="%terminal.command.paste.name"/>
      <command
            categoryId="org.eclipse.tm.terminal.category1"
            id="org.eclipse.tm.terminal.maximize"
            name="%terminal.command.maximize.name">
      </command>
      <command
            categoryId="org.eclipse.tm.terminal.category1"
            id="org.eclipse.tm.terminal.quickaccess"
            name="%terminal.command.quickaccess.name"/>
      <category
            description="%terminal.view.insertion.description"
            id="org.eclipse.tm.terminal.category1"
            name="%terminal.insertion.category.name"/>
   </extension>

    <extension point="org.eclipse.help.contexts">
        <contexts file="HelpContexts.xml"/>
    </extension>

   <extension
         point="org.eclipse.ui.bindings">
      <!--
      These keybindings are needed to disable the menu-activation keys (e.g.,
      Alt-F for the File menu, etc.).  The code in method
      TerminalControl.TerminalFocusListener.focusGained() disables the Eclipse key
      binding service, but it doesn't disable the global menu-activation
      keys.
      -->
      <key
            commandId="org.eclipse.tm.terminal.command1"
            contextId="org.eclipse.tm.terminal.TerminalContext"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            sequence="Alt+A"/> <!-- Search -->
      <key
            commandId="org.eclipse.tm.terminal.command1"
            contextId="org.eclipse.tm.terminal.TerminalContext"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            sequence="Alt+B"/> <!-- Readline word-left: just to be safe -->
      <key
            commandId="org.eclipse.tm.terminal.command1"
            contextId="org.eclipse.tm.terminal.TerminalContext"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            sequence="Alt+C"/> <!-- ClearCase, Extract Constant -->
      <key
            commandId="org.eclipse.tm.terminal.command1"
            contextId="org.eclipse.tm.terminal.TerminalContext"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            sequence="Alt+D"/> <!-- Design, Diagram, Debug -->
      <key
            commandId="org.eclipse.tm.terminal.command1"
            contextId="org.eclipse.tm.terminal.TerminalContext"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            sequence="Alt+E"/> <!-- Edit -->
      <key
            commandId="org.eclipse.tm.terminal.command1"
            contextId="org.eclipse.tm.terminal.TerminalContext"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            sequence="Alt+F"/> <!-- File -->
      <key
            commandId="org.eclipse.tm.terminal.command1"
            contextId="org.eclipse.tm.terminal.TerminalContext"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            sequence="Alt+G"/> <!-- Tar&get -->
      <key
            commandId="org.eclipse.tm.terminal.command1"
            contextId="org.eclipse.tm.terminal.TerminalContext"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            sequence="Alt+H"/> <!-- Help -->
      <key
            commandId="org.eclipse.tm.terminal.command1"
            contextId="org.eclipse.tm.terminal.TerminalContext"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            sequence="Alt+L"/> <!-- Ana&lyze -->
      <key
            commandId="org.eclipse.tm.terminal.command1"
            contextId="org.eclipse.tm.terminal.TerminalContext"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            sequence="Alt+N"/> <!-- Navigate -->
      <key
            commandId="org.eclipse.tm.terminal.command1"
            contextId="org.eclipse.tm.terminal.TerminalContext"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            sequence="Alt+P"/> <!-- Project, Papyrus, Ping -->
      <key
            commandId="org.eclipse.tm.terminal.command1"
            contextId="org.eclipse.tm.terminal.TerminalContext"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            sequence="Alt+R"/> <!-- Run -->
      <key
            commandId="org.eclipse.tm.terminal.command1"
            contextId="org.eclipse.tm.terminal.TerminalContext"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            sequence="Alt+S"/> <!-- Source -->
      <key
            commandId="org.eclipse.tm.terminal.command1"
            contextId="org.eclipse.tm.terminal.TerminalContext"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            sequence="Alt+T"/> <!-- Refactor -->
      <key
            commandId="org.eclipse.tm.terminal.command1"
            contextId="org.eclipse.tm.terminal.TerminalContext"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            sequence="Alt+V"/> <!-- CVS -->
      <key
            commandId="org.eclipse.tm.terminal.command1"
            contextId="org.eclipse.tm.terminal.TerminalContext"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            sequence="Alt+W"/> <!-- Window -->
      <key
            commandId="org.eclipse.tm.terminal.command1"
            contextId="org.eclipse.tm.terminal.TerminalContext"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            sequence="Alt+Y"/> <!-- S&ystem -->
      <!--
           For Copy and Paste, we need replacements since the default Ctrl+C / Ctrl+V
           need to go to the terminal and thus are not available for local Copy and Paste.
           This is not an issue on Mac, where COMMAND+C / COMMAND+V works fine.

           We add both CTRL+INSERT and CTRL+SHIFT+C since on some keyboards, an INSERT key
           may not be available. Note: we want the "least surprising" and "most available"
           of all bindings to be shown in the context menu according to the algorithm in
           IBindingService#getBestActiveBindingFor().
           Therefore, we do not want these extra bindings to be shown on the Mac.

           Unfortunately, there is no way in Bindings to say "NOT Platforms X,Y,Z"
           We would really like one of the following here but it doesnt work with Eclipse 4.3:
              platforms="!carbon,!cocoa"
              platforms="win32,motif,gtk,photon,wpf"
           Since Eclipse doesnt support this, we will redefine the original Mac bindings below,
           just to make them show up in the context menu.
      -->
      <key
            commandId="org.eclipse.tm.terminal.copy"
            contextId="org.eclipse.tm.terminal.EditContext"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            sequence="M1+INSERT"/><!-- Ctrl+Insert -->
      <key
            commandId="org.eclipse.tm.terminal.copy"
            contextId="org.eclipse.tm.terminal.EditContext"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            sequence="M1+M2+C"><!-- Ctrl+Shift+C -->
      </key>
      <key
            commandId="org.eclipse.tm.terminal.paste"
            contextId="org.eclipse.tm.terminal.EditContext"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            sequence="M2+INSERT"/><!-- Shift+Insert -->
      <key
            commandId="org.eclipse.tm.terminal.paste"
            contextId="org.eclipse.tm.terminal.EditContext"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            sequence="M1+M2+V"/><!-- Ctrl+Shift+V -->
      <!--
           Mac shortcuts need to be redefined with Platform Filter, in order to make
           them "better" than the bindings above and thus show up in the menu.
           See the algorithm in IBindingService#getBestActiveBindingFor().
           It looks like the "carbon" entry is also valid for "cocoa" automatically.
      -->
      <key
            commandId="org.eclipse.tm.terminal.copy"
            contextId="org.eclipse.tm.terminal.EditContext"
            platform="carbon"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            sequence="M1+C">
      </key>
      <key
            commandId="org.eclipse.tm.terminal.paste"
            contextId="org.eclipse.tm.terminal.EditContext"
            platform="carbon"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            sequence="M1+V"/>
      <!--
           Additional Bindings for Quick Access (Ctrl+3) and Maximize View (Ctrl+M)
           since these are extremely valuable, but the original shortcut may need
           to go to the Terminal.
      -->
      <!-- org.eclipse.ui.window.quickAccess -->
      <key
            commandId="org.eclipse.tm.terminal.quickaccess"
            contextId="org.eclipse.tm.terminal.EditContext"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            sequence="M3+ARROW_RIGHT"/>
      <!-- org.eclipse.ui.window.maximizePart -->
      <key
            commandId="org.eclipse.tm.terminal.maximize"
            contextId="org.eclipse.tm.terminal.EditContext"
            schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"
            sequence="M3+ARROW_UP"/>
   </extension>

   <extension point="org.eclipse.ui.preferencePages">
      <page
            name="%terminal.preferences.name"
            class="org.eclipse.tm.internal.terminal.preferences.TerminalPreferencePage"
            id="org.eclipse.tm.terminal.TerminalPreferencePage">
      </page>
   </extension>

   <extension point="org.eclipse.core.runtime.preferences">
      <initializer class="org.eclipse.tm.internal.terminal.preferences.TerminalPreferenceInitializer"/>
   </extension>

   <extension point="org.eclipse.ui.themes" id="terminal.font">
      <fontDefinition
            categoryId="terminal.views.theme.category"
            defaultsTo="org.eclipse.jface.textfont"
            id="terminal.views.view.font.definition"
            label="%terminal.font.label">
         <description>
            %terminal.font.description
         </description>
      </fontDefinition>
      <themeElementCategory
            id="terminal.views.theme.category"
            label="%terminal.views.theme.category.label">
         <description>
            %terminal.views.theme.category.description
         </description>
      </themeElementCategory>


   </extension>
</plugin>
