mirror of
https://github.com/arduino/arduino-ide.git
synced 2025-10-06 18:18:33 +00:00
93 lines
3.1 KiB
TypeScript
93 lines
3.1 KiB
TypeScript
import {
|
|
CommonCommands,
|
|
CommonFrontendContribution as TheiaCommonFrontendContribution,
|
|
} from '@theia/core/lib/browser/common-frontend-contribution';
|
|
import type { OnWillStopAction } from '@theia/core/lib/browser/frontend-application';
|
|
import type { KeybindingRegistry } from '@theia/core/lib/browser/keybinding';
|
|
import type { CommandRegistry } from '@theia/core/lib/common/command';
|
|
import type { MenuModelRegistry } from '@theia/core/lib/common/menu';
|
|
import { isOSX } from '@theia/core/lib/common/os';
|
|
import { injectable } from '@theia/core/shared/inversify';
|
|
|
|
@injectable()
|
|
export class CommonFrontendContribution extends TheiaCommonFrontendContribution {
|
|
override registerCommands(commandRegistry: CommandRegistry): void {
|
|
super.registerCommands(commandRegistry);
|
|
|
|
for (const command of [
|
|
CommonCommands.CONFIGURE_DISPLAY_LANGUAGE,
|
|
CommonCommands.CLOSE_TAB,
|
|
CommonCommands.CLOSE_SAVED_TABS,
|
|
CommonCommands.CLOSE_OTHER_TABS,
|
|
CommonCommands.CLOSE_ALL_TABS,
|
|
CommonCommands.COLLAPSE_PANEL,
|
|
CommonCommands.TOGGLE_MAXIMIZED,
|
|
CommonCommands.PIN_TAB,
|
|
CommonCommands.UNPIN_TAB,
|
|
CommonCommands.NEW_UNTITLED_FILE,
|
|
CommonCommands.NEW_UNTITLED_TEXT_FILE,
|
|
]) {
|
|
commandRegistry.unregisterCommand(command);
|
|
}
|
|
}
|
|
|
|
override registerMenus(registry: MenuModelRegistry): void {
|
|
super.registerMenus(registry);
|
|
for (const command of [
|
|
CommonCommands.SAVE,
|
|
CommonCommands.SAVE_ALL,
|
|
CommonCommands.CUT,
|
|
CommonCommands.COPY,
|
|
CommonCommands.PASTE,
|
|
CommonCommands.COPY_PATH,
|
|
CommonCommands.FIND,
|
|
CommonCommands.REPLACE,
|
|
CommonCommands.AUTO_SAVE,
|
|
CommonCommands.OPEN_PREFERENCES,
|
|
CommonCommands.SELECT_ICON_THEME,
|
|
CommonCommands.SELECT_COLOR_THEME,
|
|
CommonCommands.ABOUT_COMMAND,
|
|
CommonCommands.SAVE_WITHOUT_FORMATTING, // Patched for https://github.com/eclipse-theia/theia/pull/8877,
|
|
CommonCommands.NEW_UNTITLED_FILE,
|
|
CommonCommands.NEW_UNTITLED_TEXT_FILE,
|
|
]) {
|
|
registry.unregisterMenuAction(command);
|
|
}
|
|
}
|
|
|
|
override registerKeybindings(registry: KeybindingRegistry): void {
|
|
super.registerKeybindings(registry);
|
|
// Workaround for https://github.com/eclipse-theia/theia/issues/11875
|
|
if (isOSX) {
|
|
registry.unregisterKeybinding('ctrlcmd+tab');
|
|
registry.unregisterKeybinding('ctrlcmd+alt+d');
|
|
registry.unregisterKeybinding('ctrlcmd+shift+tab');
|
|
registry.unregisterKeybinding('ctrlcmd+alt+a');
|
|
|
|
registry.registerKeybindings(
|
|
{
|
|
command: CommonCommands.NEXT_TAB.id,
|
|
keybinding: 'ctrl+tab',
|
|
},
|
|
{
|
|
command: CommonCommands.NEXT_TAB.id,
|
|
keybinding: 'ctrl+alt+d',
|
|
},
|
|
{
|
|
command: CommonCommands.PREVIOUS_TAB.id,
|
|
keybinding: 'ctrl+shift+tab',
|
|
},
|
|
{
|
|
command: CommonCommands.PREVIOUS_TAB.id,
|
|
keybinding: 'ctrl+alt+a',
|
|
}
|
|
);
|
|
}
|
|
}
|
|
|
|
override onWillStop(): OnWillStopAction | undefined {
|
|
// This is NOOP here. All window close and app quit requests are handled in the `Close` contribution.
|
|
return undefined;
|
|
}
|
|
}
|