mirror of
https://github.com/arduino/arduino-ide.git
synced 2025-07-09 12:26:34 +00:00
patched the keybinding registry
Signed-off-by: Akos Kitta <kittaakos@typefox.io>
This commit is contained in:
parent
bbf880d187
commit
445ffedf02
@ -39,7 +39,8 @@ import {
|
|||||||
ApplicationShell as TheiaApplicationShell,
|
ApplicationShell as TheiaApplicationShell,
|
||||||
ShellLayoutRestorer as TheiaShellLayoutRestorer,
|
ShellLayoutRestorer as TheiaShellLayoutRestorer,
|
||||||
KeybindingContribution,
|
KeybindingContribution,
|
||||||
CommonFrontendContribution as TheiaCommonFrontendContribution
|
CommonFrontendContribution as TheiaCommonFrontendContribution,
|
||||||
|
KeybindingRegistry as TheiaKeybindingRegistry
|
||||||
} from '@theia/core/lib/browser';
|
} from '@theia/core/lib/browser';
|
||||||
import { MenuContribution } from '@theia/core/lib/common/menu';
|
import { MenuContribution } from '@theia/core/lib/common/menu';
|
||||||
import { ApplicationShell } from './theia/core/application-shell';
|
import { ApplicationShell } from './theia/core/application-shell';
|
||||||
@ -103,6 +104,7 @@ import { PreferencesContribution } from './theia/preferences/preference-contribu
|
|||||||
import { QuitApp } from './contributions/quit-app';
|
import { QuitApp } from './contributions/quit-app';
|
||||||
import { SketchControl } from './contributions/sketch-control-contributions';
|
import { SketchControl } from './contributions/sketch-control-contributions';
|
||||||
import { Settings } from './contributions/settings';
|
import { Settings } from './contributions/settings';
|
||||||
|
import { KeybindingRegistry } from './theia/core/keybindings';
|
||||||
|
|
||||||
const ElementQueries = require('css-element-queries/src/ElementQueries');
|
const ElementQueries = require('css-element-queries/src/ElementQueries');
|
||||||
|
|
||||||
@ -278,6 +280,7 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => {
|
|||||||
rebind(TheiaFileMenuContribution).to(ArduinoFileMenuContribution).inSingletonScope();
|
rebind(TheiaFileMenuContribution).to(ArduinoFileMenuContribution).inSingletonScope();
|
||||||
rebind(TheiaCommonFrontendContribution).to(CommonFrontendContribution).inSingletonScope();
|
rebind(TheiaCommonFrontendContribution).to(CommonFrontendContribution).inSingletonScope();
|
||||||
rebind(TheiaPreferencesContribution).to(PreferencesContribution).inSingletonScope();
|
rebind(TheiaPreferencesContribution).to(PreferencesContribution).inSingletonScope();
|
||||||
|
rebind(TheiaKeybindingRegistry).to(KeybindingRegistry).inSingletonScope();
|
||||||
|
|
||||||
// Show a disconnected status bar, when the daemon is not available
|
// Show a disconnected status bar, when the daemon is not available
|
||||||
bind(ApplicationConnectionStatusContribution).toSelf().inSingletonScope();
|
bind(ApplicationConnectionStatusContribution).toSelf().inSingletonScope();
|
||||||
|
28
arduino-ide-extension/src/browser/theia/core/keybindings.ts
Normal file
28
arduino-ide-extension/src/browser/theia/core/keybindings.ts
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
import { injectable } from 'inversify';
|
||||||
|
import { Command } from '@theia/core/lib/common/command';
|
||||||
|
import { Keybinding } from '@theia/core/lib/common/keybinding';
|
||||||
|
import { KeybindingRegistry as TheiaKeybindingRegistry, KeybindingScope } from '@theia/core/lib/browser/keybinding';
|
||||||
|
|
||||||
|
@injectable()
|
||||||
|
export class KeybindingRegistry extends TheiaKeybindingRegistry {
|
||||||
|
|
||||||
|
// https://github.com/eclipse-theia/theia/issues/8209
|
||||||
|
unregisterKeybinding(key: string): void;
|
||||||
|
unregisterKeybinding(keybinding: Keybinding): void;
|
||||||
|
unregisterKeybinding(command: Command): void;
|
||||||
|
unregisterKeybinding(arg: string | Keybinding | Command): void {
|
||||||
|
const keymap = this.keymaps[KeybindingScope.DEFAULT];
|
||||||
|
const filter = Command.is(arg)
|
||||||
|
? ({ command }: Keybinding) => command === arg.id
|
||||||
|
: ({ keybinding }: Keybinding) => Keybinding.is(arg)
|
||||||
|
? keybinding === arg.keybinding
|
||||||
|
: keybinding === arg;
|
||||||
|
for (const binding of keymap.filter(filter)) {
|
||||||
|
const idx = keymap.indexOf(binding);
|
||||||
|
if (idx !== -1) {
|
||||||
|
keymap.splice(idx, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -1,4 +1,6 @@
|
|||||||
import { injectable, inject } from 'inversify';
|
import { injectable, inject } from 'inversify';
|
||||||
|
import { WorkspaceCommands } from '@theia/workspace/lib/browser/workspace-commands';
|
||||||
|
import { KeybindingRegistry } from '@theia/core/lib/browser/keybinding';
|
||||||
import { FrontendApplication } from '@theia/core/lib/browser/frontend-application';
|
import { FrontendApplication } from '@theia/core/lib/browser/frontend-application';
|
||||||
import { FileNavigatorContribution as TheiaFileNavigatorContribution } from '@theia/navigator/lib/browser/navigator-contribution';
|
import { FileNavigatorContribution as TheiaFileNavigatorContribution } from '@theia/navigator/lib/browser/navigator-contribution';
|
||||||
import { EditorMode } from '../../editor-mode';
|
import { EditorMode } from '../../editor-mode';
|
||||||
@ -15,4 +17,12 @@ export class FileNavigatorContribution extends TheiaFileNavigatorContribution {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
registerKeybindings(registry: KeybindingRegistry): void {
|
||||||
|
super.registerKeybindings(registry);
|
||||||
|
[
|
||||||
|
WorkspaceCommands.FILE_RENAME,
|
||||||
|
WorkspaceCommands.FILE_DELETE
|
||||||
|
].forEach(registry.unregisterKeybinding.bind(registry));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user