@theia/core 1.77.0-next.49 → 1.77.0-next.57
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/lib/browser/breadcrumbs/breadcrumbs-renderer.js +1 -1
- package/lib/browser/breadcrumbs/breadcrumbs-renderer.js.map +1 -1
- package/lib/browser/catalog.json +81 -0
- package/lib/browser/color-application-contribution.d.ts +1 -1
- package/lib/browser/color-application-contribution.d.ts.map +1 -1
- package/lib/browser/color-registry.d.ts +1 -1
- package/lib/browser/color-registry.d.ts.map +1 -1
- package/lib/browser/common-frontend-contribution.d.ts +6 -1
- package/lib/browser/common-frontend-contribution.d.ts.map +1 -1
- package/lib/browser/common-frontend-contribution.js +20 -3
- package/lib/browser/common-frontend-contribution.js.map +1 -1
- package/lib/browser/common-frontend-contribution.spec.js +2 -1
- package/lib/browser/common-frontend-contribution.spec.js.map +1 -1
- package/lib/browser/components/card.d.ts +1 -1
- package/lib/browser/components/card.d.ts.map +1 -1
- package/lib/browser/components/card.js +3 -2
- package/lib/browser/components/card.js.map +1 -1
- package/lib/browser/connection-status-service.spec.js +2 -1
- package/lib/browser/connection-status-service.spec.js.map +1 -1
- package/lib/browser/context-key-service.d.ts +11 -0
- package/lib/browser/context-key-service.d.ts.map +1 -1
- package/lib/browser/context-key-service.js +7 -0
- package/lib/browser/context-key-service.js.map +1 -1
- package/lib/browser/decorations-service.spec.js +2 -1
- package/lib/browser/decorations-service.spec.js.map +1 -1
- package/lib/browser/dialogs/react-dialog.spec.js +2 -1
- package/lib/browser/dialogs/react-dialog.spec.js.map +1 -1
- package/lib/browser/diff-uris.js +1 -1
- package/lib/browser/diff-uris.js.map +1 -1
- package/lib/browser/endpoint.js +2 -1
- package/lib/browser/endpoint.js.map +1 -1
- package/lib/browser/endpoint.spec.js +2 -1
- package/lib/browser/endpoint.spec.js.map +1 -1
- package/lib/browser/keybinding.d.ts +95 -17
- package/lib/browser/keybinding.d.ts.map +1 -1
- package/lib/browser/keybinding.js +406 -76
- package/lib/browser/keybinding.js.map +1 -1
- package/lib/browser/keybinding.spec.js +789 -33
- package/lib/browser/keybinding.spec.js.map +1 -1
- package/lib/browser/keyboard/browser-keyboard-frontend-contribution.js +1 -1
- package/lib/browser/keyboard/browser-keyboard-frontend-contribution.js.map +1 -1
- package/lib/browser/keyboard/browser-keyboard-layout-provider.d.ts +3 -4
- package/lib/browser/keyboard/browser-keyboard-layout-provider.d.ts.map +1 -1
- package/lib/browser/keyboard/browser-keyboard-layout-provider.js +3 -3
- package/lib/browser/keyboard/browser-keyboard-layout-provider.js.map +1 -1
- package/lib/browser/keyboard/browser-keyboard-layout-provider.spec.js +42 -3
- package/lib/browser/keyboard/browser-keyboard-layout-provider.spec.js.map +1 -1
- package/lib/browser/keyboard/keyboard-layout-service.d.ts +67 -15
- package/lib/browser/keyboard/keyboard-layout-service.d.ts.map +1 -1
- package/lib/browser/keyboard/keyboard-layout-service.js +309 -98
- package/lib/browser/keyboard/keyboard-layout-service.js.map +1 -1
- package/lib/browser/keyboard/keyboard-layout-service.spec.js +541 -15
- package/lib/browser/keyboard/keyboard-layout-service.spec.js.map +1 -1
- package/lib/browser/keyboard/keys.spec.js +187 -3
- package/lib/browser/keyboard/keys.spec.js.map +1 -1
- package/lib/browser/label-provider.d.ts.map +1 -1
- package/lib/browser/label-provider.js +5 -3
- package/lib/browser/label-provider.js.map +1 -1
- package/lib/browser/label-provider.spec.js +2 -1
- package/lib/browser/label-provider.spec.js.map +1 -1
- package/lib/browser/markdown-rendering/markdown-link-handler.js +2 -1
- package/lib/browser/markdown-rendering/markdown-link-handler.js.map +1 -1
- package/lib/browser/markdown-rendering/markdown-renderer.d.ts +1 -1
- package/lib/browser/markdown-rendering/markdown-renderer.d.ts.map +1 -1
- package/lib/browser/markdown-rendering/markdown-renderer.js +4 -4
- package/lib/browser/markdown-rendering/markdown-renderer.js.map +1 -1
- package/lib/browser/markdown-rendering/markdown.js +2 -1
- package/lib/browser/markdown-rendering/markdown.js.map +1 -1
- package/lib/browser/markdown-rendering/markdown.spec.js +2 -1
- package/lib/browser/markdown-rendering/markdown.spec.js.map +1 -1
- package/lib/browser/menu/action-menu-node.d.ts +5 -3
- package/lib/browser/menu/action-menu-node.d.ts.map +1 -1
- package/lib/browser/menu/action-menu-node.js +2 -11
- package/lib/browser/menu/action-menu-node.js.map +1 -1
- package/lib/browser/menu/action-menu-node.spec.d.ts +2 -0
- package/lib/browser/menu/action-menu-node.spec.d.ts.map +1 -0
- package/lib/browser/menu/action-menu-node.spec.js +54 -0
- package/lib/browser/menu/action-menu-node.spec.js.map +1 -0
- package/lib/browser/menu/browser-menu-plugin.js +1 -1
- package/lib/browser/menu/browser-menu-plugin.js.map +1 -1
- package/lib/browser/menu/menu.spec.js +2 -1
- package/lib/browser/menu/menu.spec.js.map +1 -1
- package/lib/browser/opener-service.spec.js +3 -2
- package/lib/browser/opener-service.spec.js.map +1 -1
- package/lib/browser/perspective-service.spec.js +2 -1
- package/lib/browser/perspective-service.spec.js.map +1 -1
- package/lib/browser/preferences/preference-proxy.spec.js +2 -1
- package/lib/browser/preferences/preference-proxy.spec.js.map +1 -1
- package/lib/browser/preferences/preference-schema-provider.spec.js +2 -1
- package/lib/browser/preferences/preference-schema-provider.spec.js.map +1 -1
- package/lib/browser/preferences/preference-service.spec.js +2 -1
- package/lib/browser/preferences/preference-service.spec.js.map +1 -1
- package/lib/browser/preferences/preference-validation-service.spec.js +78 -77
- package/lib/browser/preferences/preference-validation-service.spec.js.map +1 -1
- package/lib/browser/quick-input/quick-command-service.d.ts +10 -1
- package/lib/browser/quick-input/quick-command-service.d.ts.map +1 -1
- package/lib/browser/quick-input/quick-command-service.js +31 -6
- package/lib/browser/quick-input/quick-command-service.js.map +1 -1
- package/lib/browser/quick-input/quick-command-service.spec.d.ts +2 -0
- package/lib/browser/quick-input/quick-command-service.spec.d.ts.map +1 -0
- package/lib/browser/quick-input/quick-command-service.spec.js +130 -0
- package/lib/browser/quick-input/quick-command-service.spec.js.map +1 -0
- package/lib/browser/quick-input/quick-help-service.js +1 -1
- package/lib/browser/quick-input/quick-help-service.js.map +1 -1
- package/lib/browser/quick-input/quick-input-service.spec.js +2 -1
- package/lib/browser/quick-input/quick-input-service.spec.js.map +1 -1
- package/lib/browser/quick-input/quick-pick-service-impl.d.ts +6 -6
- package/lib/browser/quick-input/quick-pick-service-impl.d.ts.map +1 -1
- package/lib/browser/quick-input/quick-view-service.spec.js +2 -1
- package/lib/browser/quick-input/quick-view-service.spec.js.map +1 -1
- package/lib/browser/secondary-window-handler.d.ts +4 -4
- package/lib/browser/secondary-window-handler.d.ts.map +1 -1
- package/lib/browser/shell/application-shell.js +1 -1
- package/lib/browser/shell/application-shell.js.map +1 -1
- package/lib/browser/shell/application-shell.spec.js +2 -1
- package/lib/browser/shell/application-shell.spec.js.map +1 -1
- package/lib/browser/shell/shell-layout-restorer.spec.js +2 -1
- package/lib/browser/shell/shell-layout-restorer.spec.js.map +1 -1
- package/lib/browser/shell/side-panel-toolbar.d.ts +1 -1
- package/lib/browser/shell/side-panel-toolbar.d.ts.map +1 -1
- package/lib/browser/shell/sidebar-menu-widget.js +1 -1
- package/lib/browser/shell/sidebar-menu-widget.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-bar-toolbar.spec.js +2 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.spec.js.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/status-bar/status-bar.js +1 -1
- package/lib/browser/status-bar/status-bar.js.map +1 -1
- package/lib/browser/storage-service.spec.js +2 -1
- package/lib/browser/storage-service.spec.js.map +1 -1
- package/lib/browser/test/jsdom.d.ts.map +1 -1
- package/lib/browser/test/jsdom.js +11 -0
- package/lib/browser/test/jsdom.js.map +1 -1
- package/lib/browser/tooltip-service.js +1 -1
- package/lib/browser/tooltip-service.js.map +1 -1
- package/lib/browser/tree/tree-consistency.spec.js +1 -1
- package/lib/browser/tree/tree-consistency.spec.js.map +1 -1
- package/lib/browser/tree/tree-container.spec.js +6 -5
- package/lib/browser/tree/tree-container.spec.js.map +1 -1
- package/lib/browser/tree/tree-iterator.js +1 -1
- package/lib/browser/tree/tree-iterator.js.map +1 -1
- package/lib/browser/tree/tree-model.js +2 -2
- package/lib/browser/tree/tree-model.js.map +1 -1
- package/lib/browser/tree/tree-view-welcome-widget.js +1 -1
- package/lib/browser/tree/tree-view-welcome-widget.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 +1 -1
- package/lib/browser/tree/tree-widget.js.map +1 -1
- package/lib/browser/tree/tree.spec.js +2 -1
- package/lib/browser/tree/tree.spec.js.map +1 -1
- package/lib/browser/user-working-directory-provider.js +1 -1
- package/lib/browser/user-working-directory-provider.js.map +1 -1
- package/lib/browser/widgets/react-renderer.js +1 -1
- package/lib/browser/widgets/react-renderer.js.map +1 -1
- package/lib/browser/widgets/react-widget.js +1 -1
- package/lib/browser/widgets/react-widget.js.map +1 -1
- package/lib/browser/widgets/select-component.js +4 -3
- package/lib/browser/widgets/select-component.js.map +1 -1
- package/lib/browser/widgets/select-component.spec.js +3 -2
- package/lib/browser/widgets/select-component.spec.js.map +1 -1
- package/lib/browser/widgets/widget.js +1 -1
- package/lib/browser/widgets/widget.js.map +1 -1
- package/lib/common/buffer.js +3 -2
- package/lib/common/buffer.js.map +1 -1
- package/lib/common/cancellation.js.map +1 -1
- package/lib/common/command.spec.js +2 -1
- package/lib/common/command.spec.js.map +1 -1
- package/lib/common/disposable.spec.js +3 -2
- package/lib/common/disposable.spec.js.map +1 -1
- package/lib/common/encoding-service.js +2 -2
- package/lib/common/encoding-service.js.map +1 -1
- package/lib/common/event.d.ts +1 -1
- package/lib/common/event.d.ts.map +1 -1
- package/lib/common/event.js +0 -1
- package/lib/common/event.js.map +1 -1
- package/lib/common/file-uri.js +2 -1
- package/lib/common/file-uri.js.map +1 -1
- package/lib/common/fuzzy-search.js +1 -1
- package/lib/common/fuzzy-search.js.map +1 -1
- package/lib/common/glob.d.ts.map +1 -1
- package/lib/common/glob.js +9 -15
- package/lib/common/glob.js.map +1 -1
- package/lib/common/index.js +1 -1
- package/lib/common/index.js.map +1 -1
- package/lib/common/keyboard/keyboard-layout-provider.d.ts +7 -0
- package/lib/common/keyboard/keyboard-layout-provider.d.ts.map +1 -1
- package/lib/common/keyboard/keyboard-layout-provider.js.map +1 -1
- package/lib/common/keys.d.ts +86 -3
- package/lib/common/keys.d.ts.map +1 -1
- package/lib/common/keys.js +263 -24
- package/lib/common/keys.js.map +1 -1
- package/lib/common/message-rpc/channel.spec.js +3 -2
- package/lib/common/message-rpc/channel.spec.js.map +1 -1
- package/lib/common/messaging/proxy-factory.js +2 -2
- package/lib/common/messaging/proxy-factory.js.map +1 -1
- package/lib/common/messaging/proxy-factory.spec.js +2 -1
- package/lib/common/messaging/proxy-factory.spec.js.map +1 -1
- package/lib/common/messaging/web-socket-channel.d.ts +1 -1
- package/lib/common/messaging/web-socket-channel.d.ts.map +1 -1
- package/lib/common/path.spec.js +2 -1
- package/lib/common/path.spec.js.map +1 -1
- package/lib/common/performance/stopwatch.spec.js +2 -1
- package/lib/common/performance/stopwatch.spec.js.map +1 -1
- package/lib/common/preferences/preference-schema-service.d.ts +2 -2
- package/lib/common/preferences/preference-schema-service.d.ts.map +1 -1
- package/lib/common/preferences/preference-service.js +1 -1
- package/lib/common/preferences/preference-service.js.map +1 -1
- package/lib/common/promise-util.spec.js +2 -1
- package/lib/common/promise-util.spec.js.map +1 -1
- package/lib/common/quick-pick-service.d.ts +5 -0
- package/lib/common/quick-pick-service.d.ts.map +1 -1
- package/lib/common/quick-pick-service.js +2 -1
- package/lib/common/quick-pick-service.js.map +1 -1
- package/lib/common/reference.spec.js +2 -1
- package/lib/common/reference.spec.js.map +1 -1
- package/lib/common/resource.js +1 -1
- package/lib/common/resource.js.map +1 -1
- package/lib/common/selection-service.spec.js +2 -1
- package/lib/common/selection-service.spec.js.map +1 -1
- package/lib/common/selection.js +2 -1
- package/lib/common/selection.js.map +1 -1
- package/lib/common/stream.d.ts.map +1 -1
- package/lib/common/stream.js +2 -1
- package/lib/common/stream.js.map +1 -1
- package/lib/common/strings.d.ts.map +1 -1
- package/lib/common/strings.js +1 -2
- package/lib/common/strings.js.map +1 -1
- package/lib/common/ternary-search-tree.js +2 -2
- package/lib/common/ternary-search-tree.js.map +1 -1
- package/lib/common/ternary-search-tree.spec.js +12 -0
- package/lib/common/ternary-search-tree.spec.js.map +1 -1
- package/lib/common/test/mock-resource-provider.js +1 -1
- package/lib/common/test/mock-resource-provider.js.map +1 -1
- package/lib/common/types.spec.js +2 -1
- package/lib/common/types.spec.js.map +1 -1
- package/lib/common/uri-command-handler.js +4 -3
- package/lib/common/uri-command-handler.js.map +1 -1
- package/lib/common/uri-command-handler.spec.js +3 -2
- package/lib/common/uri-command-handler.spec.js.map +1 -1
- package/lib/common/uri.spec.js +3 -2
- package/lib/common/uri.spec.js.map +1 -1
- package/lib/electron-browser/keyboard/electron-keyboard-module.d.ts +2 -0
- package/lib/electron-browser/keyboard/electron-keyboard-module.d.ts.map +1 -1
- package/lib/electron-browser/keyboard/electron-keyboard-module.js +8 -1
- package/lib/electron-browser/keyboard/electron-keyboard-module.js.map +1 -1
- package/lib/electron-browser/keyboard/electron-keyboard-module.spec.d.ts +2 -0
- package/lib/electron-browser/keyboard/electron-keyboard-module.spec.d.ts.map +1 -0
- package/lib/electron-browser/keyboard/electron-keyboard-module.spec.js +28 -0
- package/lib/electron-browser/keyboard/electron-keyboard-module.spec.js.map +1 -0
- package/lib/electron-browser/menu/electron-main-menu-factory.d.ts.map +1 -1
- package/lib/electron-browser/menu/electron-main-menu-factory.js +3 -2
- 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 +3 -0
- package/lib/electron-browser/menu/electron-menu-contribution.js.map +1 -1
- package/lib/electron-browser/window/window-zoom-action-bar.js +2 -1
- package/lib/electron-browser/window/window-zoom-action-bar.js.map +1 -1
- package/lib/electron-common/electron-api.d.ts +5 -0
- package/lib/electron-common/electron-api.d.ts.map +1 -1
- package/lib/electron-common/electron-api.js +21 -0
- package/lib/electron-common/electron-api.js.map +1 -1
- package/lib/electron-common/electron-api.spec.d.ts +2 -0
- package/lib/electron-common/electron-api.spec.d.ts.map +1 -0
- package/lib/electron-common/electron-api.spec.js +40 -0
- package/lib/electron-common/electron-api.spec.js.map +1 -0
- package/lib/electron-main/electron-api-main.d.ts +0 -1
- package/lib/electron-main/electron-api-main.d.ts.map +1 -1
- package/lib/electron-main/electron-api-main.js +3 -14
- package/lib/electron-main/electron-api-main.js.map +1 -1
- package/lib/electron-main/electron-main-application.js +2 -2
- package/lib/electron-main/electron-main-application.js.map +1 -1
- package/lib/electron-node/hosting/electron-backend-hosting-module.spec.js +2 -1
- package/lib/electron-node/hosting/electron-backend-hosting-module.spec.js.map +1 -1
- package/lib/electron-node/keyboard/electron-keyboard-layout-provider.js +1 -1
- package/lib/electron-node/keyboard/electron-keyboard-layout-provider.js.map +1 -1
- package/lib/electron-node/token/electron-token-validator.js +2 -2
- package/lib/electron-node/token/electron-token-validator.js.map +1 -1
- package/lib/node/backend-application.d.ts +1 -1
- package/lib/node/backend-application.d.ts.map +1 -1
- package/lib/node/backend-application.js +7 -7
- package/lib/node/backend-application.js.map +1 -1
- package/lib/node/backend-application.spec.js +1 -1
- package/lib/node/backend-application.spec.js.map +1 -1
- package/lib/node/bundled-resource-provider.js +4 -4
- package/lib/node/bundled-resource-provider.js.map +1 -1
- package/lib/node/bundled-resource-provider.spec.js +5 -4
- package/lib/node/bundled-resource-provider.spec.js.map +1 -1
- package/lib/node/cli.d.ts +1 -1
- package/lib/node/cli.d.ts.map +1 -1
- package/lib/node/cli.js +2 -2
- package/lib/node/cli.js.map +1 -1
- package/lib/node/cli.spec.js +3 -2
- package/lib/node/cli.spec.js.map +1 -1
- package/lib/node/console-logger-server.js +1 -1
- package/lib/node/console-logger-server.js.map +1 -1
- package/lib/node/env-variables/env-variables-server.js +1 -1
- package/lib/node/env-variables/env-variables-server.js.map +1 -1
- package/lib/node/environment-utils.spec.js +2 -1
- package/lib/node/environment-utils.spec.js.map +1 -1
- package/lib/node/file-uri.spec.js +4 -3
- package/lib/node/file-uri.spec.js.map +1 -1
- package/lib/node/filesystem-locking.js +1 -1
- package/lib/node/filesystem-locking.js.map +1 -1
- package/lib/node/hosting/browser-connection-token.js +2 -2
- package/lib/node/hosting/browser-connection-token.js.map +1 -1
- package/lib/node/i18n/localization-contribution.js +1 -1
- package/lib/node/i18n/localization-contribution.js.map +1 -1
- package/lib/node/key-store-server.js +1 -1
- package/lib/node/key-store-server.js.map +1 -1
- package/lib/node/logger-cli-contribution.js +2 -2
- package/lib/node/logger-cli-contribution.js.map +1 -1
- package/lib/node/logger-cli-contribution.spec.js +17 -16
- package/lib/node/logger-cli-contribution.spec.js.map +1 -1
- package/lib/node/messaging/ipc-connection-provider.js +2 -2
- package/lib/node/messaging/ipc-connection-provider.js.map +1 -1
- package/lib/node/process-utils.js +1 -1
- package/lib/node/process-utils.js.map +1 -1
- package/lib/node/process-utils.spec.js +2 -1
- package/lib/node/process-utils.spec.js.map +1 -1
- package/lib/node/request/backend-request-facade.spec.js +2 -1
- package/lib/node/request/backend-request-facade.spec.js.map +1 -1
- package/lib/node/setting-service.spec.js +2 -1
- package/lib/node/setting-service.spec.js.map +1 -1
- package/package.json +4 -4
- package/src/browser/common-frontend-contribution.ts +17 -1
- package/src/browser/components/card.tsx +1 -1
- package/src/browser/context-key-service.ts +15 -0
- package/src/browser/keybinding.spec.ts +878 -34
- package/src/browser/keybinding.ts +470 -85
- package/src/browser/keyboard/browser-keyboard-frontend-contribution.ts +1 -1
- package/src/browser/keyboard/browser-keyboard-layout-provider.spec.ts +52 -1
- package/src/browser/keyboard/browser-keyboard-layout-provider.ts +5 -5
- package/src/browser/keyboard/keyboard-layout-service.spec.ts +640 -15
- package/src/browser/keyboard/keyboard-layout-service.ts +358 -106
- package/src/browser/keyboard/keys.spec.ts +206 -1
- package/src/browser/label-provider.ts +3 -1
- package/src/browser/markdown-rendering/markdown-renderer.ts +1 -1
- package/src/browser/menu/action-menu-node.spec.ts +60 -0
- package/src/browser/menu/action-menu-node.ts +8 -14
- package/src/browser/menu/browser-menu-plugin.ts +1 -1
- package/src/browser/preferences/preference-validation-service.spec.ts +1 -1
- package/src/browser/quick-input/quick-command-service.spec.ts +159 -0
- package/src/browser/quick-input/quick-command-service.ts +36 -9
- package/src/browser/quick-input/quick-help-service.ts +1 -1
- package/src/browser/test/jsdom.ts +11 -0
- package/src/browser/tree/tree-container.spec.ts +1 -1
- package/src/browser/tree/tree-iterator.ts +1 -1
- package/src/browser/tree/tree-model.ts +2 -2
- package/src/browser/tree/tree-widget.tsx +2 -2
- package/src/common/cancellation.ts +1 -1
- package/src/common/disposable.spec.ts +1 -1
- package/src/common/event.ts +1 -2
- package/src/common/glob.ts +13 -30
- package/src/common/json-schema.ts +1 -1
- package/src/common/keyboard/keyboard-layout-provider.ts +8 -0
- package/src/common/keys.ts +312 -27
- package/src/common/message-rpc/channel.spec.ts +1 -1
- package/src/common/messaging/proxy-factory.ts +2 -2
- package/src/common/quick-pick-service.ts +5 -0
- package/src/common/stream.ts +4 -3
- package/src/common/strings.ts +2 -5
- package/src/common/ternary-search-tree.spec.ts +14 -0
- package/src/common/ternary-search-tree.ts +3 -3
- package/src/common/uri-command-handler.ts +2 -2
- package/src/electron-browser/keyboard/electron-keyboard-module.spec.ts +29 -0
- package/src/electron-browser/keyboard/electron-keyboard-module.ts +9 -2
- package/src/electron-browser/menu/electron-main-menu-factory.ts +3 -3
- package/src/electron-browser/menu/electron-menu-contribution.ts +4 -0
- package/src/electron-common/electron-api.spec.ts +42 -0
- package/src/electron-common/electron-api.ts +23 -0
- package/src/electron-main/electron-api-main.ts +2 -13
- package/src/node/backend-application.ts +1 -1
- package/src/node/cli.ts +1 -1
- package/src/node/logger-cli-contribution.spec.ts +1 -1
|
@@ -333,7 +333,7 @@ export class JsonRpcProxyFactory<T extends object> extends RpcProxyFactory<T> {
|
|
|
333
333
|
|
|
334
334
|
}
|
|
335
335
|
|
|
336
|
-
// eslint-disable-next-line
|
|
336
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
337
337
|
decorate(injectable(), JsonRpcProxyFactory);
|
|
338
|
-
// eslint-disable-next-line
|
|
338
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
339
339
|
decorate(unmanaged(), JsonRpcProxyFactory, 0);
|
|
@@ -282,6 +282,11 @@ export interface QuickInputService {
|
|
|
282
282
|
readonly backButton: QuickInputButton;
|
|
283
283
|
readonly onShow: Event<void>;
|
|
284
284
|
readonly onHide: Event<void>;
|
|
285
|
+
/**
|
|
286
|
+
* The element that had focus when the quick input was shown, while the quick input is showing.
|
|
287
|
+
* Items whose state depends on context keys should be evaluated against this element rather than the quick input itself.
|
|
288
|
+
*/
|
|
289
|
+
readonly previousFocusElement?: HTMLElement;
|
|
285
290
|
open(filter: string): void;
|
|
286
291
|
createInputBox(): InputBox;
|
|
287
292
|
input(options?: InputOptions, token?: CancellationToken): Promise<string | undefined>;
|
package/src/common/stream.ts
CHANGED
|
@@ -22,7 +22,8 @@
|
|
|
22
22
|
|
|
23
23
|
/* eslint-disable max-len */
|
|
24
24
|
/* eslint-disable no-null/no-null */
|
|
25
|
-
/* eslint-disable @
|
|
25
|
+
/* eslint-disable @stylistic/brace-style */
|
|
26
|
+
/* eslint-disable @theia/explicit-return-type */
|
|
26
27
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
27
28
|
|
|
28
29
|
import { DisposableCollection, Disposable } from './disposable';
|
|
@@ -730,7 +731,7 @@ export function fileToStream(file: File): ReadableStream<BinaryBuffer> {
|
|
|
730
731
|
try {
|
|
731
732
|
while (true) {
|
|
732
733
|
const { value, done } = await reader.read();
|
|
733
|
-
if (done) {break;}
|
|
734
|
+
if (done) { break; }
|
|
734
735
|
|
|
735
736
|
if (value?.byteLength) {
|
|
736
737
|
await ws.write(BinaryBuffer.wrap(value));
|
|
@@ -740,7 +741,7 @@ export function fileToStream(file: File): ReadableStream<BinaryBuffer> {
|
|
|
740
741
|
} catch (e: unknown) {
|
|
741
742
|
try {
|
|
742
743
|
await reader.cancel();
|
|
743
|
-
} catch {}
|
|
744
|
+
} catch { }
|
|
744
745
|
|
|
745
746
|
ws.error(e instanceof Error ? e : new Error(String(e)));
|
|
746
747
|
}
|
package/src/common/strings.ts
CHANGED
|
@@ -76,11 +76,8 @@ function doEqualsIgnoreCase(a: string, b: string, stopAt = a.length): boolean {
|
|
|
76
76
|
if (diff !== 0 && diff !== 32) {
|
|
77
77
|
return false;
|
|
78
78
|
}
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
// Any other charcode
|
|
82
|
-
// tslint:disable-next-line:one-line
|
|
83
|
-
else {
|
|
79
|
+
} else {
|
|
80
|
+
// Any other charcode
|
|
84
81
|
if (String.fromCharCode(codeA).toLowerCase() !== String.fromCharCode(codeB).toLowerCase()) {
|
|
85
82
|
return false;
|
|
86
83
|
}
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
17
|
import { expect } from 'chai';
|
|
18
|
+
import * as sinon from 'sinon';
|
|
18
19
|
import { TernarySearchTree, KeySequenceIterator } from './ternary-search-tree';
|
|
19
20
|
import { KeyCode, KeySequence, Key, KeyModifier } from './keys';
|
|
20
21
|
|
|
@@ -69,6 +70,19 @@ describe('KeySequenceIterator', () => {
|
|
|
69
70
|
// Different value should return non-zero
|
|
70
71
|
expect(iterator.cmp('different')).to.not.equal(0);
|
|
71
72
|
});
|
|
73
|
+
|
|
74
|
+
it('should use dispatch identity for values and comparisons', () => {
|
|
75
|
+
const keyCode = KeyCode.createKeyCode({ first: Key.KEY_A, modifiers: [KeyModifier.CtrlCmd] });
|
|
76
|
+
const dispatchString = sinon.stub(keyCode, 'dispatchString').returns('dispatch-a');
|
|
77
|
+
const toString = sinon.stub(keyCode, 'toString').returns('serialized-a');
|
|
78
|
+
|
|
79
|
+
iterator.reset([keyCode]);
|
|
80
|
+
|
|
81
|
+
expect(iterator.value()).to.equal('dispatch-a');
|
|
82
|
+
expect(iterator.cmp('dispatch-a')).to.equal(0);
|
|
83
|
+
expect(dispatchString.called).to.be.true;
|
|
84
|
+
expect(toString.called).to.be.false;
|
|
85
|
+
});
|
|
72
86
|
});
|
|
73
87
|
|
|
74
88
|
describe('TernarySearchTree for KeySequences', () => {
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
// based on https://github.com/microsoft/vscode/blob/04c36be045a94fee58e5f8992d3e3fd980294a84/src/vs/base/common/map.ts#L251
|
|
22
22
|
|
|
23
23
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
24
|
-
/* eslint-disable @
|
|
24
|
+
/* eslint-disable @theia/explicit-return-type */
|
|
25
25
|
|
|
26
26
|
import URI from './uri';
|
|
27
27
|
import { CharCode } from './char-code';
|
|
@@ -208,12 +208,12 @@ export class KeySequenceIterator implements IKeyIterator<KeySequence> {
|
|
|
208
208
|
}
|
|
209
209
|
|
|
210
210
|
cmp(a: string): number {
|
|
211
|
-
const current = this._value[this._index]?.
|
|
211
|
+
const current = this._value[this._index]?.dispatchString() ?? '';
|
|
212
212
|
return compare(a, current);
|
|
213
213
|
}
|
|
214
214
|
|
|
215
215
|
value(): string {
|
|
216
|
-
return this._value[this._index]?.
|
|
216
|
+
return this._value[this._index]?.dispatchString() ?? '';
|
|
217
217
|
}
|
|
218
218
|
}
|
|
219
219
|
|
|
@@ -133,7 +133,7 @@ export namespace UriAwareCommandHandler {
|
|
|
133
133
|
* @returns a command handler for mono-select contexts that expects a `URI` as the first parameter of its methods.
|
|
134
134
|
*/
|
|
135
135
|
export function MonoSelect(selectionService: SelectionService, handler: UriCommandHandler<URI>): UriAwareCommandHandler<URI> {
|
|
136
|
-
/* eslint-disable-next-line
|
|
136
|
+
/* eslint-disable-next-line @typescript-eslint/no-deprecated */ // Safe to use when the generic and the options agree.
|
|
137
137
|
return new UriAwareCommandHandler<URI>(selectionService, handler, { multi: false });
|
|
138
138
|
}
|
|
139
139
|
|
|
@@ -141,7 +141,7 @@ export namespace UriAwareCommandHandler {
|
|
|
141
141
|
* @returns a command handler for multi-select contexts that expects a `URI[]` as the first parameter of its methods.
|
|
142
142
|
*/
|
|
143
143
|
export function MultiSelect(selectionService: SelectionService, handler: UriCommandHandler<URI[]>): UriAwareCommandHandler<URI[]> {
|
|
144
|
-
/* eslint-disable-next-line
|
|
144
|
+
/* eslint-disable-next-line @typescript-eslint/no-deprecated */ // Safe to use when the generic and the options agree.
|
|
145
145
|
return new UriAwareCommandHandler<URI[]>(selectionService, handler, { multi: true });
|
|
146
146
|
}
|
|
147
147
|
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2026 EclipseSource 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 { expect } from 'chai';
|
|
18
|
+
import { NativeKeyboardLayout } from '../../common/keyboard/keyboard-layout-provider';
|
|
19
|
+
import { createElectronKeyboardLayoutProvider } from './electron-keyboard-module';
|
|
20
|
+
|
|
21
|
+
describe('Electron keyboard layout provider', () => {
|
|
22
|
+
it('reports the native-keymap source and delegates layout retrieval', async () => {
|
|
23
|
+
const layout: NativeKeyboardLayout = { info: { id: 'test', lang: 'en' }, mapping: {} };
|
|
24
|
+
const provider = createElectronKeyboardLayoutProvider({ getNativeLayout: async () => layout });
|
|
25
|
+
|
|
26
|
+
expect(provider.layoutSource).to.equal('native-keymap');
|
|
27
|
+
expect(await provider.getNativeLayout()).to.equal(layout);
|
|
28
|
+
});
|
|
29
|
+
});
|
|
@@ -19,10 +19,17 @@ import { KeyboardLayoutProvider, keyboardPath, KeyboardLayoutChangeNotifier } fr
|
|
|
19
19
|
import { WebSocketConnectionProvider } from '../../browser/messaging/ws-connection-provider';
|
|
20
20
|
import { ElectronKeyboardLayoutChangeNotifier } from './electron-keyboard-layout-change-notifier';
|
|
21
21
|
|
|
22
|
+
export function createElectronKeyboardLayoutProvider(delegate: KeyboardLayoutProvider): KeyboardLayoutProvider {
|
|
23
|
+
return {
|
|
24
|
+
layoutSource: 'native-keymap',
|
|
25
|
+
getNativeLayout: () => delegate.getNativeLayout()
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
|
|
22
29
|
export default new ContainerModule((bind, unbind, isBound, rebind) => {
|
|
23
|
-
bind(KeyboardLayoutProvider).toDynamicValue(ctx =>
|
|
30
|
+
bind(KeyboardLayoutProvider).toDynamicValue(ctx => createElectronKeyboardLayoutProvider(
|
|
24
31
|
WebSocketConnectionProvider.createLocalProxy<KeyboardLayoutProvider>(ctx.container, keyboardPath)
|
|
25
|
-
).inSingletonScope();
|
|
32
|
+
)).inSingletonScope();
|
|
26
33
|
bind(ElectronKeyboardLayoutChangeNotifier).toSelf().inSingletonScope();
|
|
27
34
|
bind(KeyboardLayoutChangeNotifier).toService(ElectronKeyboardLayoutChangeNotifier);
|
|
28
35
|
});
|
|
@@ -22,7 +22,7 @@ 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';
|
|
25
|
-
import { MenuDto, MenuRole } from '../../electron-common/electron-api';
|
|
25
|
+
import { electronMenuAcceleratorMetadata, MenuDto, MenuRole } from '../../electron-common/electron-api';
|
|
26
26
|
|
|
27
27
|
/**
|
|
28
28
|
* Representation of possible electron menu options.
|
|
@@ -249,7 +249,7 @@ export class ElectronMainMenuFactory extends BrowserMainMenuFactory {
|
|
|
249
249
|
return parentItems;
|
|
250
250
|
}
|
|
251
251
|
|
|
252
|
-
const
|
|
252
|
+
const acceleratorSequence = AcceleratorSource.is(menu) ? menu.getAccelerator(options.context, 'physical') : [];
|
|
253
253
|
|
|
254
254
|
const menuItem: MenuDto = {
|
|
255
255
|
id: menu.id,
|
|
@@ -258,7 +258,7 @@ export class ElectronMainMenuFactory extends BrowserMainMenuFactory {
|
|
|
258
258
|
checked: menu.isToggled(effectivePath, ...args),
|
|
259
259
|
enabled: !honorDisabled || menu.isEnabled(effectivePath, ...args), // see https://github.com/eclipse-theia/theia/issues/446
|
|
260
260
|
visible: true,
|
|
261
|
-
|
|
261
|
+
...electronMenuAcceleratorMetadata(acceleratorSequence),
|
|
262
262
|
execute: async () => {
|
|
263
263
|
const wasToggled = menuItem.checked;
|
|
264
264
|
await menu.run(effectivePath, ...args);
|
|
@@ -362,6 +362,10 @@ export class ElectronMenuContribution extends BrowserMenuBarContribution impleme
|
|
|
362
362
|
command: ElectronCommands.RELOAD.id,
|
|
363
363
|
keybinding: 'ctrlcmd+r'
|
|
364
364
|
},
|
|
365
|
+
{
|
|
366
|
+
command: ElectronCommands.ZOOM_IN.id,
|
|
367
|
+
keybinding: 'ctrlcmd+[char:0x2B]'
|
|
368
|
+
},
|
|
365
369
|
{
|
|
366
370
|
command: ElectronCommands.ZOOM_IN.id,
|
|
367
371
|
keybinding: 'ctrlcmd+='
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2026 EclipseSource 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 { expect } from 'chai';
|
|
18
|
+
import { electronMenuAccelerator, electronMenuAcceleratorMetadata, isElectronAcceleratorRepresentable } from './electron-api';
|
|
19
|
+
|
|
20
|
+
describe('Electron menu accelerators', () => {
|
|
21
|
+
it('accepts only ASCII accelerators without AltGr', () => {
|
|
22
|
+
expect(isElectronAcceleratorRepresentable('Ctrl+8')).to.be.true;
|
|
23
|
+
expect(isElectronAcceleratorRepresentable('Ctrl+AltGr+8')).to.be.false;
|
|
24
|
+
expect(isElectronAcceleratorRepresentable('Ctrl+ä')).to.be.false;
|
|
25
|
+
expect(isElectronAcceleratorRepresentable('Ctrl++')).to.be.false;
|
|
26
|
+
expect(isElectronAcceleratorRepresentable('Ctrl+K Ctrl+S')).to.be.false;
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
it('forwards renderer accelerator text without precomputing representability', () => {
|
|
30
|
+
expect(electronMenuAcceleratorMetadata(['Ctrl+8'])).to.deep.equal({ accelerator: 'Ctrl+8' });
|
|
31
|
+
expect(electronMenuAcceleratorMetadata(['Ctrl+K', 'Ctrl+S'])).to.deep.equal({ accelerator: 'Ctrl+K Ctrl+S' });
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
it('omits unrepresentable accelerators', () => {
|
|
35
|
+
expect(electronMenuAccelerator({ accelerator: 'Ctrl+AltGr+8' })).to.deep.equal({});
|
|
36
|
+
expect(electronMenuAccelerator({ accelerator: 'Ctrl+K Ctrl+S' })).to.deep.equal({});
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
it('returns representable accelerators', () => {
|
|
40
|
+
expect(electronMenuAccelerator({ accelerator: 'Ctrl+8' })).to.deep.equal({ accelerator: 'Ctrl+8' });
|
|
41
|
+
});
|
|
42
|
+
});
|
|
@@ -22,6 +22,29 @@ import { LaunchArguments } from '../common/launch-arguments';
|
|
|
22
22
|
|
|
23
23
|
export type MenuRole = ('undo' | 'redo' | 'cut' | 'copy' | 'paste' | 'selectAll' | 'about' | 'services' | 'hide' | 'hideOthers' | 'unhide' | 'quit');
|
|
24
24
|
|
|
25
|
+
export function isElectronAcceleratorRepresentable(accelerator: string | undefined): accelerator is string {
|
|
26
|
+
if (!accelerator || /altgr/i.test(accelerator) || /\s/.test(accelerator) || accelerator.split('+').some(token => !token)) {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
for (let i = 0; i < accelerator.length; i++) {
|
|
30
|
+
if (accelerator.charCodeAt(i) > 127) {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export type ElectronMenuAccelerator = Pick<MenuDto, 'accelerator'>;
|
|
38
|
+
|
|
39
|
+
export function electronMenuAcceleratorMetadata(acceleratorSequence: string[]): ElectronMenuAccelerator {
|
|
40
|
+
return { accelerator: acceleratorSequence.join(' ') || undefined };
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/** Return an Electron accelerator only when the rendered single chord is representable. */
|
|
44
|
+
export function electronMenuAccelerator(dto: ElectronMenuAccelerator): ElectronMenuAccelerator {
|
|
45
|
+
return isElectronAcceleratorRepresentable(dto.accelerator) ? { accelerator: dto.accelerator } : {};
|
|
46
|
+
}
|
|
47
|
+
|
|
25
48
|
export interface MenuDto {
|
|
26
49
|
id?: string,
|
|
27
50
|
label?: string,
|
|
@@ -57,6 +57,7 @@ import {
|
|
|
57
57
|
CHANNEL_ABOUT_TO_CLOSE,
|
|
58
58
|
CHANNEL_OPEN_WITH_SYSTEM_APP,
|
|
59
59
|
CHANNEL_OPEN_URL,
|
|
60
|
+
electronMenuAccelerator,
|
|
60
61
|
CHANNEL_SET_THEME,
|
|
61
62
|
CHANNEL_OPEN_DEVTOOLS_FOR_WINDOW,
|
|
62
63
|
CHANNEL_UPDATE_RECENT_WORKSPACES,
|
|
@@ -342,18 +343,6 @@ export class TheiaMainApi implements ElectronMainApplicationContribution {
|
|
|
342
343
|
});
|
|
343
344
|
}
|
|
344
345
|
|
|
345
|
-
private isASCI(accelerator: string | undefined): boolean {
|
|
346
|
-
if (typeof accelerator !== 'string') {
|
|
347
|
-
return false;
|
|
348
|
-
}
|
|
349
|
-
for (let i = 0; i < accelerator.length; i++) {
|
|
350
|
-
if (accelerator.charCodeAt(i) > 127) {
|
|
351
|
-
return false;
|
|
352
|
-
}
|
|
353
|
-
}
|
|
354
|
-
return true;
|
|
355
|
-
}
|
|
356
|
-
|
|
357
346
|
fromMenuDto(sender: WebContents, menuId: number, menuDto: InternalMenuDto[]): MenuItemConstructorOptions[] {
|
|
358
347
|
return menuDto.map(dto => {
|
|
359
348
|
const result: MenuItemConstructorOptions = {
|
|
@@ -364,7 +353,7 @@ export class TheiaMainApi implements ElectronMainApplicationContribution {
|
|
|
364
353
|
enabled: dto.enabled,
|
|
365
354
|
visible: dto.visible,
|
|
366
355
|
role: dto.role,
|
|
367
|
-
|
|
356
|
+
...electronMenuAccelerator(dto)
|
|
368
357
|
};
|
|
369
358
|
if (dto.submenu) {
|
|
370
359
|
result.submenu = this.fromMenuDto(sender, menuId, dto.submenu);
|
|
@@ -18,7 +18,7 @@ import * as dns from 'dns';
|
|
|
18
18
|
import * as path from 'path';
|
|
19
19
|
import * as http from 'http';
|
|
20
20
|
import * as https from 'https';
|
|
21
|
-
import
|
|
21
|
+
import express from 'express';
|
|
22
22
|
import * as yargs from 'yargs';
|
|
23
23
|
import * as fs from 'fs-extra';
|
|
24
24
|
import { inject, named, injectable, type interfaces, postConstruct } from 'inversify';
|
package/src/node/cli.ts
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
|
-
import
|
|
17
|
+
import yargs from 'yargs';
|
|
18
18
|
import { inject, named, injectable } from 'inversify';
|
|
19
19
|
import { ContributionProvider } from '../common/contribution-provider';
|
|
20
20
|
import { MaybePromise } from '../common/types';
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
17
|
import { expect } from 'chai';
|
|
18
|
-
import
|
|
18
|
+
import yargs from 'yargs';
|
|
19
19
|
import * as temp from 'temp';
|
|
20
20
|
import * as fs from 'fs';
|
|
21
21
|
import { ContainerModule, Container } from 'inversify';
|