From 10ac7fd50abd102195522907a4b9fba78985e42c Mon Sep 17 00:00:00 2001 From: Akos Kitta Date: Thu, 25 Aug 2022 19:56:28 +0200 Subject: [PATCH] Removed `File` > `Close Editor`. Closes arduino/arduino-ide#660 Signed-off-by: Akos Kitta --- .../src/browser/arduino-ide-frontend-module.ts | 6 ++++++ .../src/browser/theia/editor/editor-file.ts | 12 ++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 arduino-ide-extension/src/browser/theia/editor/editor-file.ts diff --git a/arduino-ide-extension/src/browser/arduino-ide-frontend-module.ts b/arduino-ide-extension/src/browser/arduino-ide-frontend-module.ts index 622819e6..5c6c2bde 100644 --- a/arduino-ide-extension/src/browser/arduino-ide-frontend-module.ts +++ b/arduino-ide-extension/src/browser/arduino-ide-frontend-module.ts @@ -321,6 +321,8 @@ import { MonacoThemeServiceIsReady } from './utils/window'; import { Deferred } from '@theia/core/lib/common/promise-util'; import { StatusBarImpl } from './theia/core/status-bar'; import { StatusBarImpl as TheiaStatusBarImpl } from '@theia/core/lib/browser'; +import { EditorMenuContribution } from './theia/editor/editor-file'; +import { EditorMenuContribution as TheiaEditorMenuContribution } from '@theia/editor/lib/browser/editor-menu'; const registerArduinoThemes = () => { const themes: MonacoThemeJson[] = [ @@ -640,6 +642,10 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => { bind(WindowContribution).toSelf().inSingletonScope(); rebind(TheiaWindowContribution).toService(WindowContribution); + // To remove `File` > `Close Editor`. + bind(EditorMenuContribution).toSelf().inSingletonScope(); + rebind(TheiaEditorMenuContribution).toService(EditorMenuContribution); + bind(ArduinoDaemon) .toDynamicValue((context) => WebSocketConnectionProvider.createProxy( diff --git a/arduino-ide-extension/src/browser/theia/editor/editor-file.ts b/arduino-ide-extension/src/browser/theia/editor/editor-file.ts new file mode 100644 index 00000000..721a7783 --- /dev/null +++ b/arduino-ide-extension/src/browser/theia/editor/editor-file.ts @@ -0,0 +1,12 @@ +import { MenuModelRegistry } from '@theia/core'; +import { CommonCommands } from '@theia/core/lib/browser'; +import { injectable } from '@theia/core/shared/inversify'; +import { EditorMenuContribution as TheiaEditorMenuContribution } from '@theia/editor/lib/browser/editor-menu'; + +@injectable() +export class EditorMenuContribution extends TheiaEditorMenuContribution { + override registerMenus(registry: MenuModelRegistry): void { + super.registerMenus(registry); + registry.unregisterMenuAction(CommonCommands.CLOSE_MAIN_TAB.id); + } +}