@theia/core 1.62.0-next.3 → 1.62.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -7
- package/i18n/nls.cs.json +158 -13
- package/i18n/nls.de.json +158 -13
- package/i18n/nls.es.json +158 -13
- package/i18n/nls.fr.json +158 -13
- package/i18n/nls.hu.json +158 -13
- package/i18n/nls.it.json +158 -13
- package/i18n/nls.ja.json +158 -13
- package/i18n/nls.json +159 -14
- package/i18n/nls.ko.json +158 -13
- package/i18n/nls.pl.json +158 -13
- package/i18n/nls.pt-br.json +158 -13
- package/i18n/nls.ru.json +158 -13
- package/i18n/nls.tr.json +158 -13
- package/i18n/nls.zh-cn.json +158 -13
- package/i18n/nls.zh-tw.json +158 -13
- package/lib/browser/catalog.json +206 -33
- package/lib/browser/common-frontend-contribution.d.ts +1 -1
- package/lib/browser/common-frontend-contribution.d.ts.map +1 -1
- package/lib/browser/common-frontend-contribution.js +13 -11
- package/lib/browser/common-frontend-contribution.js.map +1 -1
- package/lib/browser/context-menu-renderer.d.ts +14 -3
- package/lib/browser/context-menu-renderer.d.ts.map +1 -1
- package/lib/browser/context-menu-renderer.js +23 -1
- package/lib/browser/context-menu-renderer.js.map +1 -1
- package/lib/browser/frontend-application-module.d.ts.map +1 -1
- package/lib/browser/frontend-application-module.js +1 -3
- package/lib/browser/frontend-application-module.js.map +1 -1
- package/lib/browser/hover-service.d.ts.map +1 -1
- package/lib/browser/hover-service.js +7 -0
- package/lib/browser/hover-service.js.map +1 -1
- package/lib/browser/menu/action-menu-node.d.ts +36 -0
- package/lib/browser/menu/action-menu-node.d.ts.map +1 -0
- package/lib/browser/menu/action-menu-node.js +113 -0
- package/lib/browser/menu/action-menu-node.js.map +1 -0
- package/lib/browser/menu/browser-context-menu-renderer.d.ts +12 -4
- package/lib/browser/menu/browser-context-menu-renderer.d.ts.map +1 -1
- package/lib/browser/menu/browser-context-menu-renderer.js +12 -13
- package/lib/browser/menu/browser-context-menu-renderer.js.map +1 -1
- package/lib/browser/menu/browser-menu-module.d.ts.map +1 -1
- package/lib/browser/menu/browser-menu-module.js +4 -0
- package/lib/browser/menu/browser-menu-module.js.map +1 -1
- package/lib/browser/menu/browser-menu-node-factory.d.ts +13 -0
- package/lib/browser/menu/browser-menu-node-factory.d.ts.map +1 -0
- package/lib/browser/menu/browser-menu-node-factory.js +54 -0
- package/lib/browser/menu/browser-menu-node-factory.js.map +1 -0
- package/lib/browser/menu/browser-menu-plugin.d.ts +12 -30
- package/lib/browser/menu/browser-menu-plugin.d.ts.map +1 -1
- package/lib/browser/menu/browser-menu-plugin.js +78 -159
- package/lib/browser/menu/browser-menu-plugin.js.map +1 -1
- package/lib/browser/menu/composite-menu-node.d.ts +49 -0
- package/lib/browser/menu/composite-menu-node.d.ts.map +1 -0
- package/lib/browser/menu/composite-menu-node.js +127 -0
- package/lib/browser/menu/composite-menu-node.js.map +1 -0
- package/lib/browser/menu/menu.spec.d.ts.map +1 -0
- package/lib/{common → browser}/menu/menu.spec.js +38 -13
- package/lib/browser/menu/menu.spec.js.map +1 -0
- package/lib/browser/open-with-service.d.ts +1 -1
- package/lib/browser/saveable-service.d.ts.map +1 -1
- package/lib/browser/saveable-service.js +6 -1
- package/lib/browser/saveable-service.js.map +1 -1
- package/lib/browser/shell/application-shell.d.ts +7 -5
- package/lib/browser/shell/application-shell.d.ts.map +1 -1
- package/lib/browser/shell/application-shell.js +82 -28
- package/lib/browser/shell/application-shell.js.map +1 -1
- package/lib/browser/shell/index.d.ts +1 -0
- package/lib/browser/shell/index.d.ts.map +1 -1
- package/lib/browser/shell/index.js +1 -0
- package/lib/browser/shell/index.js.map +1 -1
- package/lib/browser/shell/sidebar-bottom-menu-widget.d.ts.map +1 -1
- package/lib/browser/shell/sidebar-bottom-menu-widget.js +2 -1
- package/lib/browser/shell/sidebar-bottom-menu-widget.js.map +1 -1
- package/lib/browser/shell/sidebar-menu-widget.d.ts +4 -1
- package/lib/browser/shell/sidebar-menu-widget.d.ts.map +1 -1
- package/lib/browser/shell/sidebar-menu-widget.js +14 -1
- package/lib/browser/shell/sidebar-menu-widget.js.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.d.ts +66 -8
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.d.ts.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.js +161 -8
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.js.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.d.ts +18 -32
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.d.ts.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.js +52 -88
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.js.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.d.ts +17 -21
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.d.ts.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.js +9 -9
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.js.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.d.ts +7 -39
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.d.ts.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.js +30 -238
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.js.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.spec.js +13 -13
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.spec.js.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-toolbar-item.d.ts +56 -0
- package/lib/browser/shell/tab-bar-toolbar/tab-toolbar-item.d.ts.map +1 -0
- package/lib/browser/shell/tab-bar-toolbar/tab-toolbar-item.js +208 -0
- package/lib/browser/shell/tab-bar-toolbar/tab-toolbar-item.js.map +1 -0
- package/lib/browser/shell/tab-bars.d.ts.map +1 -1
- package/lib/browser/shell/tab-bars.js +2 -1
- package/lib/browser/shell/tab-bars.js.map +1 -1
- package/lib/browser/shell/theia-dock-panel.d.ts +4 -10
- package/lib/browser/shell/theia-dock-panel.d.ts.map +1 -1
- package/lib/browser/shell/theia-dock-panel.js +7 -84
- package/lib/browser/shell/theia-dock-panel.js.map +1 -1
- package/lib/browser/shell/theia-split-panel.d.ts +6 -0
- package/lib/browser/shell/theia-split-panel.d.ts.map +1 -0
- package/lib/browser/shell/theia-split-panel.js +56 -0
- package/lib/browser/shell/theia-split-panel.js.map +1 -0
- package/lib/browser/tree/tree-widget.d.ts +1 -0
- package/lib/browser/tree/tree-widget.d.ts.map +1 -1
- package/lib/browser/tree/tree-widget.js +6 -0
- package/lib/browser/tree/tree-widget.js.map +1 -1
- package/lib/browser/view-container.d.ts +6 -3
- package/lib/browser/view-container.d.ts.map +1 -1
- package/lib/browser/view-container.js +36 -26
- package/lib/browser/view-container.js.map +1 -1
- package/lib/browser/window/default-secondary-window-service.d.ts +1 -0
- package/lib/browser/window/default-secondary-window-service.d.ts.map +1 -1
- package/lib/browser/window/default-secondary-window-service.js +3 -0
- package/lib/browser/window/default-secondary-window-service.js.map +1 -1
- package/lib/common/listener.d.ts +21 -0
- package/lib/common/listener.d.ts.map +1 -0
- package/lib/common/listener.js +81 -0
- package/lib/common/listener.js.map +1 -0
- package/lib/common/listener.spec.d.ts +2 -0
- package/lib/common/listener.spec.d.ts.map +1 -0
- package/lib/common/listener.spec.js +255 -0
- package/lib/common/listener.spec.js.map +1 -0
- package/lib/common/menu/index.d.ts +2 -3
- package/lib/common/menu/index.d.ts.map +1 -1
- package/lib/common/menu/index.js +2 -3
- package/lib/common/menu/index.js.map +1 -1
- package/lib/common/menu/menu-model-registry.d.ts +37 -50
- package/lib/common/menu/menu-model-registry.d.ts.map +1 -1
- package/lib/common/menu/menu-model-registry.js +176 -225
- package/lib/common/menu/menu-model-registry.js.map +1 -1
- package/lib/common/menu/menu-types.d.ts +58 -96
- package/lib/common/menu/menu-types.d.ts.map +1 -1
- package/lib/common/menu/menu-types.js +43 -39
- package/lib/common/menu/menu-types.js.map +1 -1
- package/lib/common/messaging/proxy-factory.d.ts.map +1 -1
- package/lib/common/messaging/proxy-factory.js +4 -0
- package/lib/common/messaging/proxy-factory.js.map +1 -1
- package/lib/electron-browser/menu/electron-context-menu-renderer.d.ts +15 -5
- package/lib/electron-browser/menu/electron-context-menu-renderer.d.ts.map +1 -1
- package/lib/electron-browser/menu/electron-context-menu-renderer.js +21 -14
- package/lib/electron-browser/menu/electron-context-menu-renderer.js.map +1 -1
- package/lib/electron-browser/menu/electron-main-menu-factory.d.ts +4 -16
- package/lib/electron-browser/menu/electron-main-menu-factory.d.ts.map +1 -1
- package/lib/electron-browser/menu/electron-main-menu-factory.js +84 -104
- package/lib/electron-browser/menu/electron-main-menu-factory.js.map +1 -1
- package/lib/electron-browser/menu/electron-menu-contribution.d.ts.map +1 -1
- package/lib/electron-browser/menu/electron-menu-contribution.js +1 -4
- package/lib/electron-browser/menu/electron-menu-contribution.js.map +1 -1
- package/lib/electron-browser/menu/electron-menu-module.d.ts.map +1 -1
- package/lib/electron-browser/menu/electron-menu-module.js +5 -0
- package/lib/electron-browser/menu/electron-menu-module.js.map +1 -1
- package/lib/electron-browser/window/electron-secondary-window-service.d.ts +1 -0
- package/lib/electron-browser/window/electron-secondary-window-service.d.ts.map +1 -1
- package/lib/electron-browser/window/electron-secondary-window-service.js +20 -0
- package/lib/electron-browser/window/electron-secondary-window-service.js.map +1 -1
- package/lib/electron-browser/window/electron-window-service.d.ts +3 -0
- package/lib/electron-browser/window/electron-window-service.d.ts.map +1 -1
- package/lib/electron-browser/window/electron-window-service.js +10 -1
- package/lib/electron-browser/window/electron-window-service.js.map +1 -1
- package/lib/electron-main/theia-electron-window.d.ts.map +1 -1
- package/lib/electron-main/theia-electron-window.js +2 -0
- package/lib/electron-main/theia-electron-window.js.map +1 -1
- package/package.json +7 -8
- package/src/browser/common-frontend-contribution.ts +14 -14
- package/src/browser/context-menu-renderer.ts +33 -5
- package/src/browser/frontend-application-module.ts +1 -7
- package/src/browser/hover-service.ts +7 -0
- package/src/browser/menu/action-menu-node.ts +128 -0
- package/src/browser/menu/browser-context-menu-renderer.ts +18 -11
- package/src/browser/menu/browser-menu-module.ts +4 -0
- package/src/browser/menu/browser-menu-node-factory.ts +48 -0
- package/src/browser/menu/browser-menu-plugin.ts +80 -168
- package/src/browser/menu/composite-menu-node.ts +140 -0
- package/src/{common → browser}/menu/menu.spec.ts +47 -15
- package/src/browser/open-with-service.ts +1 -1
- package/src/browser/saveable-service.ts +6 -1
- package/src/browser/shell/application-shell.ts +91 -29
- package/src/browser/shell/index.ts +1 -0
- package/src/browser/shell/sidebar-bottom-menu-widget.tsx +2 -1
- package/src/browser/shell/sidebar-menu-widget.tsx +12 -2
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.tsx +239 -0
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.ts +59 -102
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.ts +14 -23
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar.spec.ts +14 -14
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar.tsx +34 -261
- package/src/browser/shell/tab-bar-toolbar/tab-toolbar-item.tsx +251 -0
- package/src/browser/shell/tab-bars.ts +2 -1
- package/src/browser/shell/theia-dock-panel.ts +10 -91
- package/src/browser/shell/theia-split-panel.ts +56 -0
- package/src/browser/style/hover-service.css +6 -1
- package/src/browser/style/index.css +3 -11
- package/src/browser/style/view-container.css +17 -31
- package/src/browser/tree/tree-widget.tsx +7 -0
- package/src/browser/view-container.ts +51 -30
- package/src/browser/window/default-secondary-window-service.ts +4 -0
- package/src/common/listener.spec.ts +315 -0
- package/src/common/listener.ts +88 -0
- package/src/common/menu/index.ts +2 -3
- package/src/common/menu/menu-model-registry.ts +187 -230
- package/src/common/menu/menu-types.ts +82 -128
- package/src/common/messaging/proxy-factory.ts +4 -1
- package/src/electron-browser/menu/electron-context-menu-renderer.ts +29 -13
- package/src/electron-browser/menu/electron-main-menu-factory.ts +92 -116
- package/src/electron-browser/menu/electron-menu-contribution.ts +1 -4
- package/src/electron-browser/menu/electron-menu-module.ts +6 -1
- package/src/electron-browser/window/electron-secondary-window-service.ts +22 -0
- package/src/electron-browser/window/electron-window-service.ts +11 -1
- package/src/electron-main/theia-electron-window.ts +2 -0
- package/lib/common/menu/action-menu-node.d.ts +0 -20
- package/lib/common/menu/action-menu-node.d.ts.map +0 -1
- package/lib/common/menu/action-menu-node.js +0 -57
- package/lib/common/menu/action-menu-node.js.map +0 -1
- package/lib/common/menu/composite-menu-node.d.ts +0 -47
- package/lib/common/menu/composite-menu-node.d.ts.map +0 -1
- package/lib/common/menu/composite-menu-node.js +0 -96
- package/lib/common/menu/composite-menu-node.js.map +0 -1
- package/lib/common/menu/composite-menu-node.spec.d.ts +0 -2
- package/lib/common/menu/composite-menu-node.spec.d.ts.map +0 -1
- package/lib/common/menu/composite-menu-node.spec.js +0 -68
- package/lib/common/menu/composite-menu-node.spec.js.map +0 -1
- package/lib/common/menu/menu-adapter.d.ts +0 -36
- package/lib/common/menu/menu-adapter.d.ts.map +0 -1
- package/lib/common/menu/menu-adapter.js +0 -93
- package/lib/common/menu/menu-adapter.js.map +0 -1
- package/lib/common/menu/menu.spec.d.ts.map +0 -1
- package/lib/common/menu/menu.spec.js.map +0 -1
- package/lib/common/test/mock-menu.d.ts +0 -8
- package/lib/common/test/mock-menu.d.ts.map +0 -1
- package/lib/common/test/mock-menu.js +0 -35
- package/lib/common/test/mock-menu.js.map +0 -1
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.ts +0 -31
- package/src/common/menu/action-menu-node.ts +0 -65
- package/src/common/menu/composite-menu-node.spec.ts +0 -67
- package/src/common/menu/composite-menu-node.ts +0 -116
- package/src/common/menu/menu-adapter.ts +0 -103
- package/src/common/test/mock-menu.ts +0 -35
- /package/lib/{common → browser}/menu/menu.spec.d.ts +0 -0
|
@@ -23,6 +23,7 @@ const electron_main_window_service_1 = require("../../electron-common/electron-m
|
|
|
23
23
|
const electron_window_preferences_1 = require("./electron-window-preferences");
|
|
24
24
|
const connection_management_1 = require("../../common/messaging/connection-management");
|
|
25
25
|
const frontend_id_provider_1 = require("../../browser/messaging/frontend-id-provider");
|
|
26
|
+
const listener_1 = require("../../common/listener");
|
|
26
27
|
let ElectronWindowService = class ElectronWindowService extends default_window_service_1.DefaultWindowService {
|
|
27
28
|
constructor() {
|
|
28
29
|
super(...arguments);
|
|
@@ -34,6 +35,8 @@ let ElectronWindowService = class ElectronWindowService extends default_window_s
|
|
|
34
35
|
* Close the window right away when `true`, else check if we can unload.
|
|
35
36
|
*/
|
|
36
37
|
this.closeOnUnload = false;
|
|
38
|
+
this.onWillShutDownListeners = new listener_1.ListenerList();
|
|
39
|
+
this.onWillShutDown = this.onWillShutDownListeners.registration;
|
|
37
40
|
}
|
|
38
41
|
openNewWindow(url, { external } = {}) {
|
|
39
42
|
this.delegate.openNewWindow(url, { external });
|
|
@@ -57,7 +60,13 @@ let ElectronWindowService = class ElectronWindowService extends default_window_s
|
|
|
57
60
|
});
|
|
58
61
|
}
|
|
59
62
|
registerUnloadListeners() {
|
|
60
|
-
window.electronTheiaCore.setCloseRequestHandler(reason =>
|
|
63
|
+
window.electronTheiaCore.setCloseRequestHandler(async (reason) => {
|
|
64
|
+
const willShutDown = await this.isSafeToShutDown(reason);
|
|
65
|
+
if (willShutDown) {
|
|
66
|
+
await listener_1.Listener.await(undefined, this.onWillShutDownListeners);
|
|
67
|
+
}
|
|
68
|
+
return willShutDown;
|
|
69
|
+
});
|
|
61
70
|
window.addEventListener('unload', () => {
|
|
62
71
|
this.onUnloadEmitter.fire();
|
|
63
72
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"electron-window-service.js","sourceRoot":"","sources":["../../../src/electron-browser/window/electron-window-service.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAEhF,yCAA8D;AAE9D,wFAAmF;AACnF,qGAA+F;AAC/F,+EAA0E;AAC1E,wFAAsF;AACtF,uFAAkF;
|
|
1
|
+
{"version":3,"file":"electron-window-service.js","sourceRoot":"","sources":["../../../src/electron-browser/window/electron-window-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theia-electron-window.d.ts","sourceRoot":"","sources":["../../src/electron-main/theia-electron-window.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAC5F,OAAO,EAAE,aAAa,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AAEhG,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAMjE;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,+BAA+B;IAC9E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,eAAO,MAAM,yBAAyB,eAAsC,CAAC;AAE7E,eAAO,MAAM,uBAAuB,eAAoC,CAAC;AACzE,MAAM,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;AAQhE,qBACa,mBAAmB;IAEO,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,yBAAyB,CAAC;IACxD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAC;IAC5C,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,8BAA8B,CAAC;IAEnG,SAAS,CAAC,iBAAiB,gBAAuB;IAElD,IAAI,UAAU,IAAI,KAAK,CAAC,IAAI,CAAC,CAE5B;IAED,SAAS,CAAC,QAAQ,CAAC,SAAS,uBAAoD;IAEhF,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC;IACjC,IAAI,MAAM,IAAI,aAAa,CAE1B;IAED,SAAS,CAAC,gBAAgB,UAAS;IACnC,SAAS,CAAC,gBAAgB,EAAE,wBAAwB,CAAU;IAG9D,SAAS,CAAC,IAAI,IAAI,IAAI;IAatB,SAAS,CAAC,6BAA6B,IAAI,IAAI;IAuB/C;;OAEG;IACH,SAAS,CAAC,iBAAiB,IAAI,IAAI;IAInC,SAAS,CAAC,oBAAoB,IAAI,IAAI;cAetB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAM9C,KAAK,CAAC,MAAM,GAAE,UAA6B,GAAG,OAAO,CAAC,OAAO,CAAC;IAI9D,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;cAWvB,iBAAiB,CAAC,cAAc,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAsB/G,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAI/D,SAAS,CAAC,qBAAqB,IAAI,IAAI;IAgBvC,SAAS,CAAC,qBAAqB,IAAI,IAAI;IAMvC,SAAS,CAAC,oBAAoB,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"theia-electron-window.d.ts","sourceRoot":"","sources":["../../src/electron-main/theia-electron-window.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAC;AAC5F,OAAO,EAAE,aAAa,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AAEhG,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAMjE;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,+BAA+B;IAC9E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,eAAO,MAAM,yBAAyB,eAAsC,CAAC;AAE7E,eAAO,MAAM,uBAAuB,eAAoC,CAAC;AACzE,MAAM,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;AAQhE,qBACa,mBAAmB;IAEO,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,yBAAyB,CAAC;IACxD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAC;IAC5C,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,8BAA8B,CAAC;IAEnG,SAAS,CAAC,iBAAiB,gBAAuB;IAElD,IAAI,UAAU,IAAI,KAAK,CAAC,IAAI,CAAC,CAE5B;IAED,SAAS,CAAC,QAAQ,CAAC,SAAS,uBAAoD;IAEhF,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC;IACjC,IAAI,MAAM,IAAI,aAAa,CAE1B;IAED,SAAS,CAAC,gBAAgB,UAAS;IACnC,SAAS,CAAC,gBAAgB,EAAE,wBAAwB,CAAU;IAG9D,SAAS,CAAC,IAAI,IAAI,IAAI;IAatB,SAAS,CAAC,6BAA6B,IAAI,IAAI;IAuB/C;;OAEG;IACH,SAAS,CAAC,iBAAiB,IAAI,IAAI;IAInC,SAAS,CAAC,oBAAoB,IAAI,IAAI;cAetB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAM9C,KAAK,CAAC,MAAM,GAAE,UAA6B,GAAG,OAAO,CAAC,OAAO,CAAC;IAI9D,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;cAWvB,iBAAiB,CAAC,cAAc,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAsB/G,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAI/D,SAAS,CAAC,qBAAqB,IAAI,IAAI;IAgBvC,SAAS,CAAC,qBAAqB,IAAI,IAAI;IAMvC,SAAS,CAAC,oBAAoB,IAAI,IAAI;IAMtC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAItC,OAAO,IAAI,IAAI;CAGlB;AAED,MAAM,WAAW,0BAA0B;IACvC,CAAC,OAAO,EAAE,yBAAyB,EAAE,MAAM,EAAE,yBAAyB,GAAG,mBAAmB,CAAC;CAChG;AAED,eAAO,MAAM,0BAA0B,eAAuC,CAAC"}
|
|
@@ -170,6 +170,8 @@ let TheiaElectronWindow = class TheiaElectronWindow {
|
|
|
170
170
|
}));
|
|
171
171
|
}
|
|
172
172
|
attachReloadListener() {
|
|
173
|
+
this.window.webContents.removeAllListeners('devtools-reload-page');
|
|
174
|
+
this.window.webContents.on('devtools-reload-page', () => this.reload());
|
|
173
175
|
this.toDispose.push(electron_api_main_1.TheiaRendererAPI.onRequestReload(this.window.webContents, (newUrl) => this.reload(newUrl)));
|
|
174
176
|
}
|
|
175
177
|
openUrl(url) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theia-electron-window.js","sourceRoot":"","sources":["../../src/electron-main/theia-electron-window.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAGhF,qFAA4F;AAC5F,6DAAgG;AAChG,sDAA2E;AAC3E,uEAA2E;AAC3E,sCAAiE;AACjE,+CAAyD;AACzD,uCAAoC;AACpC,iDAA6C;AAC7C,2DAAuD;AAsB1C,QAAA,yBAAyB,GAAG,MAAM,CAAC,2BAA2B,CAAC,CAAC;AAEhE,QAAA,uBAAuB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;AAGzE,IAAK,YAIJ;AAJD,WAAK,YAAY;IACb,qDAAO,CAAA;IACP,2DAAU,CAAA;IACV,+DAAY,CAAA;AAChB,CAAC,EAJI,YAAY,KAAZ,YAAY,QAIhB;AAGM,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAAzB;QAMO,sBAAiB,GAAG,IAAI,gBAAO,EAAQ,CAAC;QAM/B,cAAS,GAAG,IAAI,6BAAoB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAOtE,qBAAgB,GAAG,KAAK,CAAC;QACzB,qBAAgB,GAA6B,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"theia-electron-window.js","sourceRoot":"","sources":["../../src/electron-main/theia-electron-window.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/core",
|
|
3
|
-
"version": "1.62.
|
|
3
|
+
"version": "1.62.1",
|
|
4
4
|
"description": "Theia is a cloud & desktop IDE framework implemented in TypeScript.",
|
|
5
5
|
"main": "lib/common/index.js",
|
|
6
6
|
"typings": "lib/common/index.d.ts",
|
|
@@ -17,11 +17,10 @@
|
|
|
17
17
|
"@lumino/virtualdom": "^2.0.2",
|
|
18
18
|
"@lumino/widgets": "2.5.0",
|
|
19
19
|
"@parcel/watcher": "^2.5.0",
|
|
20
|
-
"@theia/application-package": "1.62.
|
|
21
|
-
"@theia/request": "1.62.
|
|
20
|
+
"@theia/application-package": "1.62.1",
|
|
21
|
+
"@theia/request": "1.62.1",
|
|
22
22
|
"@types/body-parser": "^1.16.4",
|
|
23
23
|
"@types/cookie": "^0.3.3",
|
|
24
|
-
"@types/dompurify": "^2.2.2",
|
|
25
24
|
"@types/express": "^4.17.21",
|
|
26
25
|
"@types/fs-extra": "^4.0.2",
|
|
27
26
|
"@types/lodash.debounce": "4.0.3",
|
|
@@ -39,7 +38,7 @@
|
|
|
39
38
|
"async-mutex": "^0.4.0",
|
|
40
39
|
"body-parser": "^1.17.2",
|
|
41
40
|
"cookie": "^0.4.0",
|
|
42
|
-
"dompurify": "^
|
|
41
|
+
"dompurify": "^3.2.4",
|
|
43
42
|
"drivelist": "^12.0.2",
|
|
44
43
|
"express": "^4.21.0",
|
|
45
44
|
"fast-json-stable-stringify": "^2.1.0",
|
|
@@ -209,13 +208,13 @@
|
|
|
209
208
|
"watch": "theiaext watch"
|
|
210
209
|
},
|
|
211
210
|
"devDependencies": {
|
|
212
|
-
"@theia/ext-scripts": "1.
|
|
213
|
-
"@theia/re-exports": "1.
|
|
211
|
+
"@theia/ext-scripts": "1.62.1",
|
|
212
|
+
"@theia/re-exports": "1.62.1",
|
|
214
213
|
"minimist": "^1.2.0",
|
|
215
214
|
"nodejs-file-downloader": "4.13.0"
|
|
216
215
|
},
|
|
217
216
|
"nyc": {
|
|
218
217
|
"extends": "../../configs/nyc.json"
|
|
219
218
|
},
|
|
220
|
-
"gitHead": "
|
|
219
|
+
"gitHead": "0cdb67623c7b5ce0a2d41a1440ed0a78bce890de"
|
|
221
220
|
}
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
|
|
19
19
|
import debounce = require('lodash.debounce');
|
|
20
20
|
import { injectable, inject, optional } from 'inversify';
|
|
21
|
-
import { MAIN_MENU_BAR, MANAGE_MENU, MenuContribution, MenuModelRegistry, ACCOUNTS_MENU } from '../common/menu';
|
|
21
|
+
import { MAIN_MENU_BAR, MANAGE_MENU, MenuContribution, MenuModelRegistry, ACCOUNTS_MENU, CompoundMenuNode, CommandMenu, Group, Submenu } from '../common/menu';
|
|
22
22
|
import { KeybindingContribution, KeybindingRegistry } from './keybinding';
|
|
23
23
|
import { FrontendApplication } from './frontend-application';
|
|
24
24
|
import { FrontendApplicationContribution, OnWillStopAction } from './frontend-application-contribution';
|
|
@@ -84,7 +84,7 @@ export namespace CommonMenus {
|
|
|
84
84
|
export const FILE_SETTINGS_SUBMENU_THEME = [...FILE_SETTINGS_SUBMENU, '2_settings_submenu_theme'];
|
|
85
85
|
export const FILE_CLOSE = [...FILE, '6_close'];
|
|
86
86
|
|
|
87
|
-
export const FILE_NEW_CONTRIBUTIONS = 'file
|
|
87
|
+
export const FILE_NEW_CONTRIBUTIONS = ['file', 'newFile'];
|
|
88
88
|
|
|
89
89
|
export const EDIT = [...MAIN_MENU_BAR, '2_edit'];
|
|
90
90
|
export const EDIT_UNDO = [...EDIT, '1_undo'];
|
|
@@ -622,7 +622,7 @@ export class CommonFrontendContribution implements FrontendApplicationContributi
|
|
|
622
622
|
registry.registerSubmenu(CommonMenus.HELP, nls.localizeByDefault('Help'));
|
|
623
623
|
|
|
624
624
|
// For plugins contributing create new file commands/menu-actions
|
|
625
|
-
registry.
|
|
625
|
+
registry.registerSubmenu(CommonMenus.FILE_NEW_CONTRIBUTIONS, nls.localizeByDefault('New File...'));
|
|
626
626
|
|
|
627
627
|
registry.registerMenuAction(CommonMenus.FILE_SAVE, {
|
|
628
628
|
commandId: CommonCommands.SAVE.id
|
|
@@ -763,7 +763,7 @@ export class CommonFrontendContribution implements FrontendApplicationContributi
|
|
|
763
763
|
commandId: CommonCommands.SELECT_ICON_THEME.id
|
|
764
764
|
});
|
|
765
765
|
|
|
766
|
-
registry.registerSubmenu(CommonMenus.MANAGE_SETTINGS_THEMES, nls.localizeByDefault('Themes'), {
|
|
766
|
+
registry.registerSubmenu(CommonMenus.MANAGE_SETTINGS_THEMES, nls.localizeByDefault('Themes'), { sortString: 'a50' });
|
|
767
767
|
registry.registerMenuAction(CommonMenus.MANAGE_SETTINGS_THEMES, {
|
|
768
768
|
commandId: CommonCommands.SELECT_COLOR_THEME.id,
|
|
769
769
|
order: '0'
|
|
@@ -1499,7 +1499,7 @@ export class CommonFrontendContribution implements FrontendApplicationContributi
|
|
|
1499
1499
|
* @todo https://github.com/eclipse-theia/theia/issues/12824
|
|
1500
1500
|
*/
|
|
1501
1501
|
protected async showNewFilePicker(): Promise<void> {
|
|
1502
|
-
const newFileContributions = this.menuRegistry.getMenuNode(CommonMenus.FILE_NEW_CONTRIBUTIONS); // Add menus
|
|
1502
|
+
const newFileContributions = this.menuRegistry.getMenuNode(CommonMenus.FILE_NEW_CONTRIBUTIONS) as Submenu; // Add menus
|
|
1503
1503
|
const items: QuickPickItemOrSeparator[] = [
|
|
1504
1504
|
{
|
|
1505
1505
|
label: nls.localizeByDefault('New Text File'),
|
|
@@ -1508,22 +1508,22 @@ export class CommonFrontendContribution implements FrontendApplicationContributi
|
|
|
1508
1508
|
},
|
|
1509
1509
|
...newFileContributions.children
|
|
1510
1510
|
.flatMap(node => {
|
|
1511
|
-
if (node
|
|
1511
|
+
if (CompoundMenuNode.is(node) && node.children.length > 0) {
|
|
1512
1512
|
return node.children;
|
|
1513
1513
|
}
|
|
1514
1514
|
return node;
|
|
1515
1515
|
})
|
|
1516
|
-
.filter(node => node
|
|
1516
|
+
.filter(node => Group.is(node) || CommandMenu.is(node))
|
|
1517
1517
|
.map(node => {
|
|
1518
|
-
if (node
|
|
1518
|
+
if (Group.is(node)) {
|
|
1519
1519
|
return { type: 'separator' } as QuickPickSeparator;
|
|
1520
|
+
} else {
|
|
1521
|
+
const item = node as CommandMenu;
|
|
1522
|
+
return {
|
|
1523
|
+
label: item.label,
|
|
1524
|
+
execute: () => item.run(CommonMenus.FILE_NEW_CONTRIBUTIONS)
|
|
1525
|
+
};
|
|
1520
1526
|
}
|
|
1521
|
-
const command = this.commandRegistry.getCommand(node.command!);
|
|
1522
|
-
return {
|
|
1523
|
-
label: command!.label!,
|
|
1524
|
-
execute: async () => this.commandRegistry.executeCommand(command!.id!)
|
|
1525
|
-
};
|
|
1526
|
-
|
|
1527
1527
|
})
|
|
1528
1528
|
];
|
|
1529
1529
|
|
|
@@ -16,10 +16,10 @@
|
|
|
16
16
|
|
|
17
17
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
18
18
|
|
|
19
|
-
import { injectable } from 'inversify';
|
|
20
|
-
import { MenuPath } from '../common/menu';
|
|
19
|
+
import { injectable, inject } from 'inversify';
|
|
20
|
+
import { CompoundMenuNode, MenuModelRegistry, MenuPath } from '../common/menu';
|
|
21
21
|
import { Disposable, DisposableCollection } from '../common/disposable';
|
|
22
|
-
import { ContextMatcher } from './context-key-service';
|
|
22
|
+
import { ContextKeyService, ContextMatcher } from './context-key-service';
|
|
23
23
|
|
|
24
24
|
export interface Coordinate { x: number; y: number; }
|
|
25
25
|
export const Coordinate = Symbol('Coordinate');
|
|
@@ -53,6 +53,10 @@ export class ContextMenuAccess implements Disposable {
|
|
|
53
53
|
@injectable()
|
|
54
54
|
export abstract class ContextMenuRenderer {
|
|
55
55
|
|
|
56
|
+
@inject(MenuModelRegistry) menuRegistry: MenuModelRegistry;
|
|
57
|
+
@inject(ContextKeyService)
|
|
58
|
+
protected readonly contextKeyService: ContextKeyService;
|
|
59
|
+
|
|
56
60
|
protected _current: ContextMenuAccess | undefined;
|
|
57
61
|
protected readonly toDisposeOnSetCurrent = new DisposableCollection();
|
|
58
62
|
/**
|
|
@@ -80,13 +84,36 @@ export abstract class ContextMenuRenderer {
|
|
|
80
84
|
}
|
|
81
85
|
|
|
82
86
|
render(options: RenderContextMenuOptions): ContextMenuAccess {
|
|
87
|
+
let menu = CompoundMenuNode.is(options.menu) ? options.menu : this.menuRegistry.getMenu(options.menuPath);
|
|
88
|
+
|
|
83
89
|
const resolvedOptions = this.resolve(options);
|
|
84
|
-
|
|
90
|
+
|
|
91
|
+
if (resolvedOptions.skipSingleRootNode) {
|
|
92
|
+
menu = MenuModelRegistry.removeSingleRootNode(menu);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
const access = this.doRender({
|
|
96
|
+
menuPath: options.menuPath,
|
|
97
|
+
menu,
|
|
98
|
+
anchor: resolvedOptions.anchor,
|
|
99
|
+
contextMatcher: options.contextKeyService || this.contextKeyService,
|
|
100
|
+
args: resolvedOptions.args,
|
|
101
|
+
context: resolvedOptions.context,
|
|
102
|
+
onHide: resolvedOptions.onHide
|
|
103
|
+
});
|
|
85
104
|
this.setCurrent(access);
|
|
86
105
|
return access;
|
|
87
106
|
}
|
|
88
107
|
|
|
89
|
-
protected abstract doRender(
|
|
108
|
+
protected abstract doRender(params: {
|
|
109
|
+
menuPath: MenuPath,
|
|
110
|
+
menu: CompoundMenuNode,
|
|
111
|
+
anchor: Anchor,
|
|
112
|
+
contextMatcher: ContextMatcher,
|
|
113
|
+
args?: any[],
|
|
114
|
+
context?: HTMLElement,
|
|
115
|
+
onHide?: () => void
|
|
116
|
+
}): ContextMenuAccess;
|
|
90
117
|
|
|
91
118
|
protected resolve(options: RenderContextMenuOptions): RenderContextMenuOptions {
|
|
92
119
|
const args: any[] = options.args ? options.args.slice() : [];
|
|
@@ -102,6 +129,7 @@ export abstract class ContextMenuRenderer {
|
|
|
102
129
|
}
|
|
103
130
|
|
|
104
131
|
export interface RenderContextMenuOptions {
|
|
132
|
+
menu?: CompoundMenuNode,
|
|
105
133
|
menuPath: MenuPath;
|
|
106
134
|
anchor: Anchor;
|
|
107
135
|
args?: any[];
|
|
@@ -32,10 +32,6 @@ import {
|
|
|
32
32
|
messageServicePath,
|
|
33
33
|
InMemoryTextResourceResolver,
|
|
34
34
|
UntitledResourceResolver,
|
|
35
|
-
MenuCommandAdapterRegistry,
|
|
36
|
-
MenuCommandExecutor,
|
|
37
|
-
MenuCommandAdapterRegistryImpl,
|
|
38
|
-
MenuCommandExecutorImpl,
|
|
39
35
|
MenuPath
|
|
40
36
|
} from '../common';
|
|
41
37
|
import { KeybindingRegistry, KeybindingContext, KeybindingContribution } from './keybinding';
|
|
@@ -209,7 +205,7 @@ export const frontendApplicationModule = new ContainerModule((bind, _unbind, _is
|
|
|
209
205
|
return new TabBarRenderer(contextMenuRenderer, tabBarDecoratorService, iconThemeService,
|
|
210
206
|
selectionService, commandService, corePreferences, hoverService, contextKeyService);
|
|
211
207
|
});
|
|
212
|
-
bind(TheiaDockPanel.Factory).toFactory(({ container }) => (options?: DockPanel.IOptions) => {
|
|
208
|
+
bind(TheiaDockPanel.Factory).toFactory(({ container }) => (options?: DockPanel.IOptions, maximizeCallback?: (area: TheiaDockPanel) => void) => {
|
|
213
209
|
const corePreferences = container.get<CorePreferences>(CorePreferences);
|
|
214
210
|
return new TheiaDockPanel(options, corePreferences);
|
|
215
211
|
});
|
|
@@ -271,8 +267,6 @@ export const frontendApplicationModule = new ContainerModule((bind, _unbind, _is
|
|
|
271
267
|
|
|
272
268
|
bind(MenuModelRegistry).toSelf().inSingletonScope();
|
|
273
269
|
bindContributionProvider(bind, MenuContribution);
|
|
274
|
-
bind(MenuCommandAdapterRegistry).to(MenuCommandAdapterRegistryImpl).inSingletonScope();
|
|
275
|
-
bind(MenuCommandExecutor).to(MenuCommandExecutorImpl).inSingletonScope();
|
|
276
270
|
|
|
277
271
|
bind(KeyboardLayoutService).toSelf().inSingletonScope();
|
|
278
272
|
bind(KeybindingRegistry).toSelf().inSingletonScope();
|
|
@@ -92,6 +92,7 @@ export class HoverService {
|
|
|
92
92
|
this._hoverHost = document.createElement('div');
|
|
93
93
|
this._hoverHost.classList.add(HoverService.hostClassName);
|
|
94
94
|
this._hoverHost.style.position = 'absolute';
|
|
95
|
+
this._hoverHost.setAttribute('popover', 'hint');
|
|
95
96
|
}
|
|
96
97
|
return this._hoverHost;
|
|
97
98
|
}
|
|
@@ -138,6 +139,9 @@ export class HoverService {
|
|
|
138
139
|
host.style.left = '0px';
|
|
139
140
|
host.style.top = '0px';
|
|
140
141
|
document.body.append(host);
|
|
142
|
+
if (!host.matches(':popover-open')) {
|
|
143
|
+
host.showPopover();
|
|
144
|
+
}
|
|
141
145
|
|
|
142
146
|
if (request.visualPreview) {
|
|
143
147
|
// If just a string is being rendered use the size of the outer box
|
|
@@ -219,6 +223,9 @@ export class HoverService {
|
|
|
219
223
|
}
|
|
220
224
|
|
|
221
225
|
protected unRenderHover(): void {
|
|
226
|
+
if (this.hoverHost.matches(':popover-open')) {
|
|
227
|
+
this.hoverHost.hidePopover();
|
|
228
|
+
}
|
|
222
229
|
this.hoverHost.remove();
|
|
223
230
|
this.hoverHost.replaceChildren();
|
|
224
231
|
}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2022 Ericsson and others.
|
|
3
|
+
//
|
|
4
|
+
// This program and the accompanying materials are made available under the
|
|
5
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
//
|
|
8
|
+
// This Source Code may also be made available under the following Secondary
|
|
9
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
// with the GNU Classpath Exception which is available at
|
|
12
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
//
|
|
14
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
+
// *****************************************************************************
|
|
16
|
+
|
|
17
|
+
import { KeybindingRegistry } from '../keybinding';
|
|
18
|
+
import { ContextKeyService } from '../context-key-service';
|
|
19
|
+
import { DisposableCollection, isObject, CommandRegistry, Emitter } from '../../common';
|
|
20
|
+
import { CommandMenu, ContextExpressionMatcher, MenuAction, MenuPath } from '../../common/menu/menu-types';
|
|
21
|
+
|
|
22
|
+
export interface AcceleratorSource {
|
|
23
|
+
getAccelerator(context: HTMLElement | undefined): string[];
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export namespace AcceleratorSource {
|
|
27
|
+
export function is(node: unknown): node is AcceleratorSource {
|
|
28
|
+
return isObject<AcceleratorSource>(node) && typeof node.getAccelerator === 'function';
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Node representing an action in the menu tree structure.
|
|
34
|
+
* It's based on {@link MenuAction} for which it tries to determine the
|
|
35
|
+
* best label, icon and sortString with the given data.
|
|
36
|
+
*/
|
|
37
|
+
export class ActionMenuNode implements CommandMenu {
|
|
38
|
+
|
|
39
|
+
protected readonly disposables = new DisposableCollection();
|
|
40
|
+
protected readonly onDidChangeEmitter = new Emitter<void>();
|
|
41
|
+
|
|
42
|
+
onDidChange = this.onDidChangeEmitter.event;
|
|
43
|
+
|
|
44
|
+
constructor(
|
|
45
|
+
protected readonly action: MenuAction,
|
|
46
|
+
protected readonly commands: CommandRegistry,
|
|
47
|
+
protected readonly keybindingRegistry: KeybindingRegistry,
|
|
48
|
+
protected readonly contextKeyService: ContextKeyService
|
|
49
|
+
) {
|
|
50
|
+
this.commands.getAllHandlers(action.commandId).forEach(handler => {
|
|
51
|
+
if (handler.onDidChangeEnabled) {
|
|
52
|
+
this.disposables.push(handler.onDidChangeEnabled(() => this.onDidChangeEmitter.fire()));
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
if (action.when) {
|
|
57
|
+
const contextKeys = new Set<string>();
|
|
58
|
+
this.contextKeyService.parseKeys(action.when)?.forEach(key => contextKeys.add(key));
|
|
59
|
+
if (contextKeys.size > 0) {
|
|
60
|
+
this.disposables.push(this.contextKeyService.onDidChange(change => {
|
|
61
|
+
if (change.affects(contextKeys)) {
|
|
62
|
+
this.onDidChangeEmitter.fire();
|
|
63
|
+
}
|
|
64
|
+
}));
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
dispose(): void {
|
|
70
|
+
this.disposables.dispose();
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
isVisible<T>(effeciveMenuPath: MenuPath, contextMatcher: ContextExpressionMatcher<T>, context: T | undefined, ...args: unknown[]): boolean {
|
|
74
|
+
if (!this.commands.isVisible(this.action.commandId, ...args)) {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
if (this.action.when) {
|
|
78
|
+
return contextMatcher.match(this.action.when, context);
|
|
79
|
+
}
|
|
80
|
+
return true;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
getAccelerator(context: HTMLElement | undefined): string[] {
|
|
84
|
+
const bindings = this.keybindingRegistry.getKeybindingsForCommand(this.action.commandId);
|
|
85
|
+
// Only consider the first active keybinding.
|
|
86
|
+
if (bindings.length) {
|
|
87
|
+
const binding = bindings.find(b => this.keybindingRegistry.isEnabledInScope(b, context));
|
|
88
|
+
if (binding) {
|
|
89
|
+
return this.keybindingRegistry.acceleratorFor(binding, '+', true);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return [];
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
isEnabled(effeciveMenuPath: MenuPath, ...args: unknown[]): boolean {
|
|
96
|
+
return this.commands.isEnabled(this.action.commandId, ...args);
|
|
97
|
+
}
|
|
98
|
+
isToggled(effeciveMenuPath: MenuPath, ...args: unknown[]): boolean {
|
|
99
|
+
return this.commands.isToggled(this.action.commandId, ...args);
|
|
100
|
+
}
|
|
101
|
+
async run(effeciveMenuPath: MenuPath, ...args: unknown[]): Promise<void> {
|
|
102
|
+
return this.commands.executeCommand(this.action.commandId, ...args);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
get id(): string { return this.action.commandId; }
|
|
106
|
+
|
|
107
|
+
get label(): string {
|
|
108
|
+
if (this.action.label) {
|
|
109
|
+
return this.action.label;
|
|
110
|
+
}
|
|
111
|
+
const cmd = this.commands.getCommand(this.action.commandId);
|
|
112
|
+
if (!cmd) {
|
|
113
|
+
console.debug(`No label for action menu node: No command "${this.action.commandId}" exists.`);
|
|
114
|
+
return '';
|
|
115
|
+
}
|
|
116
|
+
return cmd.label || cmd.id;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
get icon(): string | undefined {
|
|
120
|
+
if (this.action.icon) {
|
|
121
|
+
return this.action.icon;
|
|
122
|
+
}
|
|
123
|
+
const command = this.commands.getCommand(this.action.commandId);
|
|
124
|
+
return command && command.iconClass;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
get sortString(): string { return this.action.order || this.label; }
|
|
128
|
+
}
|
|
@@ -16,8 +16,10 @@
|
|
|
16
16
|
|
|
17
17
|
import { inject, injectable } from 'inversify';
|
|
18
18
|
import { Menu } from '../widgets';
|
|
19
|
-
import { ContextMenuAccess, ContextMenuRenderer, coordinateFromAnchor
|
|
19
|
+
import { Anchor, ContextMenuAccess, ContextMenuRenderer, coordinateFromAnchor } from '../context-menu-renderer';
|
|
20
20
|
import { BrowserMainMenuFactory } from './browser-menu-plugin';
|
|
21
|
+
import { ContextMatcher } from '../context-key-service';
|
|
22
|
+
import { CompoundMenuNode, MenuPath } from '../../common';
|
|
21
23
|
|
|
22
24
|
export class BrowserContextMenuAccess extends ContextMenuAccess {
|
|
23
25
|
constructor(
|
|
@@ -29,18 +31,23 @@ export class BrowserContextMenuAccess extends ContextMenuAccess {
|
|
|
29
31
|
|
|
30
32
|
@injectable()
|
|
31
33
|
export class BrowserContextMenuRenderer extends ContextMenuRenderer {
|
|
34
|
+
@inject(BrowserMainMenuFactory) private menuFactory: BrowserMainMenuFactory;
|
|
32
35
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
36
|
+
protected doRender(params: {
|
|
37
|
+
menuPath: MenuPath,
|
|
38
|
+
menu: CompoundMenuNode,
|
|
39
|
+
anchor: Anchor,
|
|
40
|
+
contextMatcher: ContextMatcher,
|
|
41
|
+
args?: unknown[],
|
|
42
|
+
context?: HTMLElement,
|
|
43
|
+
onHide?: () => void
|
|
44
|
+
}): ContextMenuAccess {
|
|
45
|
+
const contextMenu = this.menuFactory.createContextMenu(params.menuPath, params.menu, params.contextMatcher, params.args, params.context);
|
|
46
|
+
const { x, y } = coordinateFromAnchor(params.anchor);
|
|
47
|
+
if (params.onHide) {
|
|
48
|
+
contextMenu.aboutToClose.connect(() => params.onHide!());
|
|
42
49
|
}
|
|
43
|
-
contextMenu.open(x, y, { host: context?.ownerDocument.body});
|
|
50
|
+
contextMenu.open(x, y, { host: params.context?.ownerDocument.body });
|
|
44
51
|
return new BrowserContextMenuAccess(contextMenu);
|
|
45
52
|
}
|
|
46
53
|
|
|
@@ -19,10 +19,14 @@ import { FrontendApplicationContribution } from '../frontend-application-contrib
|
|
|
19
19
|
import { ContextMenuRenderer } from '../context-menu-renderer';
|
|
20
20
|
import { BrowserMenuBarContribution, BrowserMainMenuFactory } from './browser-menu-plugin';
|
|
21
21
|
import { BrowserContextMenuRenderer } from './browser-context-menu-renderer';
|
|
22
|
+
import { BrowserMenuNodeFactory } from './browser-menu-node-factory';
|
|
23
|
+
import { MenuNodeFactory } from '../../common';
|
|
22
24
|
|
|
23
25
|
export default new ContainerModule(bind => {
|
|
24
26
|
bind(BrowserMainMenuFactory).toSelf().inSingletonScope();
|
|
25
27
|
bind(ContextMenuRenderer).to(BrowserContextMenuRenderer).inSingletonScope();
|
|
26
28
|
bind(BrowserMenuBarContribution).toSelf().inSingletonScope();
|
|
27
29
|
bind(FrontendApplicationContribution).toService(BrowserMenuBarContribution);
|
|
30
|
+
bind(BrowserMenuNodeFactory).toSelf().inSingletonScope();
|
|
31
|
+
bind(MenuNodeFactory).toService(BrowserMenuNodeFactory);
|
|
28
32
|
});
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2024 STMicroelectronics and others.
|
|
3
|
+
//
|
|
4
|
+
// This program and the accompanying materials are made available under the
|
|
5
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
//
|
|
8
|
+
// This Source Code may also be made available under the following Secondary
|
|
9
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
// with the GNU Classpath Exception which is available at
|
|
12
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
//
|
|
14
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
+
// *****************************************************************************
|
|
16
|
+
|
|
17
|
+
import { injectable, inject } from 'inversify';
|
|
18
|
+
import {
|
|
19
|
+
ActionMenuNode, CommandMenu, CommandRegistry, Group, GroupImpl, MenuAction, MenuNode, MenuNodeFactory,
|
|
20
|
+
MutableCompoundMenuNode, SubMenuLink, Submenu, SubmenuImpl
|
|
21
|
+
} from '../../common';
|
|
22
|
+
import { ContextKeyService } from '../context-key-service';
|
|
23
|
+
import { KeybindingRegistry } from '../keybinding';
|
|
24
|
+
|
|
25
|
+
@injectable()
|
|
26
|
+
export class BrowserMenuNodeFactory implements MenuNodeFactory {
|
|
27
|
+
@inject(ContextKeyService)
|
|
28
|
+
protected readonly contextKeyService: ContextKeyService;
|
|
29
|
+
@inject(CommandRegistry)
|
|
30
|
+
protected readonly commandRegistry: CommandRegistry;
|
|
31
|
+
@inject(KeybindingRegistry)
|
|
32
|
+
protected readonly keybindingRegistry: KeybindingRegistry;
|
|
33
|
+
|
|
34
|
+
createGroup(id: string, orderString?: string, when?: string): Group & MutableCompoundMenuNode {
|
|
35
|
+
return new GroupImpl(id, orderString, when);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
createCommandMenu(item: MenuAction): CommandMenu {
|
|
39
|
+
return new ActionMenuNode(item, this.commandRegistry, this.keybindingRegistry, this.contextKeyService);
|
|
40
|
+
}
|
|
41
|
+
createSubmenu(id: string, label: string, contextKeyOverlays: Record<string, string> | undefined, orderString?: string, icon?: string, when?: string):
|
|
42
|
+
Submenu & MutableCompoundMenuNode {
|
|
43
|
+
return new SubmenuImpl(id, label, contextKeyOverlays, orderString, icon, when);
|
|
44
|
+
}
|
|
45
|
+
createSubmenuLink(delegate: Submenu, sortString?: string, when?: string): MenuNode {
|
|
46
|
+
return new SubMenuLink(delegate, sortString, when);
|
|
47
|
+
}
|
|
48
|
+
}
|