Skip to content

Commit 7534d8a

Browse files
author
Akos Kitta
committed
fix: removed undesired editor context menu items
Closes arduino#1394 Signed-off-by: Akos Kitta <[email protected]>
1 parent 4454666 commit 7534d8a

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed

Diff for: arduino-ide-extension/src/browser/arduino-ide-frontend-module.ts

+10
Original file line numberDiff line numberDiff line change
@@ -352,6 +352,8 @@ import { CreateCloudCopy } from './contributions/create-cloud-copy';
352352
import { FileResourceResolver } from './theia/filesystem/file-resource';
353353
import { FileResourceResolver as TheiaFileResourceResolver } from '@theia/filesystem/lib/browser/file-resource';
354354
import { StylingParticipant } from '@theia/core/lib/browser/styling-service';
355+
import { MonacoEditorMenuContribution } from './theia/monaco/monaco-menu';
356+
import { MonacoEditorMenuContribution as TheiaMonacoEditorMenuContribution } from '@theia/monaco/lib/browser/monaco-menu';
355357

356358
// Hack to fix copy/cut/paste issue after electron version update in Theia.
357359
// https://github.com/eclipse-theia/theia/issues/12487
@@ -1014,4 +1016,12 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => {
10141016
// https://github.com/arduino/arduino-ide/issues/437
10151017
bind(FileResourceResolver).toSelf().inSingletonScope();
10161018
rebind(TheiaFileResourceResolver).toService(FileResourceResolver);
1019+
1020+
// Full control over the editor context menu to filter undesired menu items contributed by Theia.
1021+
// https://github.com/arduino/arduino-ide/issues/1394
1022+
// https://github.com/arduino/arduino-ide/pull/2027#pullrequestreview-1414246614
1023+
bind(MonacoEditorMenuContribution).toSelf().inSingletonScope();
1024+
rebind(TheiaMonacoEditorMenuContribution).toService(
1025+
MonacoEditorMenuContribution
1026+
);
10171027
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import type { MenuModelRegistry } from '@theia/core/lib/common/menu/menu-model-registry';
2+
import { injectable } from '@theia/core/shared/inversify';
3+
import { MonacoEditorMenuContribution as TheiaMonacoEditorMenuContribution } from '@theia/monaco/lib/browser/monaco-menu';
4+
5+
@injectable()
6+
export class MonacoEditorMenuContribution extends TheiaMonacoEditorMenuContribution {
7+
override registerMenus(registry: MenuModelRegistry): void {
8+
super.registerMenus(registry);
9+
// https://github.com/arduino/arduino-ide/issues/1394
10+
registry.unregisterMenuAction('editor.action.refactor'); // Refactor...
11+
registry.unregisterMenuAction('editor.action.sourceAction'); // Source Action...
12+
// https://github.com/arduino/arduino-ide/pull/2027#pullrequestreview-1414246614
13+
// Root editor context menu
14+
registry.unregisterMenuAction('editor.action.revealDeclaration'); // Go to Declaration
15+
registry.unregisterMenuAction('editor.action.goToTypeDefinition'); // Go to Type Definition
16+
registry.unregisterMenuAction('editor.action.goToImplementation'); // Go to Implementations
17+
registry.unregisterMenuAction('editor.action.goToReferences'); // Go to References
18+
// Peek submenu
19+
registry.unregisterMenuAction('editor.action.peekDeclaration'); // Peek Declaration
20+
registry.unregisterMenuAction('editor.action.peekTypeDefinition'); // Peek Type Definition
21+
registry.unregisterMenuAction('editor.action.peekImplementation'); // Peek Implementation
22+
registry.unregisterMenuAction('editor.action.referenceSearch.trigger'); // Peek References
23+
}
24+
}

0 commit comments

Comments
 (0)