mirror of
https://github.com/arduino/arduino-ide.git
synced 2025-07-08 11:56:36 +00:00
Add keymaps customization support
This commit is contained in:
parent
cdd5cfdfc1
commit
562b77aec3
@ -23,6 +23,7 @@
|
|||||||
"@theia/editor": "next",
|
"@theia/editor": "next",
|
||||||
"@theia/filesystem": "next",
|
"@theia/filesystem": "next",
|
||||||
"@theia/git": "next",
|
"@theia/git": "next",
|
||||||
|
"@theia/keymaps": "next",
|
||||||
"@theia/markers": "next",
|
"@theia/markers": "next",
|
||||||
"@theia/monaco": "next",
|
"@theia/monaco": "next",
|
||||||
"@theia/navigator": "next",
|
"@theia/navigator": "next",
|
||||||
|
@ -24,6 +24,8 @@ import { ProblemContribution as TheiaProblemContribution } from '@theia/markers/
|
|||||||
import { ProblemContribution } from './theia/markers/problem-contribution';
|
import { ProblemContribution } from './theia/markers/problem-contribution';
|
||||||
import { FileNavigatorContribution } from './theia/navigator/navigator-contribution';
|
import { FileNavigatorContribution } from './theia/navigator/navigator-contribution';
|
||||||
import { FileNavigatorContribution as TheiaFileNavigatorContribution } from '@theia/navigator/lib/browser/navigator-contribution';
|
import { FileNavigatorContribution as TheiaFileNavigatorContribution } from '@theia/navigator/lib/browser/navigator-contribution';
|
||||||
|
import { KeymapsFrontendContribution } from './theia/keymaps/keymaps-frontend-contribution';
|
||||||
|
import { KeymapsFrontendContribution as TheiaKeymapsFrontendContribution } from '@theia/keymaps/lib/browser/keymaps-frontend-contribution';
|
||||||
import { ArduinoToolbarContribution } from './toolbar/arduino-toolbar-contribution';
|
import { ArduinoToolbarContribution } from './toolbar/arduino-toolbar-contribution';
|
||||||
import { EditorContribution as TheiaEditorContribution } from '@theia/editor/lib/browser/editor-contribution';
|
import { EditorContribution as TheiaEditorContribution } from '@theia/editor/lib/browser/editor-contribution';
|
||||||
import { EditorContribution } from './theia/editor/editor-contribution';
|
import { EditorContribution } from './theia/editor/editor-contribution';
|
||||||
@ -279,6 +281,7 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => {
|
|||||||
rebind(TheiaOutlineViewContribution).to(OutlineViewContribution).inSingletonScope();
|
rebind(TheiaOutlineViewContribution).to(OutlineViewContribution).inSingletonScope();
|
||||||
rebind(TheiaProblemContribution).to(ProblemContribution).inSingletonScope();
|
rebind(TheiaProblemContribution).to(ProblemContribution).inSingletonScope();
|
||||||
rebind(TheiaFileNavigatorContribution).to(FileNavigatorContribution).inSingletonScope();
|
rebind(TheiaFileNavigatorContribution).to(FileNavigatorContribution).inSingletonScope();
|
||||||
|
rebind(TheiaKeymapsFrontendContribution).to(KeymapsFrontendContribution).inSingletonScope();
|
||||||
rebind(TheiaEditorContribution).to(EditorContribution).inSingletonScope();
|
rebind(TheiaEditorContribution).to(EditorContribution).inSingletonScope();
|
||||||
rebind(TheiaMonacoStatusBarContribution).to(MonacoStatusBarContribution).inSingletonScope();
|
rebind(TheiaMonacoStatusBarContribution).to(MonacoStatusBarContribution).inSingletonScope();
|
||||||
rebind(TheiaApplicationShell).to(ApplicationShell).inSingletonScope();
|
rebind(TheiaApplicationShell).to(ApplicationShell).inSingletonScope();
|
||||||
|
@ -33,11 +33,12 @@ export class Settings extends SketchContribution {
|
|||||||
}
|
}
|
||||||
|
|
||||||
registerMenus(registry: MenuModelRegistry): void {
|
registerMenus(registry: MenuModelRegistry): void {
|
||||||
registry.registerMenuAction(ArduinoMenus.FILE__SETTINGS_GROUP, {
|
registry.registerMenuAction(ArduinoMenus.FILE__PREFERENCES_GROUP, {
|
||||||
commandId: Settings.Commands.OPEN.id,
|
commandId: Settings.Commands.OPEN.id,
|
||||||
label: 'Preferences...',
|
label: 'Preferences...',
|
||||||
order: '0'
|
order: '0'
|
||||||
});
|
});
|
||||||
|
registry.registerSubmenu(ArduinoMenus.FILE__ADVANCED_SUBMENU, 'Advanced');
|
||||||
}
|
}
|
||||||
|
|
||||||
registerKeybindings(registry: KeybindingRegistry): void {
|
registerKeybindings(registry: KeybindingRegistry): void {
|
||||||
|
@ -8,8 +8,12 @@ export namespace ArduinoMenus {
|
|||||||
// -- File
|
// -- File
|
||||||
export const FILE__SKETCH_GROUP = [...CommonMenus.FILE, '0_sketch'];
|
export const FILE__SKETCH_GROUP = [...CommonMenus.FILE, '0_sketch'];
|
||||||
export const FILE__PRINT_GROUP = [...CommonMenus.FILE, '1_print'];
|
export const FILE__PRINT_GROUP = [...CommonMenus.FILE, '1_print'];
|
||||||
// XXX: on macOS, the settings group is not under `File`
|
// XXX: on macOS, the "Preferences" and "Advanced" group is not under `File`
|
||||||
export const FILE__SETTINGS_GROUP = [...(isOSX ? MAIN_MENU_BAR : CommonMenus.FILE), '2_settings'];
|
// The empty path ensures no top level menu is created for the preferences, even if they contains sub menus
|
||||||
|
export const FILE__PREFERENCES_GROUP = [...(isOSX ? [''] : CommonMenus.FILE), '2_preferences'];
|
||||||
|
export const FILE__ADVANCED_GROUP = [...(isOSX ? [''] : CommonMenus.FILE), '3_advanced'];
|
||||||
|
export const FILE__ADVANCED_SUBMENU = [...FILE__ADVANCED_GROUP, '0_advanced_sub'];
|
||||||
|
|
||||||
export const FILE__QUIT_GROUP = [...CommonMenus.FILE, '3_quit'];
|
export const FILE__QUIT_GROUP = [...CommonMenus.FILE, '3_quit'];
|
||||||
|
|
||||||
// -- File / Open Recent
|
// -- File / Open Recent
|
||||||
|
@ -0,0 +1,16 @@
|
|||||||
|
import { injectable } from 'inversify';
|
||||||
|
import { MenuModelRegistry } from '@theia/core';
|
||||||
|
import { KeymapsFrontendContribution as TheiaKeymapsFrontendContribution, KeymapsCommands } from '@theia/keymaps/lib/browser/keymaps-frontend-contribution';
|
||||||
|
import { ArduinoMenus } from '../../menu/arduino-menus';
|
||||||
|
|
||||||
|
@injectable()
|
||||||
|
export class KeymapsFrontendContribution extends TheiaKeymapsFrontendContribution {
|
||||||
|
|
||||||
|
registerMenus(menus: MenuModelRegistry): void {
|
||||||
|
menus.registerMenuAction(ArduinoMenus.FILE__ADVANCED_SUBMENU, {
|
||||||
|
commandId: KeymapsCommands.OPEN_KEYMAPS.id,
|
||||||
|
label: 'Keyboard Shortcuts',
|
||||||
|
order: '1'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
@ -26,15 +26,17 @@ export class ElectronMainMenuFactory extends TheiaElectronMainMenuFactory {
|
|||||||
const { submenu } = super.createOSXMenu();
|
const { submenu } = super.createOSXMenu();
|
||||||
const label = 'Arduino IDE';
|
const label = 'Arduino IDE';
|
||||||
if (!!submenu && !(submenu instanceof remote.Menu)) {
|
if (!!submenu && !(submenu instanceof remote.Menu)) {
|
||||||
const [/* about */, /* settings */, ...rest] = submenu;
|
const [/* about */, /* preferences */, ...rest] = submenu;
|
||||||
const about = this.fillMenuTemplate([], this.menuProvider.getMenu(ArduinoMenus.HELP__ABOUT_GROUP));
|
const about = this.fillMenuTemplate([], this.menuProvider.getMenu(ArduinoMenus.HELP__ABOUT_GROUP));
|
||||||
const settings = this.fillMenuTemplate([], this.menuProvider.getMenu(ArduinoMenus.FILE__SETTINGS_GROUP));
|
const preferences = this.fillMenuTemplate([], this.menuProvider.getMenu(ArduinoMenus.FILE__PREFERENCES_GROUP));
|
||||||
|
const advanced = this.fillMenuTemplate([], this.menuProvider.getMenu(ArduinoMenus.FILE__ADVANCED_GROUP));
|
||||||
return {
|
return {
|
||||||
label,
|
label,
|
||||||
submenu: [
|
submenu: [
|
||||||
...about,
|
...about,
|
||||||
{ type: 'separator' },
|
{ type: 'separator' },
|
||||||
...settings,
|
...preferences,
|
||||||
|
...advanced,
|
||||||
{ type: 'separator' },
|
{ type: 'separator' },
|
||||||
...rest
|
...rest
|
||||||
]
|
]
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
"@theia/editor": "next",
|
"@theia/editor": "next",
|
||||||
"@theia/file-search": "next",
|
"@theia/file-search": "next",
|
||||||
"@theia/filesystem": "next",
|
"@theia/filesystem": "next",
|
||||||
|
"@theia/keymaps": "next",
|
||||||
"@theia/messages": "next",
|
"@theia/messages": "next",
|
||||||
"@theia/monaco": "next",
|
"@theia/monaco": "next",
|
||||||
"@theia/navigator": "next",
|
"@theia/navigator": "next",
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
"@theia/electron": "next",
|
"@theia/electron": "next",
|
||||||
"@theia/file-search": "next",
|
"@theia/file-search": "next",
|
||||||
"@theia/filesystem": "next",
|
"@theia/filesystem": "next",
|
||||||
|
"@theia/keymaps": "next",
|
||||||
"@theia/messages": "next",
|
"@theia/messages": "next",
|
||||||
"@theia/monaco": "next",
|
"@theia/monaco": "next",
|
||||||
"@theia/navigator": "next",
|
"@theia/navigator": "next",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user