blob: ee9eaaf0a03a91dc08e07add85c3bd8e9ed37275 [file] [log] [blame]
<?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>