@theia/core 1.65.0-next.6 → 1.65.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 +6 -6
- package/i18n/nls.cs.json +117 -15
- package/i18n/nls.de.json +117 -15
- package/i18n/nls.es.json +117 -15
- package/i18n/nls.fr.json +117 -15
- package/i18n/nls.hu.json +117 -15
- package/i18n/nls.it.json +117 -15
- package/i18n/nls.ja.json +117 -15
- package/i18n/nls.json +121 -19
- package/i18n/nls.ko.json +117 -15
- package/i18n/nls.pl.json +117 -15
- package/i18n/nls.pt-br.json +117 -15
- package/i18n/nls.ru.json +117 -15
- package/i18n/nls.tr.json +117 -15
- package/i18n/nls.zh-cn.json +117 -15
- package/i18n/nls.zh-tw.json +117 -15
- package/lib/browser/breadcrumbs/breadcrumbs-renderer.d.ts +1 -1
- package/lib/browser/breadcrumbs/breadcrumbs-renderer.d.ts.map +1 -1
- package/lib/browser/breadcrumbs/breadcrumbs-renderer.js +1 -1
- package/lib/browser/breadcrumbs/breadcrumbs-renderer.js.map +1 -1
- package/lib/browser/catalog.json +227 -32
- package/lib/browser/common-frontend-contribution.d.ts +2 -3
- package/lib/browser/common-frontend-contribution.d.ts.map +1 -1
- package/lib/browser/common-frontend-contribution.js +3 -4
- package/lib/browser/common-frontend-contribution.js.map +1 -1
- package/lib/browser/dialogs/react-dialog.d.ts.map +1 -1
- package/lib/browser/dialogs/react-dialog.js +1 -0
- package/lib/browser/dialogs/react-dialog.js.map +1 -1
- package/lib/browser/encoding-registry.d.ts +1 -1
- package/lib/browser/encoding-registry.d.ts.map +1 -1
- package/lib/browser/encoding-registry.js +1 -1
- package/lib/browser/encoding-registry.js.map +1 -1
- package/lib/browser/frontend-application-bindings.d.ts.map +1 -1
- package/lib/browser/frontend-application-bindings.js +10 -17
- package/lib/browser/frontend-application-bindings.js.map +1 -1
- package/lib/browser/frontend-application-module.d.ts.map +1 -1
- package/lib/browser/frontend-application-module.js +10 -6
- package/lib/browser/frontend-application-module.js.map +1 -1
- package/lib/browser/frontend-application.d.ts +1 -1
- package/lib/browser/frontend-application.d.ts.map +1 -1
- package/lib/browser/frontend-application.js +1 -1
- package/lib/browser/frontend-application.js.map +1 -1
- package/lib/browser/hover-service.d.ts +1 -2
- package/lib/browser/hover-service.d.ts.map +1 -1
- package/lib/browser/hover-service.js +1 -2
- package/lib/browser/hover-service.js.map +1 -1
- package/lib/browser/icon-theme-service.d.ts +3 -2
- package/lib/browser/icon-theme-service.d.ts.map +1 -1
- package/lib/browser/icon-theme-service.js +4 -3
- package/lib/browser/icon-theme-service.js.map +1 -1
- package/lib/browser/index.d.ts +0 -1
- package/lib/browser/index.d.ts.map +1 -1
- package/lib/browser/index.js +0 -1
- package/lib/browser/index.js.map +1 -1
- package/lib/browser/json-schema-store.d.ts +2 -0
- package/lib/browser/json-schema-store.d.ts.map +1 -1
- package/lib/browser/json-schema-store.js +10 -3
- package/lib/browser/json-schema-store.js.map +1 -1
- package/lib/browser/keybinding.d.ts +1 -1
- package/lib/browser/keybinding.d.ts.map +1 -1
- package/lib/browser/keybinding.js +1 -1
- package/lib/browser/keybinding.js.map +1 -1
- package/lib/browser/keybinding.spec.js +1 -1
- package/lib/browser/keybinding.spec.js.map +1 -1
- package/lib/browser/menu/browser-menu-plugin.d.ts +3 -3
- package/lib/browser/menu/browser-menu-plugin.d.ts.map +1 -1
- package/lib/browser/menu/browser-menu-plugin.js +4 -5
- package/lib/browser/menu/browser-menu-plugin.js.map +1 -1
- package/lib/browser/open-with-service.d.ts +1 -1
- package/lib/browser/open-with-service.d.ts.map +1 -1
- package/lib/browser/open-with-service.js +3 -3
- package/lib/browser/open-with-service.js.map +1 -1
- package/lib/browser/opener-service.d.ts +1 -2
- package/lib/browser/opener-service.d.ts.map +1 -1
- package/lib/browser/opener-service.js.map +1 -1
- package/lib/browser/preferences/frontend-config-preference-contributions.d.ts +6 -0
- package/lib/browser/preferences/frontend-config-preference-contributions.d.ts.map +1 -0
- package/lib/browser/preferences/frontend-config-preference-contributions.js +60 -0
- package/lib/browser/preferences/frontend-config-preference-contributions.js.map +1 -0
- package/lib/browser/preferences/index.d.ts +0 -5
- package/lib/browser/preferences/index.d.ts.map +1 -1
- package/lib/browser/preferences/index.js +0 -5
- package/lib/browser/preferences/index.js.map +1 -1
- package/lib/browser/preferences/preference-contribution.d.ts +0 -96
- package/lib/browser/preferences/preference-contribution.d.ts.map +1 -1
- package/lib/browser/preferences/preference-contribution.js +14 -355
- package/lib/browser/preferences/preference-contribution.js.map +1 -1
- package/lib/browser/preferences/preference-proxy.spec.js +25 -17
- package/lib/browser/preferences/preference-proxy.spec.js.map +1 -1
- package/lib/browser/preferences/preference-schema-provider.spec.js +21 -34
- package/lib/browser/preferences/preference-schema-provider.spec.js.map +1 -1
- package/lib/browser/preferences/preference-service.spec.js +57 -80
- package/lib/browser/preferences/preference-service.spec.js.map +1 -1
- package/lib/browser/preferences/preference-validation-service.d.ts +24 -26
- package/lib/browser/preferences/preference-validation-service.d.ts.map +1 -1
- package/lib/browser/preferences/preference-validation-service.js +40 -20
- package/lib/browser/preferences/preference-validation-service.js.map +1 -1
- package/lib/browser/preferences/preference-validation-service.spec.js +10 -6
- package/lib/browser/preferences/preference-validation-service.spec.js.map +1 -1
- package/lib/browser/preferences/test/mock-preference-provider.d.ts +2 -3
- package/lib/browser/preferences/test/mock-preference-provider.d.ts.map +1 -1
- package/lib/browser/preferences/test/mock-preference-provider.js +5 -7
- package/lib/browser/preferences/test/mock-preference-provider.js.map +1 -1
- package/lib/browser/preferences/test/mock-preference-proxy.d.ts.map +1 -1
- package/lib/browser/preferences/test/mock-preference-proxy.js.map +1 -1
- package/lib/browser/preferences/test/mock-preference-service.d.ts +1 -4
- package/lib/browser/preferences/test/mock-preference-service.d.ts.map +1 -1
- package/lib/browser/preferences/test/mock-preference-service.js.map +1 -1
- package/lib/browser/quick-input/quick-command-service.d.ts +1 -1
- package/lib/browser/quick-input/quick-command-service.d.ts.map +1 -1
- package/lib/browser/quick-input/quick-command-service.js +1 -1
- package/lib/browser/quick-input/quick-command-service.js.map +1 -1
- package/lib/browser/request/browser-request-service.d.ts +1 -1
- package/lib/browser/request/browser-request-service.d.ts.map +1 -1
- package/lib/browser/request/browser-request-service.js +2 -2
- package/lib/browser/request/browser-request-service.js.map +1 -1
- package/lib/browser/saveable.d.ts +9 -0
- package/lib/browser/saveable.d.ts.map +1 -1
- package/lib/browser/saveable.js.map +1 -1
- package/lib/browser/secondary-window-handler.d.ts +21 -9
- package/lib/browser/secondary-window-handler.d.ts.map +1 -1
- package/lib/browser/secondary-window-handler.js +162 -21
- package/lib/browser/secondary-window-handler.js.map +1 -1
- package/lib/browser/shell/application-shell.d.ts +7 -2
- package/lib/browser/shell/application-shell.d.ts.map +1 -1
- package/lib/browser/shell/application-shell.js +27 -10
- package/lib/browser/shell/application-shell.js.map +1 -1
- package/lib/browser/shell/shell-layout-restorer.d.ts +13 -0
- package/lib/browser/shell/shell-layout-restorer.d.ts.map +1 -1
- package/lib/browser/shell/shell-layout-restorer.js +8 -1
- package/lib/browser/shell/shell-layout-restorer.js.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.d.ts +30 -16
- 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 +116 -33
- 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.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.js +8 -3
- 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.js +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.js.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-toolbar-item.d.ts +2 -2
- package/lib/browser/shell/tab-bar-toolbar/tab-toolbar-item.d.ts.map +1 -1
- package/lib/browser/shell/tab-bars.d.ts +1 -1
- package/lib/browser/shell/tab-bars.d.ts.map +1 -1
- package/lib/browser/shell/theia-dock-panel.d.ts +19 -2
- package/lib/browser/shell/theia-dock-panel.d.ts.map +1 -1
- package/lib/browser/shell/theia-dock-panel.js +82 -0
- package/lib/browser/shell/theia-dock-panel.js.map +1 -1
- package/lib/browser/status-bar/status-bar.d.ts +1 -1
- package/lib/browser/status-bar/status-bar.d.ts.map +1 -1
- package/lib/browser/status-bar/status-bar.js +3 -2
- package/lib/browser/status-bar/status-bar.js.map +1 -1
- package/lib/browser/theming.d.ts +5 -4
- package/lib/browser/theming.d.ts.map +1 -1
- package/lib/browser/theming.js +7 -6
- package/lib/browser/theming.js.map +1 -1
- package/lib/browser/tooltip-service.d.ts +1 -1
- package/lib/browser/tooltip-service.d.ts.map +1 -1
- package/lib/browser/tooltip-service.js +1 -1
- package/lib/browser/tooltip-service.js.map +1 -1
- package/lib/browser/tree/index.d.ts +0 -1
- package/lib/browser/tree/index.d.ts.map +1 -1
- package/lib/browser/tree/index.js +0 -1
- package/lib/browser/tree/index.js.map +1 -1
- package/lib/browser/tree/tree-widget.d.ts +2 -2
- package/lib/browser/tree/tree-widget.d.ts.map +1 -1
- package/lib/browser/tree/tree-widget.js +5 -4
- package/lib/browser/tree/tree-widget.js.map +1 -1
- package/lib/browser/view-container.d.ts.map +1 -1
- package/lib/browser/view-container.js +2 -2
- package/lib/browser/view-container.js.map +1 -1
- package/lib/browser/widgets/extractable-widget.d.ts +3 -0
- package/lib/browser/widgets/extractable-widget.d.ts.map +1 -1
- package/lib/browser/widgets/extractable-widget.js.map +1 -1
- package/lib/browser/widgets/widget.js +4 -4
- package/lib/browser/widgets/widget.js.map +1 -1
- package/lib/browser/window/default-secondary-window-service.d.ts +10 -5
- package/lib/browser/window/default-secondary-window-service.d.ts.map +1 -1
- package/lib/browser/window/default-secondary-window-service.js +53 -13
- package/lib/browser/window/default-secondary-window-service.js.map +1 -1
- package/lib/browser/window/default-window-service.d.ts +1 -1
- package/lib/browser/window/default-window-service.d.ts.map +1 -1
- package/lib/browser/window/default-window-service.js +1 -1
- package/lib/browser/window/default-window-service.js.map +1 -1
- package/lib/browser/window/default-window-service.spec.js +1 -1
- package/lib/browser/window/default-window-service.spec.js.map +1 -1
- package/lib/browser/window/secondary-window-service.d.ts +15 -2
- package/lib/browser/window/secondary-window-service.d.ts.map +1 -1
- package/lib/browser/window/secondary-window-service.js +12 -1
- package/lib/browser/window/secondary-window-service.js.map +1 -1
- package/lib/browser/window/window-title-service.d.ts +1 -1
- package/lib/browser/window/window-title-service.d.ts.map +1 -1
- package/lib/browser/window/window-title-service.js +1 -1
- package/lib/browser/window/window-title-service.js.map +1 -1
- package/lib/{browser → common}/core-preferences.d.ts +2 -1
- package/lib/common/core-preferences.d.ts.map +1 -0
- package/lib/{browser → common}/core-preferences.js +17 -18
- package/lib/common/core-preferences.js.map +1 -0
- package/lib/common/index.d.ts +4 -0
- package/lib/common/index.d.ts.map +1 -1
- package/lib/common/index.js +4 -0
- package/lib/common/index.js.map +1 -1
- package/lib/common/inversify-utils.d.ts +31 -0
- package/lib/common/inversify-utils.d.ts.map +1 -0
- package/lib/common/inversify-utils.js +60 -0
- package/lib/common/inversify-utils.js.map +1 -0
- package/lib/common/json-schema.d.ts +1 -0
- package/lib/common/json-schema.d.ts.map +1 -1
- package/lib/common/menu/menu-types.d.ts +1 -0
- package/lib/common/menu/menu-types.d.ts.map +1 -1
- package/lib/common/menu/menu-types.js.map +1 -1
- package/lib/common/preferences/defaults-preference-provider.d.ts +21 -0
- package/lib/common/preferences/defaults-preference-provider.d.ts.map +1 -0
- package/lib/common/preferences/defaults-preference-provider.js +99 -0
- package/lib/common/preferences/defaults-preference-provider.js.map +1 -0
- package/lib/common/preferences/index.d.ts +12 -0
- package/lib/common/preferences/index.d.ts.map +1 -0
- package/lib/common/preferences/index.js +30 -0
- package/lib/common/preferences/index.js.map +1 -0
- package/lib/{browser → common}/preferences/injectable-preference-proxy.d.ts +1 -1
- package/lib/common/preferences/injectable-preference-proxy.d.ts.map +1 -0
- package/lib/{browser → common}/preferences/injectable-preference-proxy.js +2 -2
- package/lib/common/preferences/injectable-preference-proxy.js.map +1 -0
- package/lib/common/preferences/preference-configurations.d.ts.map +1 -0
- package/lib/common/preferences/preference-configurations.js.map +1 -0
- package/lib/{browser → common}/preferences/preference-language-override-service.d.ts +4 -13
- package/lib/common/preferences/preference-language-override-service.d.ts.map +1 -0
- package/lib/{browser → common}/preferences/preference-language-override-service.js +14 -30
- package/lib/common/preferences/preference-language-override-service.js.map +1 -0
- package/lib/common/preferences/preference-provider-impl.d.ts +52 -0
- package/lib/common/preferences/preference-provider-impl.d.ts.map +1 -0
- package/lib/{browser/preferences/preference-provider.js → common/preferences/preference-provider-impl.js} +23 -95
- package/lib/common/preferences/preference-provider-impl.js.map +1 -0
- package/lib/{browser → common}/preferences/preference-provider.d.ts +34 -59
- package/lib/common/preferences/preference-provider.d.ts.map +1 -0
- package/lib/common/preferences/preference-provider.js +71 -0
- package/lib/common/preferences/preference-provider.js.map +1 -0
- package/lib/common/preferences/preference-provider.spec.d.ts.map +1 -0
- package/lib/{browser → common}/preferences/preference-provider.spec.js +4 -4
- package/lib/common/preferences/preference-provider.spec.js.map +1 -0
- package/lib/{browser → common}/preferences/preference-proxy.d.ts +2 -2
- package/lib/common/preferences/preference-proxy.d.ts.map +1 -0
- package/lib/{browser → common}/preferences/preference-proxy.js +10 -10
- package/lib/common/preferences/preference-proxy.js.map +1 -0
- package/lib/common/preferences/preference-schema-service.d.ts +55 -0
- package/lib/common/preferences/preference-schema-service.d.ts.map +1 -0
- package/lib/common/preferences/preference-schema-service.js +402 -0
- package/lib/common/preferences/preference-schema-service.js.map +1 -0
- package/lib/common/preferences/preference-schema.d.ts +145 -43
- package/lib/common/preferences/preference-schema.d.ts.map +1 -1
- package/lib/common/preferences/preference-schema.js +3 -41
- package/lib/common/preferences/preference-schema.js.map +1 -1
- package/lib/common/preferences/preference-scope.d.ts +4 -1
- package/lib/common/preferences/preference-scope.d.ts.map +1 -1
- package/lib/common/preferences/preference-scope.js +5 -14
- package/lib/common/preferences/preference-scope.js.map +1 -1
- package/lib/{browser → common}/preferences/preference-service.d.ts +9 -10
- package/lib/common/preferences/preference-service.d.ts.map +1 -0
- package/lib/{browser → common}/preferences/preference-service.js +68 -58
- package/lib/common/preferences/preference-service.js.map +1 -0
- package/lib/common/stream.d.ts +9 -0
- package/lib/common/stream.d.ts.map +1 -1
- package/lib/common/stream.js +93 -2
- package/lib/common/stream.js.map +1 -1
- package/lib/common/supported-encodings.d.ts.map +1 -0
- package/lib/common/supported-encodings.js.map +1 -0
- package/lib/{browser/tree → common}/tree-preference.d.ts +1 -1
- package/lib/common/tree-preference.d.ts.map +1 -0
- package/lib/{browser/tree → common}/tree-preference.js +3 -5
- package/lib/common/tree-preference.js.map +1 -0
- package/lib/electron-browser/menu/electron-context-menu-renderer.d.ts +2 -1
- package/lib/electron-browser/menu/electron-context-menu-renderer.d.ts.map +1 -1
- package/lib/electron-browser/menu/electron-context-menu-renderer.js +2 -1
- package/lib/electron-browser/menu/electron-context-menu-renderer.js.map +1 -1
- package/lib/electron-browser/menu/electron-main-menu-factory.d.ts +1 -2
- package/lib/electron-browser/menu/electron-main-menu-factory.d.ts.map +1 -1
- package/lib/electron-browser/menu/electron-main-menu-factory.js +11 -10
- package/lib/electron-browser/menu/electron-main-menu-factory.js.map +1 -1
- package/lib/electron-browser/menu/electron-menu-contribution.d.ts +2 -2
- package/lib/electron-browser/menu/electron-menu-contribution.d.ts.map +1 -1
- package/lib/electron-browser/menu/electron-menu-contribution.js +6 -6
- package/lib/electron-browser/menu/electron-menu-contribution.js.map +1 -1
- package/lib/electron-browser/preload.d.ts.map +1 -1
- package/lib/electron-browser/preload.js +3 -0
- package/lib/electron-browser/preload.js.map +1 -1
- package/lib/electron-browser/window/electron-secondary-window-service.d.ts.map +1 -1
- package/lib/electron-browser/window/electron-secondary-window-service.js +5 -4
- package/lib/electron-browser/window/electron-secondary-window-service.js.map +1 -1
- package/lib/electron-browser/window/electron-window-module.js +1 -1
- package/lib/electron-browser/window/electron-window-module.js.map +1 -1
- package/lib/electron-browser/window/electron-window-service.d.ts +1 -1
- package/lib/electron-browser/window/electron-window-service.d.ts.map +1 -1
- package/lib/electron-browser/window/electron-window-service.js +1 -1
- package/lib/electron-browser/window/electron-window-service.js.map +1 -1
- package/lib/electron-common/electron-api.d.ts +2 -0
- package/lib/electron-common/electron-api.d.ts.map +1 -1
- package/lib/electron-common/electron-api.js +2 -1
- package/lib/electron-common/electron-api.js.map +1 -1
- package/lib/{electron-browser/window → electron-common}/electron-window-preferences.d.ts +2 -1
- package/lib/electron-common/electron-window-preferences.d.ts.map +1 -0
- package/lib/{electron-browser/window → electron-common}/electron-window-preferences.js +7 -7
- package/lib/electron-common/electron-window-preferences.js.map +1 -0
- package/lib/electron-main/electron-api-main.d.ts.map +1 -1
- package/lib/electron-main/electron-api-main.js +9 -0
- package/lib/electron-main/electron-api-main.js.map +1 -1
- package/lib/electron-node/window/electron-window-module.d.ts +4 -0
- package/lib/electron-node/window/electron-window-module.d.ts.map +1 -0
- package/lib/{browser/preferences/preference-scope.js → electron-node/window/electron-window-module.js} +7 -5
- package/lib/electron-node/window/electron-window-module.js.map +1 -0
- package/lib/node/backend-application-module.d.ts.map +1 -1
- package/lib/node/backend-application-module.js +13 -0
- package/lib/node/backend-application-module.js.map +1 -1
- package/lib/node/backend-application.js +1 -1
- package/lib/node/logger-cli-contribution.d.ts +7 -1
- package/lib/node/logger-cli-contribution.d.ts.map +1 -1
- package/lib/node/logger-cli-contribution.js +22 -10
- package/lib/node/logger-cli-contribution.js.map +1 -1
- package/lib/node/logger-cli-contribution.spec.js +13 -2
- package/lib/node/logger-cli-contribution.spec.js.map +1 -1
- package/package.json +8 -7
- package/src/browser/breadcrumbs/breadcrumbs-renderer.tsx +1 -1
- package/src/browser/common-frontend-contribution.ts +2 -3
- package/src/browser/dialogs/react-dialog.tsx +1 -0
- package/src/browser/encoding-registry.ts +1 -1
- package/src/browser/frontend-application-bindings.ts +8 -13
- package/src/browser/frontend-application-module.ts +13 -6
- package/src/browser/frontend-application.ts +1 -1
- package/src/browser/hover-service.ts +1 -2
- package/src/browser/icon-theme-service.ts +3 -2
- package/src/browser/index.ts +0 -1
- package/src/browser/json-schema-store.ts +9 -1
- package/src/browser/keybinding.spec.ts +1 -1
- package/src/browser/keybinding.ts +1 -1
- package/src/browser/menu/browser-menu-plugin.ts +7 -7
- package/src/browser/open-with-service.ts +1 -1
- package/src/browser/opener-service.ts +1 -2
- package/src/browser/preferences/frontend-config-preference-contributions.ts +52 -0
- package/src/browser/preferences/index.ts +0 -5
- package/src/browser/preferences/preference-contribution.ts +16 -398
- package/src/browser/preferences/preference-proxy.spec.ts +27 -17
- package/src/browser/preferences/preference-schema-provider.spec.ts +25 -37
- package/src/browser/preferences/preference-service.spec.ts +32 -56
- package/src/browser/preferences/preference-validation-service.spec.ts +27 -19
- package/src/browser/preferences/preference-validation-service.ts +60 -41
- package/src/browser/preferences/test/mock-preference-provider.ts +2 -5
- package/src/browser/preferences/test/mock-preference-proxy.ts +1 -2
- package/src/browser/preferences/test/mock-preference-service.ts +1 -4
- package/src/browser/quick-input/quick-command-service.ts +1 -1
- package/src/browser/request/browser-request-service.ts +4 -4
- package/src/browser/saveable.ts +8 -0
- package/src/browser/secondary-window-handler.ts +189 -29
- package/src/browser/shell/application-shell.ts +36 -13
- package/src/browser/shell/shell-layout-restorer.ts +15 -0
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.tsx +139 -40
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.ts +12 -6
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar.tsx +2 -2
- package/src/browser/shell/tab-bar-toolbar/tab-toolbar-item.tsx +2 -2
- package/src/browser/shell/tab-bars.ts +1 -1
- package/src/browser/shell/theia-dock-panel.ts +101 -2
- package/src/browser/status-bar/status-bar.tsx +3 -2
- package/src/browser/style/dockpanel.css +7 -0
- package/src/browser/theming.ts +7 -6
- package/src/browser/tooltip-service.tsx +1 -1
- package/src/browser/tree/index.ts +0 -1
- package/src/browser/tree/tree-widget.tsx +6 -5
- package/src/browser/view-container.ts +5 -5
- package/src/browser/widgets/extractable-widget.ts +3 -0
- package/src/browser/widgets/widget.ts +4 -4
- package/src/browser/window/default-secondary-window-service.ts +54 -17
- package/src/browser/window/default-window-service.spec.ts +1 -1
- package/src/browser/window/default-window-service.ts +1 -1
- package/src/browser/window/secondary-window-service.ts +23 -2
- package/src/browser/window/window-title-service.ts +1 -1
- package/src/{browser → common}/core-preferences.ts +16 -17
- package/src/common/index.ts +4 -0
- package/src/common/inversify-utils.ts +63 -0
- package/src/common/json-schema.ts +1 -0
- package/src/common/menu/menu-types.ts +2 -0
- package/src/common/preferences/defaults-preference-provider.ts +91 -0
- package/src/common/preferences/index.ts +27 -0
- package/src/{browser → common}/preferences/injectable-preference-proxy.ts +3 -3
- package/src/{browser → common}/preferences/preference-language-override-service.ts +12 -29
- package/src/common/preferences/preference-provider-impl.ts +165 -0
- package/src/{browser → common}/preferences/preference-provider.spec.ts +6 -5
- package/src/common/preferences/preference-provider.ts +164 -0
- package/src/{browser → common}/preferences/preference-proxy.ts +15 -14
- package/src/common/preferences/preference-schema-service.ts +434 -0
- package/src/common/preferences/preference-schema.ts +156 -64
- package/src/common/preferences/preference-scope.ts +5 -13
- package/src/{browser → common}/preferences/preference-service.ts +76 -63
- package/src/common/stream.ts +102 -1
- package/src/{browser/tree → common}/tree-preference.ts +2 -4
- package/src/electron-browser/menu/electron-context-menu-renderer.ts +2 -1
- package/src/electron-browser/menu/electron-main-menu-factory.ts +13 -11
- package/src/electron-browser/menu/electron-menu-contribution.ts +9 -6
- package/src/electron-browser/preload.ts +4 -1
- package/src/electron-browser/window/electron-secondary-window-service.ts +7 -4
- package/src/electron-browser/window/electron-window-module.ts +1 -1
- package/src/electron-browser/window/electron-window-service.ts +1 -1
- package/src/electron-common/electron-api.ts +2 -0
- package/src/{electron-browser/window → electron-common}/electron-window-preferences.ts +6 -6
- package/src/electron-main/electron-api-main.ts +11 -1
- package/src/{browser/preferences/preference-scope.ts → electron-node/window/electron-window-module.ts} +7 -3
- package/src/node/backend-application-module.ts +28 -1
- package/src/node/backend-application.ts +1 -1
- package/src/node/logger-cli-contribution.spec.ts +17 -2
- package/src/node/logger-cli-contribution.ts +18 -3
- package/lib/browser/core-preferences.d.ts.map +0 -1
- package/lib/browser/core-preferences.js.map +0 -1
- package/lib/browser/preferences/injectable-preference-proxy.d.ts.map +0 -1
- package/lib/browser/preferences/injectable-preference-proxy.js.map +0 -1
- package/lib/browser/preferences/preference-configurations.d.ts.map +0 -1
- package/lib/browser/preferences/preference-configurations.js.map +0 -1
- package/lib/browser/preferences/preference-language-override-service.d.ts.map +0 -1
- package/lib/browser/preferences/preference-language-override-service.js.map +0 -1
- package/lib/browser/preferences/preference-provider.d.ts.map +0 -1
- package/lib/browser/preferences/preference-provider.js.map +0 -1
- package/lib/browser/preferences/preference-provider.spec.d.ts.map +0 -1
- package/lib/browser/preferences/preference-provider.spec.js.map +0 -1
- package/lib/browser/preferences/preference-proxy.d.ts.map +0 -1
- package/lib/browser/preferences/preference-proxy.js.map +0 -1
- package/lib/browser/preferences/preference-scope.d.ts +0 -3
- package/lib/browser/preferences/preference-scope.d.ts.map +0 -1
- package/lib/browser/preferences/preference-scope.js.map +0 -1
- package/lib/browser/preferences/preference-service.d.ts.map +0 -1
- package/lib/browser/preferences/preference-service.js.map +0 -1
- package/lib/browser/supported-encodings.d.ts.map +0 -1
- package/lib/browser/supported-encodings.js.map +0 -1
- package/lib/browser/tree/tree-preference.d.ts.map +0 -1
- package/lib/browser/tree/tree-preference.js.map +0 -1
- package/lib/electron-browser/window/electron-window-preferences.d.ts.map +0 -1
- package/lib/electron-browser/window/electron-window-preferences.js.map +0 -1
- package/src/browser/preferences/preference-provider.ts +0 -277
- /package/lib/{browser → common}/preferences/preference-configurations.d.ts +0 -0
- /package/lib/{browser → common}/preferences/preference-configurations.js +0 -0
- /package/lib/{browser → common}/preferences/preference-provider.spec.d.ts +0 -0
- /package/lib/{browser → common}/supported-encodings.d.ts +0 -0
- /package/lib/{browser → common}/supported-encodings.js +0 -0
- /package/src/{browser → common}/preferences/preference-configurations.ts +0 -0
- /package/src/{browser → common}/supported-encodings.ts +0 -0
|
@@ -14,6 +14,11 @@
|
|
|
14
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
|
+
/**
|
|
18
|
+
* An array of preference scopes that are valid in a given context, sorted from more general to more specific
|
|
19
|
+
*/
|
|
20
|
+
export const ValidPreferenceScopes = Symbol('ValidPreferenceScopes');
|
|
21
|
+
|
|
17
22
|
export enum PreferenceScope {
|
|
18
23
|
Default,
|
|
19
24
|
User,
|
|
@@ -52,17 +57,4 @@ export namespace PreferenceScope {
|
|
|
52
57
|
}
|
|
53
58
|
return names;
|
|
54
59
|
}
|
|
55
|
-
|
|
56
|
-
export function fromString(strScope: string): PreferenceScope | undefined {
|
|
57
|
-
switch (strScope) {
|
|
58
|
-
case 'application':
|
|
59
|
-
return PreferenceScope.User;
|
|
60
|
-
case 'window':
|
|
61
|
-
return PreferenceScope.Folder;
|
|
62
|
-
case 'resource':
|
|
63
|
-
return PreferenceScope.Folder;
|
|
64
|
-
case 'language-overridable':
|
|
65
|
-
return PreferenceScope.Folder;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
60
|
}
|
|
@@ -16,18 +16,16 @@
|
|
|
16
16
|
|
|
17
17
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
18
18
|
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
19
|
+
import { JSONExt, JSONValue } from '@lumino/coreutils';
|
|
20
|
+
import { inject, injectable, postConstruct } from 'inversify';
|
|
21
|
+
import { Disposable, DisposableCollection, Emitter, Event, deepFreeze, unreachable } from '../../common';
|
|
21
22
|
import { Deferred } from '../../common/promise-util';
|
|
22
|
-
import { PreferenceProvider, PreferenceProviderDataChange, PreferenceProviderDataChanges, PreferenceResolveResult } from './preference-provider';
|
|
23
|
-
import { PreferenceSchemaProvider } from './preference-contribution';
|
|
24
23
|
import URI from '../../common/uri';
|
|
24
|
+
import { OverridePreferenceName, PreferenceLanguageOverrideService } from './preference-language-override-service';
|
|
25
|
+
import { PreferenceProvider, PreferenceProviderDataChange, PreferenceProviderDataChanges, PreferenceResolveResult, PreferenceUtils } from './preference-provider';
|
|
26
|
+
import { PreferenceSchemaService } from './preference-schema';
|
|
25
27
|
import { PreferenceScope } from './preference-scope';
|
|
26
28
|
import { PreferenceConfigurations } from './preference-configurations';
|
|
27
|
-
import { JSONExt, JSONValue } from '@lumino/coreutils';
|
|
28
|
-
import { OverridePreferenceName, PreferenceLanguageOverrideService } from './preference-language-override-service';
|
|
29
|
-
|
|
30
|
-
export { PreferenceScope };
|
|
31
29
|
|
|
32
30
|
/**
|
|
33
31
|
* Representation of a preference change. A preference value can be set to `undefined` for a specific scope.
|
|
@@ -50,10 +48,10 @@ export class PreferenceChangeImpl implements PreferenceChange {
|
|
|
50
48
|
get preferenceName(): string {
|
|
51
49
|
return this.change.preferenceName;
|
|
52
50
|
}
|
|
53
|
-
get newValue():
|
|
51
|
+
get newValue(): JSONValue | undefined {
|
|
54
52
|
return this.change.newValue;
|
|
55
53
|
}
|
|
56
|
-
get oldValue():
|
|
54
|
+
get oldValue(): JSONValue | undefined {
|
|
57
55
|
return this.change.oldValue;
|
|
58
56
|
}
|
|
59
57
|
get scope(): PreferenceScope {
|
|
@@ -272,7 +270,7 @@ export type PreferenceInspectionScope = keyof Omit<PreferenceInspection<unknown>
|
|
|
272
270
|
* It allows to load them lazily after DI is configured.
|
|
273
271
|
*/
|
|
274
272
|
export const PreferenceProviderProvider = Symbol('PreferenceProviderProvider');
|
|
275
|
-
export type PreferenceProviderProvider = (scope: PreferenceScope, uri?: URI) => PreferenceProvider;
|
|
273
|
+
export type PreferenceProviderProvider = (scope: PreferenceScope, uri?: URI) => PreferenceProvider | undefined;
|
|
276
274
|
|
|
277
275
|
@injectable()
|
|
278
276
|
export class PreferenceServiceImpl implements PreferenceService {
|
|
@@ -285,8 +283,8 @@ export class PreferenceServiceImpl implements PreferenceService {
|
|
|
285
283
|
|
|
286
284
|
protected readonly toDispose = new DisposableCollection(this.onPreferenceChangedEmitter, this.onPreferencesChangedEmitter);
|
|
287
285
|
|
|
288
|
-
@inject(
|
|
289
|
-
protected readonly
|
|
286
|
+
@inject(PreferenceSchemaService)
|
|
287
|
+
protected readonly schemaService: PreferenceSchemaService;
|
|
290
288
|
|
|
291
289
|
@inject(PreferenceProviderProvider)
|
|
292
290
|
protected readonly providerProvider: PreferenceProviderProvider;
|
|
@@ -301,13 +299,17 @@ export class PreferenceServiceImpl implements PreferenceService {
|
|
|
301
299
|
|
|
302
300
|
protected async initializeProviders(): Promise<void> {
|
|
303
301
|
try {
|
|
304
|
-
for (const scope of
|
|
302
|
+
for (const scope of this.schemaService.validScopes) {
|
|
305
303
|
const provider = this.providerProvider(scope);
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
this.
|
|
309
|
-
|
|
310
|
-
|
|
304
|
+
if (provider) {
|
|
305
|
+
this.preferenceProviders.set(scope, provider);
|
|
306
|
+
this.toDispose.push(provider.onDidPreferencesChanged(changes =>
|
|
307
|
+
this.reconcilePreferences(changes)
|
|
308
|
+
));
|
|
309
|
+
await provider.ready;
|
|
310
|
+
} else {
|
|
311
|
+
console.warn(`No preference provider bound for ${PreferenceScope[scope]}`);
|
|
312
|
+
}
|
|
311
313
|
}
|
|
312
314
|
this._ready.resolve();
|
|
313
315
|
this._isReady = true;
|
|
@@ -338,50 +340,51 @@ export class PreferenceServiceImpl implements PreferenceService {
|
|
|
338
340
|
|
|
339
341
|
protected reconcilePreferences(changes: PreferenceProviderDataChanges): void {
|
|
340
342
|
const changesToEmit: PreferenceChanges = {};
|
|
341
|
-
const acceptChange = (change: PreferenceProviderDataChange) =>
|
|
343
|
+
const acceptChange = (change: PreferenceProviderDataChange) => {
|
|
342
344
|
this.getAffectedPreferenceNames(change, preferenceName =>
|
|
343
|
-
changesToEmit[preferenceName] = new PreferenceChangeImpl({ ...change, preferenceName })
|
|
344
|
-
|
|
345
|
+
changesToEmit[preferenceName] = new PreferenceChangeImpl({ ...change, preferenceName }));
|
|
346
|
+
};
|
|
345
347
|
|
|
346
348
|
for (const preferenceName of Object.keys(changes)) {
|
|
349
|
+
|
|
347
350
|
let change = changes[preferenceName];
|
|
351
|
+
const overridden = this.overriddenPreferenceName(change.preferenceName);
|
|
348
352
|
if (change.newValue === undefined) {
|
|
349
|
-
const overridden = this.overriddenPreferenceName(change.preferenceName);
|
|
350
353
|
if (overridden) {
|
|
351
354
|
change = {
|
|
352
355
|
...change, newValue: this.doGet(overridden.preferenceName)
|
|
353
356
|
};
|
|
354
357
|
}
|
|
355
358
|
}
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
acceptChange(change);
|
|
371
|
-
} else if (scope < change.scope && change.newValue === undefined && value !== undefined) {
|
|
372
|
-
// preference is changed to `undefined`, use the value from a more general scope
|
|
373
|
-
change = {
|
|
374
|
-
...change,
|
|
375
|
-
newValue: value,
|
|
376
|
-
scope
|
|
377
|
-
};
|
|
359
|
+
|
|
360
|
+
for (const scope of [...this.schemaService.validScopes].reverse()) {
|
|
361
|
+
const provider = this.getProvider(scope);
|
|
362
|
+
if (provider) {
|
|
363
|
+
const scopeValue: JSONValue | undefined = provider.get(preferenceName);
|
|
364
|
+
// Skip if a more specific scope has this preference defined
|
|
365
|
+
if (scope > change.scope && scopeValue !== undefined) {
|
|
366
|
+
break;
|
|
367
|
+
}
|
|
368
|
+
// Handle changes in the same scope
|
|
369
|
+
if (scope === change.scope) {
|
|
370
|
+
const hasNewValue = change.newValue !== undefined || scope === PreferenceScope.Default;
|
|
371
|
+
const isResetToUndefined = change.newValue === undefined && scopeValue === undefined; // is reset to undefined (no default value)
|
|
372
|
+
if (hasNewValue || isResetToUndefined) {
|
|
378
373
|
acceptChange(change);
|
|
374
|
+
break;
|
|
379
375
|
}
|
|
380
376
|
}
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
377
|
+
// Handle fallback to more general scope when preference is reset
|
|
378
|
+
if (scope < change.scope && change.newValue === undefined && scopeValue !== undefined) {
|
|
379
|
+
// preference is changed to `undefined`, use the value from a more general scope
|
|
380
|
+
change = {
|
|
381
|
+
...change,
|
|
382
|
+
newValue: scopeValue,
|
|
383
|
+
scope
|
|
384
|
+
};
|
|
385
|
+
acceptChange(change);
|
|
386
|
+
break;
|
|
387
|
+
}
|
|
385
388
|
}
|
|
386
389
|
}
|
|
387
390
|
}
|
|
@@ -394,10 +397,22 @@ export class PreferenceServiceImpl implements PreferenceService {
|
|
|
394
397
|
changedPreferenceNames.forEach(preferenceName => this.onPreferenceChangedEmitter.fire(changesToEmit[preferenceName]));
|
|
395
398
|
}
|
|
396
399
|
protected getAffectedPreferenceNames(change: PreferenceProviderDataChange, accept: (affectedPreferenceName: string) => void): void {
|
|
400
|
+
const overridden = this.preferenceOverrideService.overriddenPreferenceName(change.preferenceName);
|
|
397
401
|
accept(change.preferenceName);
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
402
|
+
if (!overridden?.overrideIdentifier) { // changes to overrides never affect other overrides
|
|
403
|
+
const preference = this.schemaService.getSchemaProperty(change.preferenceName);
|
|
404
|
+
if (preference && preference.overridable) {
|
|
405
|
+
|
|
406
|
+
for (const overrideId of this.schemaService.overrideIdentifiers) {
|
|
407
|
+
const overridePreferenceName = this.preferenceOverrideService.overridePreferenceName({
|
|
408
|
+
overrideIdentifier: overrideId,
|
|
409
|
+
preferenceName: change.preferenceName
|
|
410
|
+
});
|
|
411
|
+
|
|
412
|
+
if (!this.doHas(overridePreferenceName)) {
|
|
413
|
+
accept(overridePreferenceName);
|
|
414
|
+
}
|
|
415
|
+
}
|
|
401
416
|
}
|
|
402
417
|
}
|
|
403
418
|
}
|
|
@@ -530,7 +545,7 @@ export class PreferenceServiceImpl implements PreferenceService {
|
|
|
530
545
|
}
|
|
531
546
|
|
|
532
547
|
// Scopes in ascending order of scope breadth.
|
|
533
|
-
const allScopes =
|
|
548
|
+
const allScopes = [...this.schemaService.validScopes].reverse();
|
|
534
549
|
// Get rid of Default scope. We can't set anything there.
|
|
535
550
|
allScopes.pop();
|
|
536
551
|
|
|
@@ -562,15 +577,13 @@ export class PreferenceServiceImpl implements PreferenceService {
|
|
|
562
577
|
}
|
|
563
578
|
protected doResolve<T>(preferenceName: string, defaultValue?: T, resourceUri?: string): PreferenceResolveResult<T> {
|
|
564
579
|
const result: PreferenceResolveResult<T> = {};
|
|
565
|
-
for (const scope of
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
result.value = PreferenceProvider.merge(result.value as any, value as any) as any;
|
|
573
|
-
}
|
|
580
|
+
for (const scope of this.schemaService.validScopes) {
|
|
581
|
+
const provider = this.getProvider(scope);
|
|
582
|
+
if (provider?.canHandleScope(scope)) {
|
|
583
|
+
const { configUri, value } = provider.resolve<T>(preferenceName, resourceUri);
|
|
584
|
+
if (value !== undefined) {
|
|
585
|
+
result.configUri = configUri;
|
|
586
|
+
result.value = PreferenceUtils.merge(result.value as any, value as any) as any;
|
|
574
587
|
}
|
|
575
588
|
}
|
|
576
589
|
}
|
|
@@ -585,7 +598,7 @@ export class PreferenceServiceImpl implements PreferenceService {
|
|
|
585
598
|
if (!provider || !this.configurations.isAnyConfig(sectionName)) {
|
|
586
599
|
return undefined;
|
|
587
600
|
}
|
|
588
|
-
const configUri = provider.getConfigUri(resourceUri, sectionName);
|
|
601
|
+
const configUri = provider.getConfigUri && provider.getConfigUri(resourceUri, sectionName);
|
|
589
602
|
if (configUri) {
|
|
590
603
|
return configUri;
|
|
591
604
|
}
|
package/src/common/stream.ts
CHANGED
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
27
27
|
|
|
28
28
|
import { DisposableCollection, Disposable } from './disposable';
|
|
29
|
+
import { BinaryBuffer } from './buffer';
|
|
29
30
|
|
|
30
31
|
export interface ReadableStreamEvents<T> {
|
|
31
32
|
|
|
@@ -205,7 +206,7 @@ export interface ITransformer<Original, Transformed> {
|
|
|
205
206
|
}
|
|
206
207
|
|
|
207
208
|
export function newWriteableStream<T>(reducer: Reducer<T>, options?: WriteableStreamOptions): WriteableStream<T> {
|
|
208
|
-
return new WriteableStreamImpl<T>(reducer);
|
|
209
|
+
return new WriteableStreamImpl<T>(reducer, options);
|
|
209
210
|
}
|
|
210
211
|
|
|
211
212
|
export interface WriteableStreamOptions {
|
|
@@ -716,3 +717,103 @@ export function transform<Original, Transformed>(stream: ReadableStreamEvents<Or
|
|
|
716
717
|
|
|
717
718
|
return target;
|
|
718
719
|
}
|
|
720
|
+
|
|
721
|
+
/**
|
|
722
|
+
* Convert File to ReadableStream<BinaryBuffer> for use in services which require ReadableStream
|
|
723
|
+
*/
|
|
724
|
+
export function fileToStream(file: File): ReadableStream<BinaryBuffer> {
|
|
725
|
+
const ws = newWriteableStream<BinaryBuffer>(BinaryBuffer.concat, { highWaterMark: 0 });
|
|
726
|
+
|
|
727
|
+
(async () => {
|
|
728
|
+
const reader = file.stream().getReader();
|
|
729
|
+
|
|
730
|
+
try {
|
|
731
|
+
while (true) {
|
|
732
|
+
const { value, done } = await reader.read();
|
|
733
|
+
if (done) {break;}
|
|
734
|
+
|
|
735
|
+
if (value?.byteLength) {
|
|
736
|
+
await ws.write(BinaryBuffer.wrap(value));
|
|
737
|
+
}
|
|
738
|
+
}
|
|
739
|
+
ws.end();
|
|
740
|
+
} catch (e: unknown) {
|
|
741
|
+
try {
|
|
742
|
+
await reader.cancel();
|
|
743
|
+
} catch {}
|
|
744
|
+
|
|
745
|
+
ws.error(e instanceof Error ? e : new Error(String(e)));
|
|
746
|
+
}
|
|
747
|
+
})();
|
|
748
|
+
|
|
749
|
+
return ws as ReadableStream<BinaryBuffer>;
|
|
750
|
+
}
|
|
751
|
+
|
|
752
|
+
/**
|
|
753
|
+
* Convert BinaryBufferReadableStream to Web ReadableStream<Uint8Array>
|
|
754
|
+
*/
|
|
755
|
+
export function binaryStreamToWebStream(
|
|
756
|
+
binaryStream: ReadableStream<BinaryBuffer>,
|
|
757
|
+
abortSignal?: AbortSignal
|
|
758
|
+
): globalThis.ReadableStream<Uint8Array> {
|
|
759
|
+
return new globalThis.ReadableStream<Uint8Array>({
|
|
760
|
+
start(controller) {
|
|
761
|
+
const cleanup = () => {
|
|
762
|
+
// Remove all event listeners
|
|
763
|
+
binaryStream.removeListener('data', onData);
|
|
764
|
+
binaryStream.removeListener('end', onEnd);
|
|
765
|
+
binaryStream.removeListener('error', onError);
|
|
766
|
+
};
|
|
767
|
+
|
|
768
|
+
const onAbort = () => {
|
|
769
|
+
cleanup();
|
|
770
|
+
controller.error(new Error('Operation aborted'));
|
|
771
|
+
};
|
|
772
|
+
|
|
773
|
+
if (abortSignal?.aborted) {
|
|
774
|
+
onAbort();
|
|
775
|
+
return;
|
|
776
|
+
}
|
|
777
|
+
|
|
778
|
+
if (abortSignal) {
|
|
779
|
+
abortSignal.addEventListener('abort', onAbort, { once: true });
|
|
780
|
+
}
|
|
781
|
+
|
|
782
|
+
const onData = (chunk: BinaryBuffer) => {
|
|
783
|
+
if (abortSignal?.aborted) {
|
|
784
|
+
return;
|
|
785
|
+
}
|
|
786
|
+
try {
|
|
787
|
+
// Convert BinaryBuffer to Uint8Array efficiently
|
|
788
|
+
controller.enqueue(new Uint8Array(chunk.buffer));
|
|
789
|
+
} catch (error) {
|
|
790
|
+
cleanup();
|
|
791
|
+
if (abortSignal) {
|
|
792
|
+
abortSignal.removeEventListener('abort', onAbort);
|
|
793
|
+
}
|
|
794
|
+
controller.error(error);
|
|
795
|
+
}
|
|
796
|
+
};
|
|
797
|
+
|
|
798
|
+
const onEnd = () => {
|
|
799
|
+
cleanup();
|
|
800
|
+
if (abortSignal) {
|
|
801
|
+
abortSignal.removeEventListener('abort', onAbort);
|
|
802
|
+
}
|
|
803
|
+
controller.close();
|
|
804
|
+
};
|
|
805
|
+
|
|
806
|
+
const onError = (error: Error) => {
|
|
807
|
+
cleanup();
|
|
808
|
+
if (abortSignal) {
|
|
809
|
+
abortSignal.removeEventListener('abort', onAbort);
|
|
810
|
+
}
|
|
811
|
+
controller.error(error);
|
|
812
|
+
};
|
|
813
|
+
|
|
814
|
+
binaryStream.on('data', onData);
|
|
815
|
+
binaryStream.on('end', onEnd);
|
|
816
|
+
binaryStream.on('error', onError);
|
|
817
|
+
}
|
|
818
|
+
});
|
|
819
|
+
}
|
|
@@ -15,14 +15,12 @@
|
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
17
|
import { interfaces } from 'inversify';
|
|
18
|
-
import {
|
|
19
|
-
import { PreferenceProxyFactory } from '
|
|
20
|
-
import { nls } from '../../common/nls';
|
|
18
|
+
import { nls } from './nls';
|
|
19
|
+
import { PreferenceSchema, PreferenceProxy, PreferenceProxyFactory, PreferenceContribution } from './preferences';
|
|
21
20
|
|
|
22
21
|
export const PREFERENCE_NAME_TREE_INDENT = 'workbench.tree.indent';
|
|
23
22
|
|
|
24
23
|
export const treePreferencesSchema: PreferenceSchema = {
|
|
25
|
-
type: 'object',
|
|
26
24
|
properties: {
|
|
27
25
|
[PREFERENCE_NAME_TREE_INDENT]: {
|
|
28
26
|
description: nls.localizeByDefault('Controls tree indentation in pixels.'),
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
|
|
19
19
|
import { inject, injectable, postConstruct } from 'inversify';
|
|
20
20
|
import {
|
|
21
|
-
ContextMenuRenderer, ContextMenuAccess, FrontendApplicationContribution, CommonCommands, coordinateFromAnchor,
|
|
21
|
+
ContextMenuRenderer, ContextMenuAccess, FrontendApplicationContribution, CommonCommands, coordinateFromAnchor,
|
|
22
22
|
Anchor
|
|
23
23
|
} from '../../browser';
|
|
24
24
|
import { ElectronMainMenuFactory } from './electron-main-menu-factory';
|
|
@@ -26,6 +26,7 @@ import { ContextMenuContext } from '../../browser/menu/context-menu-context';
|
|
|
26
26
|
import { BrowserContextMenuAccess, BrowserContextMenuRenderer } from '../../browser/menu/browser-context-menu-renderer';
|
|
27
27
|
import { MenuPath, MenuContribution, MenuModelRegistry, CompoundMenuNode } from '../../common/menu';
|
|
28
28
|
import { ContextKeyService, ContextMatcher } from '../../browser/context-key-service';
|
|
29
|
+
import { PreferenceService } from '../../common/preferences';
|
|
29
30
|
|
|
30
31
|
export class ElectronContextMenuAccess extends ContextMenuAccess {
|
|
31
32
|
constructor(readonly menuHandle: Promise<number>) {
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
18
18
|
|
|
19
19
|
import { inject, injectable, postConstruct } from 'inversify';
|
|
20
|
-
import { isOSX, MAIN_MENU_BAR, MenuNode, CompoundMenuNode, Group, RenderedMenuNode, CommandMenu, AcceleratorSource, MenuPath } from '../../common';
|
|
21
|
-
import {
|
|
20
|
+
import { isOSX, MAIN_MENU_BAR, MenuNode, CompoundMenuNode, Group, RenderedMenuNode, CommandMenu, AcceleratorSource, MenuPath, PreferenceService } from '../../common';
|
|
21
|
+
import { CommonCommands } from '../../browser';
|
|
22
22
|
import debounce = require('lodash.debounce');
|
|
23
23
|
import { BrowserMainMenuFactory } from '../../browser/menu/browser-menu-plugin';
|
|
24
24
|
import { ContextMatcher } from '../../browser/context-key-service';
|
|
@@ -175,7 +175,9 @@ export class ElectronMainMenuFactory extends BrowserMainMenuFactory {
|
|
|
175
175
|
const showDisabled = options?.showDisabled !== false;
|
|
176
176
|
const honorDisabled = options?.honorDisabled !== false;
|
|
177
177
|
|
|
178
|
-
|
|
178
|
+
const effectivePath = menu.effectiveMenuPath || menuPath;
|
|
179
|
+
|
|
180
|
+
if (CompoundMenuNode.is(menu) && menu.children.length && menu.isVisible(effectivePath, contextMatcher, options.context, ...args)) {
|
|
179
181
|
if (Group.is(menu) && menu.id === 'inline') {
|
|
180
182
|
return parentItems;
|
|
181
183
|
}
|
|
@@ -186,7 +188,7 @@ export class ElectronMainMenuFactory extends BrowserMainMenuFactory {
|
|
|
186
188
|
}
|
|
187
189
|
const children = menu.children;
|
|
188
190
|
const myItems: MenuDto[] = [];
|
|
189
|
-
children.forEach(child => this.fillMenuTemplate(myItems, [...
|
|
191
|
+
children.forEach(child => this.fillMenuTemplate(myItems, [...effectivePath, child.id], child, args, contextMatcher, options, false));
|
|
190
192
|
if (myItems.length === 0) {
|
|
191
193
|
return parentItems;
|
|
192
194
|
}
|
|
@@ -200,12 +202,12 @@ export class ElectronMainMenuFactory extends BrowserMainMenuFactory {
|
|
|
200
202
|
parentItems.push({ type: 'separator' });
|
|
201
203
|
}
|
|
202
204
|
} else if (CommandMenu.is(menu)) {
|
|
203
|
-
if (!menu.isVisible(
|
|
205
|
+
if (!menu.isVisible(effectivePath, contextMatcher, options.context, ...args)) {
|
|
204
206
|
return parentItems;
|
|
205
207
|
}
|
|
206
208
|
|
|
207
209
|
// We should omit rendering context-menu items which are disabled.
|
|
208
|
-
if (!showDisabled && !menu.isEnabled(
|
|
210
|
+
if (!showDisabled && !menu.isEnabled(effectivePath, ...args)) {
|
|
209
211
|
return parentItems;
|
|
210
212
|
}
|
|
211
213
|
|
|
@@ -214,15 +216,15 @@ export class ElectronMainMenuFactory extends BrowserMainMenuFactory {
|
|
|
214
216
|
const menuItem: MenuDto = {
|
|
215
217
|
id: menu.id,
|
|
216
218
|
label: menu.label,
|
|
217
|
-
type: menu.isToggled(
|
|
218
|
-
checked: menu.isToggled(
|
|
219
|
-
enabled: !honorDisabled || menu.isEnabled(
|
|
219
|
+
type: menu.isToggled(effectivePath, ...args) ? 'checkbox' : 'normal',
|
|
220
|
+
checked: menu.isToggled(effectivePath, ...args),
|
|
221
|
+
enabled: !honorDisabled || menu.isEnabled(effectivePath, ...args), // see https://github.com/eclipse-theia/theia/issues/446
|
|
220
222
|
visible: true,
|
|
221
223
|
accelerator,
|
|
222
224
|
execute: async () => {
|
|
223
225
|
const wasToggled = menuItem.checked;
|
|
224
|
-
await menu.run(
|
|
225
|
-
const isToggled = menu.isToggled(
|
|
226
|
+
await menu.run(effectivePath, ...args);
|
|
227
|
+
const isToggled = menu.isToggled(effectivePath, ...args);
|
|
226
228
|
if (isToggled !== wasToggled) {
|
|
227
229
|
menuItem.type = isToggled ? 'checkbox' : 'normal';
|
|
228
230
|
menuItem.checked = isToggled;
|
|
@@ -15,15 +15,18 @@
|
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
17
|
import { inject, injectable, postConstruct } from 'inversify';
|
|
18
|
-
import { Command, CommandContribution, CommandRegistry, isOSX, isWindows, MenuModelRegistry, MenuContribution, Disposable, nls } from '../../common';
|
|
19
18
|
import {
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
Command, CommandContribution, CommandRegistry, isOSX, isWindows, MenuModelRegistry,
|
|
20
|
+
MenuContribution, Disposable, nls, PreferenceScope, PreferenceService
|
|
21
|
+
} from '../../common';
|
|
22
|
+
import {
|
|
23
|
+
codicon, ConfirmDialog, KeybindingContribution, KeybindingRegistry, Widget,
|
|
24
|
+
FrontendApplication, FrontendApplicationContribution, CommonMenus, CommonCommands, Dialog, Message, ApplicationShell, animationFrame,
|
|
22
25
|
} from '../../browser';
|
|
23
26
|
import { ElectronMainMenuFactory } from './electron-main-menu-factory';
|
|
24
27
|
import { FrontendApplicationStateService, FrontendApplicationState } from '../../browser/frontend-application-state';
|
|
25
28
|
import { FrontendApplicationConfigProvider } from '../../browser/frontend-application-config-provider';
|
|
26
|
-
import { ZoomLevel } from '
|
|
29
|
+
import { ZoomLevel } from '../../electron-common/electron-window-preferences';
|
|
27
30
|
import { BrowserMenuBarContribution } from '../../browser/menu/browser-menu-plugin';
|
|
28
31
|
import { WindowService } from '../../browser/window/window-service';
|
|
29
32
|
import { WindowTitleService } from '../../browser/window/window-title-service';
|
|
@@ -142,7 +145,7 @@ export class ElectronMenuContribution extends BrowserMenuBarContribution impleme
|
|
|
142
145
|
protected attachMenuBarVisibilityListener(): void {
|
|
143
146
|
this.preferenceService.onPreferenceChanged(e => {
|
|
144
147
|
if (e.preferenceName === 'window.menuBarVisibility') {
|
|
145
|
-
this.handleFullScreen(e.newValue);
|
|
148
|
+
this.handleFullScreen(e.newValue as string);
|
|
146
149
|
}
|
|
147
150
|
});
|
|
148
151
|
}
|
|
@@ -164,7 +167,7 @@ export class ElectronMenuContribution extends BrowserMenuBarContribution impleme
|
|
|
164
167
|
this.preferenceService.onPreferenceChanged(change => {
|
|
165
168
|
if (change.preferenceName === 'window.titleBarStyle') {
|
|
166
169
|
if (this.titleBarStyleChangeFlag && this.titleBarStyle !== change.newValue) {
|
|
167
|
-
window.electronTheiaCore.setTitleBarStyle(change.newValue);
|
|
170
|
+
window.electronTheiaCore.setTitleBarStyle(change.newValue as string);
|
|
168
171
|
this.handleRequiredRestart();
|
|
169
172
|
}
|
|
170
173
|
this.titleBarStyleChangeFlag = true;
|
|
@@ -27,7 +27,7 @@ import {
|
|
|
27
27
|
CHANNEL_REQUEST_RELOAD, CHANNEL_APP_STATE_CHANGED, CHANNEL_SHOW_ITEM_IN_FOLDER, CHANNEL_READ_CLIPBOARD, CHANNEL_WRITE_CLIPBOARD,
|
|
28
28
|
CHANNEL_KEYBOARD_LAYOUT_CHANGED, CHANNEL_IPC_CONNECTION, InternalMenuDto, CHANNEL_REQUEST_SECONDARY_CLOSE, CHANNEL_SET_BACKGROUND_COLOR,
|
|
29
29
|
CHANNEL_WC_METADATA, CHANNEL_ABOUT_TO_CLOSE, CHANNEL_OPEN_WITH_SYSTEM_APP,
|
|
30
|
-
CHANNEL_OPEN_URL, CHANNEL_SET_THEME
|
|
30
|
+
CHANNEL_OPEN_URL, CHANNEL_SET_THEME, CHANNEL_OPEN_DEVTOOLS_FOR_WINDOW
|
|
31
31
|
} from '../electron-common/electron-api';
|
|
32
32
|
|
|
33
33
|
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
@@ -200,6 +200,9 @@ const api: TheiaCoreAPI = {
|
|
|
200
200
|
toggleDevTools: function (): void {
|
|
201
201
|
ipcRenderer.send(CHANNEL_TOGGLE_DEVTOOLS);
|
|
202
202
|
},
|
|
203
|
+
openDevToolsForWindow: function (windowName: string): void {
|
|
204
|
+
ipcRenderer.send(CHANNEL_OPEN_DEVTOOLS_FOR_WINDOW, windowName);
|
|
205
|
+
},
|
|
203
206
|
getZoomLevel: function (): Promise<number> {
|
|
204
207
|
return ipcRenderer.invoke(CHANNEL_GET_ZOOM_LEVEL);
|
|
205
208
|
},
|
|
@@ -48,10 +48,13 @@ export class ElectronSecondaryWindowService extends DefaultSecondaryWindowServic
|
|
|
48
48
|
|
|
49
49
|
protected override windowCreated(newWindow: Window, widget: ExtractableWidget, shell: ApplicationShell): void {
|
|
50
50
|
window.electronTheiaCore.setMenuBarVisible(false, newWindow.name);
|
|
51
|
-
window.electronTheiaCore.setSecondaryWindowCloseRequestHandler(newWindow.name, () => this.canClose(widget, shell));
|
|
51
|
+
window.electronTheiaCore.setSecondaryWindowCloseRequestHandler(newWindow.name, () => this.canClose(widget, shell, newWindow));
|
|
52
|
+
|
|
53
|
+
// Below code may be used to debug contents of secondary window
|
|
54
|
+
// window.electronTheiaCore.openDevToolsForWindow(newWindow.name);
|
|
52
55
|
}
|
|
53
|
-
private async canClose(
|
|
54
|
-
|
|
55
|
-
return widget.isDisposed;
|
|
56
|
+
private async canClose(extractableWidget: ExtractableWidget, shell: ApplicationShell, newWindow: Window): Promise<boolean> {
|
|
57
|
+
return this.restoreWidgets(newWindow, extractableWidget, shell);
|
|
56
58
|
}
|
|
59
|
+
|
|
57
60
|
}
|
|
@@ -26,7 +26,7 @@ import { ElectronClipboardService } from '../electron-clipboard-service';
|
|
|
26
26
|
import { ElectronIpcConnectionProvider } from '../messaging/electron-ipc-connection-source';
|
|
27
27
|
import { ElectronFrontendApplicationStateService } from './electron-frontend-application-state';
|
|
28
28
|
import { ElectronSecondaryWindowService } from './electron-secondary-window-service';
|
|
29
|
-
import { bindWindowPreferences } from '
|
|
29
|
+
import { bindWindowPreferences } from '../../electron-common/electron-window-preferences';
|
|
30
30
|
import { ElectronWindowService } from './electron-window-service';
|
|
31
31
|
import { ExternalAppOpenHandler } from './external-app-open-handler';
|
|
32
32
|
import { ElectronUriHandlerContribution } from '../electron-uri-handler';
|
|
@@ -18,7 +18,7 @@ import { injectable, inject, postConstruct } from 'inversify';
|
|
|
18
18
|
import { NewWindowOptions, WindowSearchParams } from '../../common/window';
|
|
19
19
|
import { DefaultWindowService } from '../../browser/window/default-window-service';
|
|
20
20
|
import { ElectronMainWindowService } from '../../electron-common/electron-main-window-service';
|
|
21
|
-
import { ElectronWindowPreferences } from '
|
|
21
|
+
import { ElectronWindowPreferences } from '../../electron-common/electron-window-preferences';
|
|
22
22
|
import { ConnectionCloseService } from '../../common/messaging/connection-management';
|
|
23
23
|
import { FrontendIdProvider } from '../../browser/messaging/frontend-id-provider';
|
|
24
24
|
import { WindowReloadOptions } from '../../browser/window/window-service';
|
|
@@ -83,6 +83,7 @@ export interface TheiaCoreAPI {
|
|
|
83
83
|
setSecondaryWindowCloseRequestHandler(windowName: string, handler: () => Promise<boolean>): void;
|
|
84
84
|
|
|
85
85
|
toggleDevTools(): void;
|
|
86
|
+
openDevToolsForWindow(windowName: string): void;
|
|
86
87
|
getZoomLevel(): Promise<number>;
|
|
87
88
|
setZoomLevel(desired: number): void;
|
|
88
89
|
|
|
@@ -141,6 +142,7 @@ export const CHANNEL_OPEN_URL = 'OpenUrl';
|
|
|
141
142
|
export const CHANNEL_UNMAXIMIZE = 'UnMaximize';
|
|
142
143
|
export const CHANNEL_ON_WINDOW_EVENT = 'OnWindowEvent';
|
|
143
144
|
export const CHANNEL_TOGGLE_DEVTOOLS = 'ToggleDevtools';
|
|
145
|
+
export const CHANNEL_OPEN_DEVTOOLS_FOR_WINDOW = 'OpenDevtoolsForWindow';
|
|
144
146
|
export const CHANNEL_GET_ZOOM_LEVEL = 'GetZoomLevel';
|
|
145
147
|
export const CHANNEL_SET_ZOOM_LEVEL = 'SetZoomLevel';
|
|
146
148
|
export const CHANNEL_IS_FULL_SCREENABLE = 'IsFullScreenable';
|
|
@@ -15,9 +15,10 @@
|
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
17
|
import { interfaces } from 'inversify';
|
|
18
|
-
import { nls } from '
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
18
|
+
import { nls } from '../common/nls';
|
|
19
|
+
import { isOSX, isWindows } from '../common';
|
|
20
|
+
import { PreferenceContribution, PreferenceSchema } from '../common/preferences/preference-schema';
|
|
21
|
+
import { createPreferenceProxy, PreferenceProxy, PreferenceScope, PreferenceService } from '../common/preferences';
|
|
21
22
|
|
|
22
23
|
export namespace ZoomLevel {
|
|
23
24
|
export const DEFAULT = 0;
|
|
@@ -29,14 +30,13 @@ export namespace ZoomLevel {
|
|
|
29
30
|
}
|
|
30
31
|
|
|
31
32
|
export const electronWindowPreferencesSchema: PreferenceSchema = {
|
|
32
|
-
type: 'object',
|
|
33
33
|
properties: {
|
|
34
34
|
'window.zoomLevel': {
|
|
35
35
|
'type': 'number',
|
|
36
36
|
'default': ZoomLevel.DEFAULT,
|
|
37
37
|
'minimum': ZoomLevel.MIN,
|
|
38
38
|
'maximum': ZoomLevel.MAX,
|
|
39
|
-
'scope':
|
|
39
|
+
'scope': PreferenceScope.User,
|
|
40
40
|
// eslint-disable-next-line max-len
|
|
41
41
|
'description': nls.localizeByDefault("Adjust the default zoom level for all windows. Each increment above `0` (e.g. `1`) or below (e.g. `-1`) represents zooming `20%` larger or smaller. You can also enter decimals to adjust the zoom level with a finer granularity. See {0} for configuring if the 'Zoom In' and 'Zoom Out' commands apply the zoom level to all windows or only the active window.")
|
|
42
42
|
},
|
|
@@ -44,7 +44,7 @@ export const electronWindowPreferencesSchema: PreferenceSchema = {
|
|
|
44
44
|
type: 'string',
|
|
45
45
|
enum: ['native', 'custom'],
|
|
46
46
|
default: isWindows ? 'custom' : 'native',
|
|
47
|
-
scope:
|
|
47
|
+
scope: PreferenceScope.User,
|
|
48
48
|
// eslint-disable-next-line max-len
|
|
49
49
|
description: nls.localizeByDefault('Adjust the appearance of the window title bar to be native by the OS or custom. On Linux and Windows, this setting also affects the application and context menu appearances. Changes require a full restart to apply.'),
|
|
50
50
|
included: !isOSX
|