mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-02 22:05:44 +02:00

New types TerminalColor and TerminalStyle replace StyleColor and Style to separate the meta information about styles and colors from the user currently selected colors. The StyleMap maps the TerminalColor/Style to the concrete fonts and colors used in the display. Colors are now configurable via the terminal preference page using the new TerminalColorsFieldEditor. All preferences are now passed in to the VT100 control so that different terminal consumers can have different preferences and styles. Remove dark theme contribution. The colors of the terminal are now inherited from the editor settings (using SystemDefaultColors) which come from the theme. If we were to invert colors too when in Dark theme then the colors actually end up light background. Change-Id: I2cf5427ac0be9a189a7f0d3565cfc97ceedb8749
278 lines
12 KiB
XML
278 lines
12 KiB
XML
<?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>
|