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); + } +}