@theia/core 1.45.1 → 1.46.0-next.137
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 +24 -3
- package/i18n/nls.de.json +24 -3
- package/i18n/nls.es.json +24 -3
- package/i18n/nls.fr.json +24 -3
- package/i18n/nls.hu.json +24 -3
- package/i18n/nls.it.json +24 -3
- package/i18n/nls.ja.json +24 -3
- package/i18n/nls.json +24 -3
- package/i18n/nls.pl.json +24 -3
- package/i18n/nls.pt-br.json +24 -3
- package/i18n/nls.pt-pt.json +24 -3
- package/i18n/nls.ru.json +24 -3
- package/i18n/nls.zh-cn.json +24 -3
- package/lib/browser/about-dialog.js +13 -24
- package/lib/browser/about-dialog.js.map +1 -1
- package/lib/browser/authentication-service.js +12 -20
- package/lib/browser/authentication-service.js.map +1 -1
- package/lib/browser/breadcrumbs/breadcrumb-popup-container.js +12 -20
- package/lib/browser/breadcrumbs/breadcrumb-popup-container.js.map +1 -1
- package/lib/browser/breadcrumbs/breadcrumb-renderer.js +2 -7
- package/lib/browser/breadcrumbs/breadcrumb-renderer.js.map +1 -1
- package/lib/browser/breadcrumbs/breadcrumbs-renderer.js +14 -22
- package/lib/browser/breadcrumbs/breadcrumbs-renderer.js.map +1 -1
- package/lib/browser/breadcrumbs/breadcrumbs-service.js +10 -18
- package/lib/browser/breadcrumbs/breadcrumbs-service.js.map +1 -1
- package/lib/browser/breadcrumbs/index.js +6 -15
- package/lib/browser/breadcrumbs/index.js.map +1 -1
- package/lib/browser/browser-clipboard-service.js +6 -14
- package/lib/browser/browser-clipboard-service.js.map +1 -1
- package/lib/browser/browser.d.ts +3 -0
- package/lib/browser/browser.d.ts.map +1 -1
- package/lib/browser/browser.js +5 -1
- package/lib/browser/browser.js.map +1 -1
- package/lib/browser/color-application-contribution.d.ts +4 -2
- package/lib/browser/color-application-contribution.d.ts.map +1 -1
- package/lib/browser/color-application-contribution.js +19 -17
- package/lib/browser/color-application-contribution.js.map +1 -1
- package/lib/browser/color-registry.js +2 -7
- package/lib/browser/color-registry.js.map +1 -1
- package/lib/browser/command-open-handler.js +5 -13
- package/lib/browser/command-open-handler.js.map +1 -1
- package/lib/browser/common-frontend-contribution.d.ts +6 -0
- package/lib/browser/common-frontend-contribution.d.ts.map +1 -1
- package/lib/browser/common-frontend-contribution.js +92 -61
- package/lib/browser/common-frontend-contribution.js.map +1 -1
- package/lib/browser/common-styling-participants.js +9 -14
- package/lib/browser/common-styling-participants.js.map +1 -1
- package/lib/browser/connection-status-service.js +22 -33
- package/lib/browser/connection-status-service.js.map +1 -1
- package/lib/browser/context-key-service.d.ts +1 -2
- package/lib/browser/context-key-service.d.ts.map +1 -1
- package/lib/browser/context-key-service.js +2 -7
- package/lib/browser/context-key-service.js.map +1 -1
- package/lib/browser/context-menu-renderer.d.ts +0 -1
- package/lib/browser/context-menu-renderer.d.ts.map +1 -1
- package/lib/browser/context-menu-renderer.js +3 -12
- package/lib/browser/context-menu-renderer.js.map +1 -1
- package/lib/browser/core-preferences.d.ts +1 -0
- package/lib/browser/core-preferences.d.ts.map +1 -1
- package/lib/browser/core-preferences.js +5 -0
- package/lib/browser/core-preferences.js.map +1 -1
- package/lib/browser/credentials-service.js +4 -15
- package/lib/browser/credentials-service.js.map +1 -1
- package/lib/browser/decorations-service.js +6 -12
- package/lib/browser/decorations-service.js.map +1 -1
- package/lib/browser/dialogs/react-dialog.js +4 -15
- package/lib/browser/dialogs/react-dialog.js.map +1 -1
- package/lib/browser/dialogs.js +18 -29
- package/lib/browser/dialogs.js.map +1 -1
- package/lib/browser/diff-uris.js +4 -15
- package/lib/browser/diff-uris.js.map +1 -1
- package/lib/browser/encoding-registry.js +6 -14
- package/lib/browser/encoding-registry.js.map +1 -1
- package/lib/browser/external-uri-service.js +2 -7
- package/lib/browser/external-uri-service.js.map +1 -1
- package/lib/browser/frontend-application-contribution.js +2 -7
- package/lib/browser/frontend-application-contribution.js.map +1 -1
- package/lib/browser/frontend-application-module.d.ts.map +1 -1
- package/lib/browser/frontend-application-module.js +4 -2
- package/lib/browser/frontend-application-module.js.map +1 -1
- package/lib/browser/frontend-application-state.js +4 -12
- package/lib/browser/frontend-application-state.js.map +1 -1
- package/lib/browser/frontend-application.js +21 -32
- package/lib/browser/frontend-application.js.map +1 -1
- package/lib/browser/hover-service.js +6 -14
- package/lib/browser/hover-service.js.map +1 -1
- package/lib/browser/http-open-handler.js +6 -14
- package/lib/browser/http-open-handler.js.map +1 -1
- package/lib/browser/i18n/language-quick-pick-service.js +8 -16
- package/lib/browser/i18n/language-quick-pick-service.js.map +1 -1
- package/lib/browser/icon-registry.d.ts +1 -7
- package/lib/browser/icon-registry.d.ts.map +1 -1
- package/lib/browser/icon-registry.js.map +1 -1
- package/lib/browser/icon-theme-contribution.js +7 -15
- package/lib/browser/icon-theme-contribution.js.map +1 -1
- package/lib/browser/icon-theme-service.js +13 -21
- package/lib/browser/icon-theme-service.js.map +1 -1
- package/lib/browser/index.js +32 -41
- package/lib/browser/index.js.map +1 -1
- package/lib/browser/json-schema-store.js +7 -15
- package/lib/browser/json-schema-store.js.map +1 -1
- package/lib/browser/keybinding.d.ts.map +1 -1
- package/lib/browser/keybinding.js +21 -26
- package/lib/browser/keybinding.js.map +1 -1
- package/lib/browser/keybinding.spec.js +4 -9
- package/lib/browser/keybinding.spec.js.map +1 -1
- package/lib/browser/keyboard/browser-keyboard-frontend-contribution.js +6 -14
- package/lib/browser/keyboard/browser-keyboard-frontend-contribution.js.map +1 -1
- package/lib/browser/keyboard/browser-keyboard-layout-provider.js +10 -18
- package/lib/browser/keyboard/browser-keyboard-layout-provider.js.map +1 -1
- package/lib/browser/keyboard/browser-keyboard-layout-provider.spec.js +2 -7
- package/lib/browser/keyboard/browser-keyboard-layout-provider.spec.js.map +1 -1
- package/lib/browser/keyboard/index.js +5 -14
- package/lib/browser/keyboard/index.js.map +1 -1
- package/lib/browser/keyboard/keyboard-layout-service.js +8 -16
- package/lib/browser/keyboard/keyboard-layout-service.js.map +1 -1
- package/lib/browser/keyboard/keyboard-layout-service.spec.js +2 -7
- package/lib/browser/keyboard/keyboard-layout-service.spec.js.map +1 -1
- package/lib/browser/keyboard/keys.js +2 -11
- package/lib/browser/keyboard/keys.js.map +1 -1
- package/lib/browser/label-parser.js +2 -7
- package/lib/browser/label-parser.js.map +1 -1
- package/lib/browser/label-provider.js +11 -19
- package/lib/browser/label-provider.js.map +1 -1
- package/lib/browser/language-icon-provider.js +10 -18
- package/lib/browser/language-icon-provider.js.map +1 -1
- package/lib/browser/language-service.js +2 -7
- package/lib/browser/language-service.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 +8 -16
- package/lib/browser/markdown-rendering/markdown-renderer.js.map +1 -1
- package/lib/browser/menu/browser-context-menu-renderer.d.ts.map +1 -1
- package/lib/browser/menu/browser-context-menu-renderer.js +6 -16
- package/lib/browser/menu/browser-context-menu-renderer.js.map +1 -1
- package/lib/browser/menu/browser-menu-plugin.d.ts +1 -1
- package/lib/browser/menu/browser-menu-plugin.d.ts.map +1 -1
- package/lib/browser/menu/browser-menu-plugin.js +25 -36
- package/lib/browser/menu/browser-menu-plugin.js.map +1 -1
- package/lib/browser/menu/context-menu-context.js +3 -11
- package/lib/browser/menu/context-menu-context.js.map +1 -1
- package/lib/browser/messaging/frontend-id-provider.js +2 -7
- package/lib/browser/messaging/frontend-id-provider.js.map +1 -1
- package/lib/browser/messaging/index.js +2 -11
- package/lib/browser/messaging/index.js.map +1 -1
- package/lib/browser/messaging/service-connection-provider.js +8 -16
- package/lib/browser/messaging/service-connection-provider.js.map +1 -1
- package/lib/browser/messaging/ws-connection-provider.js +4 -12
- package/lib/browser/messaging/ws-connection-provider.js.map +1 -1
- package/lib/browser/messaging/ws-connection-source.js +9 -17
- package/lib/browser/messaging/ws-connection-source.js.map +1 -1
- package/lib/browser/mime-service.js +2 -7
- package/lib/browser/mime-service.js.map +1 -1
- package/lib/browser/navigatable.js +2 -11
- package/lib/browser/navigatable.js.map +1 -1
- package/lib/browser/opener-service.js +5 -16
- package/lib/browser/opener-service.js.map +1 -1
- package/lib/browser/performance/frontend-stopwatch.js +3 -11
- package/lib/browser/performance/frontend-stopwatch.js.map +1 -1
- package/lib/browser/performance/index.js +3 -12
- package/lib/browser/performance/index.js.map +1 -1
- package/lib/browser/preferences/index.js +8 -17
- package/lib/browser/preferences/index.js.map +1 -1
- package/lib/browser/preferences/injectable-preference-proxy.js +14 -22
- package/lib/browser/preferences/injectable-preference-proxy.js.map +1 -1
- package/lib/browser/preferences/preference-configurations.js +4 -12
- package/lib/browser/preferences/preference-configurations.js.map +1 -1
- package/lib/browser/preferences/preference-contribution.js +10 -18
- package/lib/browser/preferences/preference-contribution.js.map +1 -1
- package/lib/browser/preferences/preference-language-override-service.js +2 -7
- package/lib/browser/preferences/preference-language-override-service.js.map +1 -1
- package/lib/browser/preferences/preference-provider.js +5 -13
- package/lib/browser/preferences/preference-provider.js.map +1 -1
- package/lib/browser/preferences/preference-service.js +14 -22
- package/lib/browser/preferences/preference-service.js.map +1 -1
- package/lib/browser/preferences/preference-validation-service.js +6 -14
- package/lib/browser/preferences/preference-validation-service.js.map +1 -1
- package/lib/browser/preferences/test/index.js +4 -13
- package/lib/browser/preferences/test/index.js.map +1 -1
- package/lib/browser/preferences/test/mock-preference-service.js +3 -11
- package/lib/browser/preferences/test/mock-preference-service.js.map +1 -1
- package/lib/browser/preload/i18n-preload-contribution.js +4 -12
- package/lib/browser/preload/i18n-preload-contribution.js.map +1 -1
- package/lib/browser/preload/os-preload-contribution.js +4 -12
- package/lib/browser/preload/os-preload-contribution.js.map +1 -1
- package/lib/browser/preload/preloader.js +4 -12
- package/lib/browser/preload/preloader.js.map +1 -1
- package/lib/browser/preload/theme-preload-contribution.js +2 -7
- package/lib/browser/preload/theme-preload-contribution.js.map +1 -1
- package/lib/browser/progress-bar.js +11 -19
- package/lib/browser/progress-bar.js.map +1 -1
- package/lib/browser/progress-client.js +6 -14
- package/lib/browser/progress-client.js.map +1 -1
- package/lib/browser/progress-location-service.js +2 -7
- package/lib/browser/progress-location-service.js.map +1 -1
- package/lib/browser/progress-status-bar-item.js +4 -12
- package/lib/browser/progress-status-bar-item.js.map +1 -1
- package/lib/browser/quick-input/index.js +9 -18
- package/lib/browser/quick-input/index.js.map +1 -1
- package/lib/browser/quick-input/quick-command-frontend-contribution.js +6 -14
- package/lib/browser/quick-input/quick-command-frontend-contribution.js.map +1 -1
- package/lib/browser/quick-input/quick-command-service.js +12 -20
- package/lib/browser/quick-input/quick-command-service.js.map +1 -1
- package/lib/browser/quick-input/quick-help-service.js +6 -14
- package/lib/browser/quick-input/quick-help-service.js.map +1 -1
- package/lib/browser/quick-input/quick-input-frontend-contribution.js +4 -12
- package/lib/browser/quick-input/quick-input-frontend-contribution.js.map +1 -1
- package/lib/browser/quick-input/quick-input-service.js +2 -11
- package/lib/browser/quick-input/quick-input-service.js.map +1 -1
- package/lib/browser/quick-input/quick-pick-service-impl.js +4 -12
- package/lib/browser/quick-input/quick-pick-service-impl.js.map +1 -1
- package/lib/browser/quick-input/quick-view-service.js +6 -14
- package/lib/browser/quick-input/quick-view-service.js.map +1 -1
- package/lib/browser/request/browser-request-service.js +12 -20
- package/lib/browser/request/browser-request-service.js.map +1 -1
- package/lib/browser/resource-context-key.js +10 -18
- package/lib/browser/resource-context-key.js.map +1 -1
- package/lib/browser/save-resource-service.d.ts +3 -3
- package/lib/browser/save-resource-service.d.ts.map +1 -1
- package/lib/browser/save-resource-service.js +6 -13
- package/lib/browser/save-resource-service.js.map +1 -1
- package/lib/browser/secondary-window-handler.d.ts +12 -11
- package/lib/browser/secondary-window-handler.d.ts.map +1 -1
- package/lib/browser/secondary-window-handler.js +24 -39
- package/lib/browser/secondary-window-handler.js.map +1 -1
- package/lib/browser/shell/additional-views-menu-widget.js +6 -14
- package/lib/browser/shell/additional-views-menu-widget.js.map +1 -1
- package/lib/browser/shell/application-shell-mouse-tracker.js +4 -12
- package/lib/browser/shell/application-shell-mouse-tracker.js.map +1 -1
- package/lib/browser/shell/application-shell.d.ts +3 -1
- package/lib/browser/shell/application-shell.d.ts.map +1 -1
- package/lib/browser/shell/application-shell.js +68 -66
- package/lib/browser/shell/application-shell.js.map +1 -1
- package/lib/browser/shell/index.js +8 -17
- package/lib/browser/shell/index.js.map +1 -1
- package/lib/browser/shell/shell-layout-restorer.js +12 -23
- package/lib/browser/shell/shell-layout-restorer.js.map +1 -1
- package/lib/browser/shell/side-panel-handler.js +22 -30
- package/lib/browser/shell/side-panel-handler.js.map +1 -1
- package/lib/browser/shell/sidebar-bottom-menu-widget.js +2 -7
- package/lib/browser/shell/sidebar-bottom-menu-widget.js.map +1 -1
- package/lib/browser/shell/sidebar-menu-widget.js +7 -15
- package/lib/browser/shell/sidebar-menu-widget.js.map +1 -1
- package/lib/browser/shell/sidebar-top-menu-widget.js +2 -7
- package/lib/browser/shell/sidebar-top-menu-widget.js.map +1 -1
- package/lib/browser/shell/split-panels.js +2 -7
- package/lib/browser/shell/split-panels.js.map +1 -1
- package/lib/browser/shell/tab-bar-decorator.d.ts +7 -2
- package/lib/browser/shell/tab-bar-decorator.d.ts.map +1 -1
- package/lib/browser/shell/tab-bar-decorator.js +39 -16
- package/lib/browser/shell/tab-bar-decorator.js.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/index.js +4 -13
- package/lib/browser/shell/tab-bar-toolbar/index.js.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.js +10 -18
- 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.d.ts +1 -0
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.d.ts.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.js +35 -38
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.js.map +1 -1
- package/lib/browser/shell/tab-bars.d.ts +4 -1
- package/lib/browser/shell/tab-bars.d.ts.map +1 -1
- package/lib/browser/shell/tab-bars.js +39 -4
- package/lib/browser/shell/tab-bars.js.map +1 -1
- package/lib/browser/shell/view-contribution.js +9 -17
- package/lib/browser/shell/view-contribution.js.map +1 -1
- package/lib/browser/source-tree/index.js +4 -13
- package/lib/browser/source-tree/index.js.map +1 -1
- package/lib/browser/source-tree/source-tree-widget.js +6 -14
- package/lib/browser/source-tree/source-tree-widget.js.map +1 -1
- package/lib/browser/source-tree/source-tree.js +2 -7
- package/lib/browser/source-tree/source-tree.js.map +1 -1
- package/lib/browser/source-tree/tree-source.js +4 -15
- package/lib/browser/source-tree/tree-source.js.map +1 -1
- package/lib/browser/status-bar/index.js +4 -13
- package/lib/browser/status-bar/index.js.map +1 -1
- package/lib/browser/status-bar/status-bar-view-model.js +2 -7
- package/lib/browser/status-bar/status-bar-view-model.js.map +1 -1
- package/lib/browser/status-bar/status-bar.js +9 -20
- package/lib/browser/status-bar/status-bar.js.map +1 -1
- package/lib/browser/storage-service.js +12 -20
- package/lib/browser/storage-service.js.map +1 -1
- package/lib/browser/styling-service.d.ts +3 -2
- package/lib/browser/styling-service.d.ts.map +1 -1
- package/lib/browser/styling-service.js +19 -18
- package/lib/browser/styling-service.js.map +1 -1
- package/lib/browser/test/mock-opener-service.js +2 -7
- package/lib/browser/test/mock-opener-service.js.map +1 -1
- package/lib/browser/test/mock-storage-service.js +2 -7
- package/lib/browser/test/mock-storage-service.js.map +1 -1
- package/lib/browser/theming.js +10 -18
- package/lib/browser/theming.js.map +1 -1
- package/lib/browser/tooltip-service.js +13 -24
- package/lib/browser/tooltip-service.js.map +1 -1
- package/lib/browser/tree/fuzzy-search.js +2 -7
- package/lib/browser/tree/fuzzy-search.js.map +1 -1
- package/lib/browser/tree/index.d.ts +1 -0
- package/lib/browser/tree/index.d.ts.map +1 -1
- package/lib/browser/tree/index.js +14 -22
- package/lib/browser/tree/index.js.map +1 -1
- package/lib/browser/tree/test/mock-selectable-tree-model.d.ts +15 -0
- package/lib/browser/tree/test/mock-selectable-tree-model.d.ts.map +1 -0
- package/lib/browser/tree/test/mock-selectable-tree-model.js +103 -0
- package/lib/browser/tree/test/mock-selectable-tree-model.js.map +1 -0
- package/lib/browser/tree/tree-compression/compressed-tree-expansion-service.js +6 -14
- package/lib/browser/tree/tree-compression/compressed-tree-expansion-service.js.map +1 -1
- package/lib/browser/tree/tree-compression/compressed-tree-model.js +6 -14
- package/lib/browser/tree/tree-compression/compressed-tree-model.js.map +1 -1
- package/lib/browser/tree/tree-compression/compressed-tree-widget.js +10 -21
- package/lib/browser/tree/tree-compression/compressed-tree-widget.js.map +1 -1
- package/lib/browser/tree/tree-compression/index.js +5 -14
- package/lib/browser/tree/tree-compression/index.js.map +1 -1
- package/lib/browser/tree/tree-compression/tree-compression-service.js +2 -7
- package/lib/browser/tree/tree-compression/tree-compression-service.js.map +1 -1
- package/lib/browser/tree/tree-consistency.spec.js +2 -7
- package/lib/browser/tree/tree-consistency.spec.js.map +1 -1
- package/lib/browser/tree/tree-decorator.js +4 -12
- package/lib/browser/tree/tree-decorator.js.map +1 -1
- package/lib/browser/tree/tree-expansion.js +8 -16
- package/lib/browser/tree/tree-expansion.js.map +1 -1
- package/lib/browser/tree/tree-focus-service.js +4 -12
- package/lib/browser/tree/tree-focus-service.js.map +1 -1
- package/lib/browser/tree/tree-label-provider.js +2 -7
- package/lib/browser/tree/tree-label-provider.js.map +1 -1
- package/lib/browser/tree/tree-model.d.ts +24 -0
- package/lib/browser/tree/tree-model.d.ts.map +1 -1
- package/lib/browser/tree/tree-model.js +66 -28
- package/lib/browser/tree/tree-model.js.map +1 -1
- package/lib/browser/tree/tree-navigation.js +2 -7
- package/lib/browser/tree/tree-navigation.js.map +1 -1
- package/lib/browser/tree/tree-preference.d.ts +11 -0
- package/lib/browser/tree/tree-preference.d.ts.map +1 -0
- package/lib/browser/tree/tree-preference.js +47 -0
- package/lib/browser/tree/tree-preference.js.map +1 -0
- package/lib/browser/tree/tree-search.js +12 -20
- package/lib/browser/tree/tree-search.js.map +1 -1
- package/lib/browser/tree/tree-selectable.spec.d.ts +2 -0
- package/lib/browser/tree/tree-selectable.spec.d.ts.map +1 -0
- package/lib/browser/tree/tree-selectable.spec.js +147 -0
- package/lib/browser/tree/tree-selectable.spec.js.map +1 -0
- package/lib/browser/tree/tree-selection-impl.js +10 -18
- package/lib/browser/tree/tree-selection-impl.js.map +1 -1
- package/lib/browser/tree/tree-view-welcome-widget.js +8 -16
- package/lib/browser/tree/tree-view-welcome-widget.js.map +1 -1
- package/lib/browser/tree/tree-widget.d.ts +6 -3
- package/lib/browser/tree/tree-widget.d.ts.map +1 -1
- package/lib/browser/tree/tree-widget.js +48 -38
- package/lib/browser/tree/tree-widget.js.map +1 -1
- package/lib/browser/tree/tree.d.ts.map +1 -1
- package/lib/browser/tree/tree.js +7 -12
- package/lib/browser/tree/tree.js.map +1 -1
- package/lib/browser/user-working-directory-provider.js +6 -14
- package/lib/browser/user-working-directory-provider.js.map +1 -1
- package/lib/browser/view-container.js +31 -39
- package/lib/browser/view-container.js.map +1 -1
- package/lib/browser/widget-manager.d.ts +9 -0
- package/lib/browser/widget-manager.d.ts.map +1 -1
- package/lib/browser/widget-manager.js +29 -14
- package/lib/browser/widget-manager.js.map +1 -1
- package/lib/browser/widget-open-handler.js +10 -18
- package/lib/browser/widget-open-handler.js.map +1 -1
- package/lib/browser/widgets/index.js +5 -14
- package/lib/browser/widgets/index.js.map +1 -1
- package/lib/browser/widgets/react-renderer.js +5 -16
- package/lib/browser/widgets/react-renderer.js.map +1 -1
- package/lib/browser/widgets/react-widget.js +4 -15
- package/lib/browser/widgets/react-widget.js.map +1 -1
- package/lib/browser/widgets/select-component.d.ts.map +1 -1
- package/lib/browser/widgets/select-component.js +1 -0
- package/lib/browser/widgets/select-component.js.map +1 -1
- package/lib/browser/widgets/widget.d.ts +2 -0
- package/lib/browser/widgets/widget.d.ts.map +1 -1
- package/lib/browser/widgets/widget.js +14 -24
- package/lib/browser/widgets/widget.js.map +1 -1
- package/lib/browser/window/default-secondary-window-service.d.ts +1 -1
- package/lib/browser/window/default-secondary-window-service.d.ts.map +1 -1
- package/lib/browser/window/default-secondary-window-service.js +32 -43
- package/lib/browser/window/default-secondary-window-service.js.map +1 -1
- package/lib/browser/window/default-window-service.d.ts +1 -0
- package/lib/browser/window/default-window-service.d.ts.map +1 -1
- package/lib/browser/window/default-window-service.js +9 -14
- package/lib/browser/window/default-window-service.js.map +1 -1
- package/lib/browser/window/test/mock-window-service.d.ts +1 -0
- package/lib/browser/window/test/mock-window-service.d.ts.map +1 -1
- package/lib/browser/window/test/mock-window-service.js +3 -7
- package/lib/browser/window/test/mock-window-service.js.map +1 -1
- package/lib/browser/window/window-service.d.ts +10 -2
- package/lib/browser/window/window-service.d.ts.map +1 -1
- package/lib/browser/window/window-service.js.map +1 -1
- package/lib/browser/window/window-title-service.js +8 -16
- package/lib/browser/window/window-title-service.js.map +1 -1
- package/lib/browser/window/window-title-updater.js +6 -14
- package/lib/browser/window/window-title-updater.js.map +1 -1
- package/lib/browser/window-contribution.js +4 -12
- package/lib/browser/window-contribution.js.map +1 -1
- package/lib/browser-only/frontend-only-application-module.d.ts +5 -0
- package/lib/browser-only/frontend-only-application-module.d.ts.map +1 -0
- package/lib/browser-only/frontend-only-application-module.js +115 -0
- package/lib/browser-only/frontend-only-application-module.js.map +1 -0
- package/lib/browser-only/i18n/i18n-frontend-only-module.d.ts +4 -0
- package/lib/browser-only/i18n/i18n-frontend-only-module.d.ts.map +1 -0
- package/lib/browser-only/i18n/i18n-frontend-only-module.js +35 -0
- package/lib/browser-only/i18n/i18n-frontend-only-module.js.map +1 -0
- package/lib/browser-only/logger-frontend-only-module.d.ts +3 -0
- package/lib/browser-only/logger-frontend-only-module.d.ts.map +1 -0
- package/lib/browser-only/logger-frontend-only-module.js +61 -0
- package/lib/browser-only/logger-frontend-only-module.js.map +1 -0
- package/lib/browser-only/messaging/frontend-only-service-connection-provider.d.ts +14 -0
- package/lib/browser-only/messaging/frontend-only-service-connection-provider.d.ts.map +1 -0
- package/lib/browser-only/messaging/frontend-only-service-connection-provider.js +52 -0
- package/lib/browser-only/messaging/frontend-only-service-connection-provider.js.map +1 -0
- package/lib/browser-only/messaging/messaging-frontend-only-module.d.ts +3 -0
- package/lib/browser-only/messaging/messaging-frontend-only-module.d.ts.map +1 -0
- package/lib/browser-only/messaging/messaging-frontend-only-module.js +48 -0
- package/lib/browser-only/messaging/messaging-frontend-only-module.js.map +1 -0
- package/lib/browser-only/preload/frontend-only-preload-module.d.ts +4 -0
- package/lib/browser-only/preload/frontend-only-preload-module.d.ts.map +1 -0
- package/lib/browser-only/preload/frontend-only-preload-module.js +52 -0
- package/lib/browser-only/preload/frontend-only-preload-module.js.map +1 -0
- package/lib/common/application-protocol.d.ts +1 -0
- package/lib/common/application-protocol.d.ts.map +1 -1
- package/lib/common/command.js +5 -16
- package/lib/common/command.js.map +1 -1
- package/lib/common/contribution-filter/contribution-filter-registry.js +5 -16
- package/lib/common/contribution-filter/contribution-filter-registry.js.map +1 -1
- package/lib/common/contribution-filter/index.js +4 -13
- package/lib/common/contribution-filter/index.js.map +1 -1
- package/lib/common/disposable.d.ts +37 -0
- package/lib/common/disposable.d.ts.map +1 -1
- package/lib/common/disposable.js +54 -1
- package/lib/common/disposable.js.map +1 -1
- package/lib/common/disposable.spec.js +51 -0
- package/lib/common/disposable.spec.js.map +1 -1
- package/lib/common/encoding-service.js +2 -7
- package/lib/common/encoding-service.js.map +1 -1
- package/lib/common/env-variables/index.js +2 -11
- package/lib/common/env-variables/index.js.map +1 -1
- package/lib/common/event.d.ts +5 -0
- package/lib/common/event.d.ts.map +1 -1
- package/lib/common/event.js +14 -1
- package/lib/common/event.js.map +1 -1
- package/lib/{node → common}/file-uri.d.ts +1 -1
- package/lib/common/file-uri.d.ts.map +1 -0
- package/lib/{node → common}/file-uri.js +2 -2
- package/lib/common/file-uri.js.map +1 -0
- package/lib/common/index.d.ts +1 -0
- package/lib/common/index.d.ts.map +1 -1
- package/lib/common/index.js +34 -42
- package/lib/common/index.js.map +1 -1
- package/lib/common/logger-protocol.js +2 -7
- package/lib/common/logger-protocol.js.map +1 -1
- package/lib/common/logger-watcher.js +2 -7
- package/lib/common/logger-watcher.js.map +1 -1
- package/lib/common/logger.js +14 -22
- package/lib/common/logger.js.map +1 -1
- package/lib/common/markdown-rendering/index.js +3 -12
- package/lib/common/markdown-rendering/index.js.map +1 -1
- package/lib/common/markdown-rendering/markdown-string.d.ts +5 -2
- package/lib/common/markdown-rendering/markdown-string.d.ts.map +1 -1
- package/lib/common/markdown-rendering/markdown-string.js.map +1 -1
- package/lib/common/menu/composite-menu-node.js +5 -5
- package/lib/common/menu/composite-menu-node.js.map +1 -1
- package/lib/common/menu/composite-menu-node.spec.d.ts +2 -0
- package/lib/common/menu/composite-menu-node.spec.d.ts.map +1 -0
- package/lib/common/menu/composite-menu-node.spec.js +68 -0
- package/lib/common/menu/composite-menu-node.spec.js.map +1 -0
- package/lib/common/menu/index.js +6 -15
- package/lib/common/menu/index.js.map +1 -1
- package/lib/common/menu/menu-adapter.js +7 -15
- package/lib/common/menu/menu-adapter.js.map +1 -1
- package/lib/common/menu/menu-model-registry.d.ts +2 -2
- package/lib/common/menu/menu-model-registry.d.ts.map +1 -1
- package/lib/common/menu/menu-model-registry.js +22 -19
- package/lib/common/menu/menu-model-registry.js.map +1 -1
- package/lib/common/menu/menu.spec.js +28 -1
- package/lib/common/menu/menu.spec.js.map +1 -1
- package/lib/common/message-rpc/msg-pack-extension-manager.d.ts +1 -1
- package/lib/common/message-rpc/msg-pack-extension-manager.js +1 -1
- package/lib/common/message-rpc/rpc-protocol.d.ts +3 -1
- package/lib/common/message-rpc/rpc-protocol.d.ts.map +1 -1
- package/lib/common/message-rpc/rpc-protocol.js +19 -1
- package/lib/common/message-rpc/rpc-protocol.js.map +1 -1
- package/lib/common/message-service-protocol.js +2 -7
- package/lib/common/message-service-protocol.js.map +1 -1
- package/lib/common/message-service.js +4 -15
- package/lib/common/message-service.js.map +1 -1
- package/lib/common/messaging/index.js +4 -13
- package/lib/common/messaging/index.js.map +1 -1
- package/lib/common/messaging/proxy-factory.d.ts.map +1 -1
- package/lib/common/messaging/proxy-factory.js +1 -8
- package/lib/common/messaging/proxy-factory.js.map +1 -1
- package/lib/common/nls.js +3 -1
- package/lib/common/nls.js.map +1 -1
- package/lib/common/performance/index.js +4 -13
- package/lib/common/performance/index.js.map +1 -1
- package/lib/common/performance/measurement-protocol.js +5 -13
- package/lib/common/performance/measurement-protocol.js.map +1 -1
- package/lib/common/performance/stopwatch.js +5 -13
- package/lib/common/performance/stopwatch.js.map +1 -1
- package/lib/common/progress-service.js +6 -14
- package/lib/common/progress-service.js.map +1 -1
- package/lib/common/promise-util.spec.js +31 -6
- package/lib/common/promise-util.spec.js.map +1 -1
- package/lib/common/quick-pick-service.d.ts +16 -26
- package/lib/common/quick-pick-service.d.ts.map +1 -1
- package/lib/common/quick-pick-service.js +1 -26
- package/lib/common/quick-pick-service.js.map +1 -1
- package/lib/common/reference.d.ts +55 -0
- package/lib/common/reference.d.ts.map +1 -1
- package/lib/common/reference.js +55 -0
- package/lib/common/reference.js.map +1 -1
- package/lib/common/resource.d.ts +3 -1
- package/lib/common/resource.d.ts.map +1 -1
- package/lib/common/resource.js +8 -19
- package/lib/common/resource.js.map +1 -1
- package/lib/common/selection-service.js +2 -7
- package/lib/common/selection-service.js.map +1 -1
- package/lib/common/test/mock-logger.js +2 -7
- package/lib/common/test/mock-logger.js.map +1 -1
- package/lib/common/test/mock-resource-provider.js +3 -11
- package/lib/common/test/mock-resource-provider.js.map +1 -1
- package/lib/common/theme.d.ts +25 -0
- package/lib/common/theme.d.ts.map +1 -1
- package/lib/common/theme.js.map +1 -1
- package/lib/common/uri.d.ts +1 -0
- package/lib/common/uri.d.ts.map +1 -1
- package/lib/common/uri.js +1 -1
- package/lib/common/uri.js.map +1 -1
- package/lib/common/uuid.d.ts +7 -1
- package/lib/common/uuid.d.ts.map +1 -1
- package/lib/common/uuid.js +17 -58
- package/lib/common/uuid.js.map +1 -1
- package/lib/electron-browser/electron-clipboard-service.js +2 -7
- package/lib/electron-browser/electron-clipboard-service.js.map +1 -1
- package/lib/electron-browser/keyboard/electron-keyboard-layout-change-notifier.js +6 -14
- package/lib/electron-browser/keyboard/electron-keyboard-layout-change-notifier.js.map +1 -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 +18 -27
- package/lib/electron-browser/menu/electron-context-menu-renderer.js.map +1 -1
- package/lib/electron-browser/menu/electron-main-menu-factory.js +8 -16
- package/lib/electron-browser/menu/electron-main-menu-factory.js.map +1 -1
- package/lib/electron-browser/menu/electron-menu-contribution.d.ts +2 -1
- package/lib/electron-browser/menu/electron-menu-contribution.d.ts.map +1 -1
- package/lib/electron-browser/menu/electron-menu-contribution.js +33 -35
- package/lib/electron-browser/menu/electron-menu-contribution.js.map +1 -1
- package/lib/electron-browser/messaging/electron-frontend-id-provider.js +2 -7
- package/lib/electron-browser/messaging/electron-frontend-id-provider.js.map +1 -1
- package/lib/electron-browser/messaging/electron-ipc-connection-source.js +2 -7
- package/lib/electron-browser/messaging/electron-ipc-connection-source.js.map +1 -1
- package/lib/electron-browser/messaging/electron-local-ws-connection-source.js +2 -7
- package/lib/electron-browser/messaging/electron-local-ws-connection-source.js.map +1 -1
- package/lib/electron-browser/messaging/electron-messaging-frontend-module.js +3 -3
- package/lib/electron-browser/messaging/electron-messaging-frontend-module.js.map +1 -1
- package/lib/electron-browser/messaging/electron-ws-connection-source.js +3 -11
- package/lib/electron-browser/messaging/electron-ws-connection-source.js.map +1 -1
- package/lib/electron-browser/preload.js +2 -2
- package/lib/electron-browser/preload.js.map +1 -1
- package/lib/electron-browser/window/electron-frontend-application-state.js +2 -7
- package/lib/electron-browser/window/electron-frontend-application-state.js.map +1 -1
- package/lib/electron-browser/window/electron-secondary-window-service.d.ts +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 +6 -15
- package/lib/electron-browser/window/electron-secondary-window-service.js.map +1 -1
- package/lib/electron-browser/window/electron-window-service.d.ts +3 -1
- package/lib/electron-browser/window/electron-window-service.d.ts.map +1 -1
- package/lib/electron-browser/window/electron-window-service.js +26 -24
- package/lib/electron-browser/window/electron-window-service.js.map +1 -1
- package/lib/electron-common/electron-api.d.ts +2 -2
- package/lib/electron-common/electron-api.d.ts.map +1 -1
- package/lib/electron-main/electron-api-main.d.ts.map +1 -1
- package/lib/electron-main/electron-api-main.js +16 -14
- package/lib/electron-main/electron-api-main.js.map +1 -1
- package/lib/electron-main/electron-main-application-module.js +2 -2
- package/lib/electron-main/electron-main-application-module.js.map +1 -1
- package/lib/electron-main/electron-main-application.js +16 -24
- package/lib/electron-main/electron-main-application.js.map +1 -1
- package/lib/electron-main/electron-main-window-service-impl.js +4 -12
- package/lib/electron-main/electron-main-window-service-impl.js.map +1 -1
- package/lib/electron-main/electron-security-token-service.js +4 -12
- package/lib/electron-main/electron-security-token-service.js.map +1 -1
- package/lib/electron-main/messaging/electron-messaging-contribution.js +10 -18
- package/lib/electron-main/messaging/electron-messaging-contribution.js.map +1 -1
- package/lib/electron-main/theia-electron-window.js +13 -21
- package/lib/electron-main/theia-electron-window.js.map +1 -1
- package/lib/electron-node/hosting/electron-ws-origin-validator.js +4 -12
- package/lib/electron-node/hosting/electron-ws-origin-validator.js.map +1 -1
- package/lib/electron-node/keyboard/electron-keyboard-layout-provider.js +2 -7
- package/lib/electron-node/keyboard/electron-keyboard-layout-provider.js.map +1 -1
- package/lib/electron-node/request/electron-backend-request-service.js +2 -7
- package/lib/electron-node/request/electron-backend-request-service.js.map +1 -1
- package/lib/electron-node/token/electron-token-backend-contribution.js +4 -12
- package/lib/electron-node/token/electron-token-backend-contribution.js.map +1 -1
- package/lib/electron-node/token/electron-token-validator.js +6 -14
- package/lib/electron-node/token/electron-token-validator.js.map +1 -1
- package/lib/node/application-server.d.ts +1 -0
- package/lib/node/application-server.d.ts.map +1 -1
- package/lib/node/application-server.js +11 -13
- package/lib/node/application-server.js.map +1 -1
- package/lib/node/backend-application.js +17 -28
- package/lib/node/backend-application.js.map +1 -1
- package/lib/node/backend-remote-service.js +2 -7
- package/lib/node/backend-remote-service.js.map +1 -1
- package/lib/node/cli.js +5 -16
- package/lib/node/cli.js.map +1 -1
- package/lib/node/console-logger-server.js +10 -18
- package/lib/node/console-logger-server.js.map +1 -1
- package/lib/node/console-logger-server.spec.js +6 -14
- package/lib/node/console-logger-server.spec.js.map +1 -1
- package/lib/node/env-variables/env-variables-server.js +4 -12
- package/lib/node/env-variables/env-variables-server.js.map +1 -1
- package/lib/node/env-variables/index.js +2 -11
- package/lib/node/env-variables/index.js.map +1 -1
- package/lib/node/environment-utils.js +2 -7
- package/lib/node/environment-utils.js.map +1 -1
- package/lib/node/file-uri.spec.js +1 -1
- package/lib/node/file-uri.spec.js.map +1 -1
- package/lib/node/filesystem-locking.js +2 -7
- package/lib/node/filesystem-locking.js.map +1 -1
- package/lib/node/hosting/backend-application-hosts.js +6 -14
- package/lib/node/hosting/backend-application-hosts.js.map +1 -1
- package/lib/node/hosting/ws-origin-validator.js +4 -12
- package/lib/node/hosting/ws-origin-validator.js.map +1 -1
- package/lib/node/i18n/localization-contribution.js +6 -14
- package/lib/node/i18n/localization-contribution.js.map +1 -1
- package/lib/node/i18n/localization-provider.js +2 -7
- package/lib/node/i18n/localization-provider.js.map +1 -1
- package/lib/node/i18n/localization-server.js +6 -14
- package/lib/node/i18n/localization-server.js.map +1 -1
- package/lib/node/i18n/theia-localization-contribution.js +2 -7
- package/lib/node/i18n/theia-localization-contribution.js.map +1 -1
- package/lib/node/index.d.ts +1 -1
- package/lib/node/index.d.ts.map +1 -1
- package/lib/node/index.js +6 -15
- package/lib/node/index.js.map +1 -1
- package/lib/node/key-store-server.js +2 -7
- package/lib/node/key-store-server.js.map +1 -1
- package/lib/node/logger-cli-contribution.js +2 -7
- package/lib/node/logger-cli-contribution.js.map +1 -1
- package/lib/node/messaging/default-messaging-service.js +10 -18
- package/lib/node/messaging/default-messaging-service.js.map +1 -1
- package/lib/node/messaging/index.js +4 -13
- package/lib/node/messaging/index.js.map +1 -1
- package/lib/node/messaging/ipc-connection-provider.js +4 -12
- package/lib/node/messaging/ipc-connection-provider.js.map +1 -1
- package/lib/node/messaging/messaging-listeners.js +4 -12
- package/lib/node/messaging/messaging-listeners.js.map +1 -1
- package/lib/node/messaging/test/test-web-socket-channel.js +3 -11
- package/lib/node/messaging/test/test-web-socket-channel.js.map +1 -1
- package/lib/node/messaging/websocket-endpoint.js +6 -14
- package/lib/node/messaging/websocket-endpoint.js.map +1 -1
- package/lib/node/messaging/websocket-frontend-connection-service.js +4 -12
- package/lib/node/messaging/websocket-frontend-connection-service.js.map +1 -1
- package/lib/node/os-backend-provider.js +2 -7
- package/lib/node/os-backend-provider.js.map +1 -1
- package/lib/node/performance/index.js +3 -12
- package/lib/node/performance/index.js.map +1 -1
- package/lib/node/performance/node-stopwatch.js +3 -11
- package/lib/node/performance/node-stopwatch.js.map +1 -1
- package/lib/node/process-utils.js +2 -7
- package/lib/node/process-utils.js.map +1 -1
- package/lib/node/request/backend-request-facade.js +4 -12
- package/lib/node/request/backend-request-facade.js.map +1 -1
- package/lib/node/request/proxy-cli-contribution.js +4 -12
- package/lib/node/request/proxy-cli-contribution.js.map +1 -1
- package/lib/node/ws-request-validators.js +4 -12
- package/lib/node/ws-request-validators.js.map +1 -1
- package/package.json +14 -8
- package/src/browser/browser.ts +6 -1
- package/src/browser/color-application-contribution.ts +11 -2
- package/src/browser/command-open-handler.ts +1 -1
- package/src/browser/common-frontend-contribution.ts +47 -4
- package/src/browser/context-key-service.ts +1 -2
- package/src/browser/context-menu-renderer.ts +0 -4
- package/src/browser/core-preferences.ts +6 -0
- package/src/browser/decorations-service.ts +4 -4
- package/src/browser/frontend-application-module.ts +5 -2
- package/src/browser/icon-registry.ts +1 -10
- package/src/browser/keybinding.ts +3 -0
- package/src/browser/markdown-rendering/markdown-renderer.ts +1 -1
- package/src/browser/menu/browser-context-menu-renderer.ts +2 -1
- package/src/browser/menu/browser-menu-plugin.ts +2 -2
- package/src/browser/save-resource-service.ts +5 -4
- package/src/browser/secondary-window-handler.ts +21 -22
- package/src/browser/shell/application-shell.ts +33 -21
- package/src/browser/shell/tab-bar-decorator.ts +36 -6
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar.tsx +15 -10
- package/src/browser/shell/tab-bars.ts +41 -5
- package/src/browser/style/index.css +153 -148
- package/src/browser/style/select-component.css +12 -13
- package/src/browser/style/tabs.css +6 -0
- package/src/browser/styling-service.ts +12 -3
- package/src/browser/tooltip-service.tsx +2 -2
- package/src/browser/tree/index.ts +1 -0
- package/src/browser/tree/test/mock-selectable-tree-model.ts +109 -0
- package/src/browser/tree/tree-model.ts +74 -0
- package/src/browser/tree/tree-preference.ts +50 -0
- package/src/browser/tree/tree-selectable.spec.ts +152 -0
- package/src/browser/tree/tree-widget.tsx +24 -5
- package/src/browser/tree/tree.ts +2 -1
- package/src/browser/widget-manager.ts +25 -0
- package/src/browser/widgets/select-component.tsx +1 -0
- package/src/browser/widgets/widget.ts +8 -0
- package/src/browser/window/default-secondary-window-service.ts +24 -26
- package/src/browser/window/default-window-service.ts +4 -0
- package/src/browser/window/test/mock-window-service.ts +1 -0
- package/src/browser/window/window-service.ts +12 -2
- package/src/browser-only/frontend-only-application-module.ts +115 -0
- package/src/browser-only/i18n/i18n-frontend-only-module.ts +37 -0
- package/src/browser-only/logger-frontend-only-module.ts +63 -0
- package/src/browser-only/messaging/frontend-only-service-connection-provider.ts +39 -0
- package/src/browser-only/messaging/messaging-frontend-only-module.ts +42 -0
- package/src/browser-only/preload/frontend-only-preload-module.ts +49 -0
- package/src/common/application-protocol.ts +1 -0
- package/src/common/disposable.spec.ts +66 -1
- package/src/common/disposable.ts +53 -0
- package/src/common/event.ts +18 -0
- package/src/{node → common}/file-uri.ts +2 -2
- package/src/common/index.ts +1 -0
- package/src/common/markdown-rendering/markdown-string.ts +6 -3
- package/src/common/menu/composite-menu-node.spec.ts +67 -0
- package/src/common/menu/composite-menu-node.ts +5 -5
- package/src/common/menu/menu-model-registry.ts +22 -5
- package/src/common/menu/menu.spec.ts +30 -2
- package/src/common/message-rpc/msg-pack-extension-manager.ts +1 -1
- package/src/common/message-rpc/rpc-protocol.ts +22 -2
- package/src/common/messaging/proxy-factory.ts +1 -8
- package/src/common/nls.ts +3 -1
- package/src/common/promise-util.spec.ts +48 -18
- package/src/common/quick-pick-service.ts +13 -34
- package/src/common/reference.ts +55 -0
- package/src/common/resource.ts +5 -1
- package/src/common/theme.ts +32 -0
- package/src/common/uri.ts +4 -2
- package/src/common/uuid.ts +15 -69
- package/src/electron-browser/menu/electron-context-menu-renderer.ts +3 -1
- package/src/electron-browser/menu/electron-menu-contribution.ts +9 -1
- package/src/electron-browser/messaging/electron-messaging-frontend-module.ts +1 -1
- package/src/electron-browser/preload.ts +3 -3
- package/src/electron-browser/window/electron-secondary-window-service.ts +4 -8
- package/src/electron-browser/window/electron-window-service.ts +15 -3
- package/src/electron-common/electron-api.ts +2 -2
- package/src/electron-main/electron-api-main.ts +11 -2
- package/src/electron-main/electron-main-application-module.ts +2 -2
- package/src/electron-main/electron-main-application.ts +1 -1
- package/src/electron-main/theia-electron-window.ts +1 -1
- package/src/node/application-server.ts +8 -1
- package/src/node/env-variables/env-variables-server.ts +1 -1
- package/src/node/file-uri.spec.ts +1 -1
- package/src/node/index.ts +1 -1
- package/lib/node/file-uri.d.ts.map +0 -1
- package/lib/node/file-uri.js.map +0 -1
|
@@ -14,13 +14,13 @@
|
|
|
14
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import { CommandRegistry, Command } from '../command';
|
|
17
|
+
import { inject, injectable, named } from 'inversify';
|
|
18
|
+
import { Command, CommandRegistry } from '../command';
|
|
20
19
|
import { ContributionProvider } from '../contribution-provider';
|
|
21
|
-
import {
|
|
22
|
-
import { CompoundMenuNode, MenuAction, MenuNode, MenuPath, MutableCompoundMenuNode, SubMenuOptions } from './menu-types';
|
|
20
|
+
import { Disposable } from '../disposable';
|
|
23
21
|
import { ActionMenuNode } from './action-menu-node';
|
|
22
|
+
import { CompositeMenuNode, CompositeMenuNodeWrapper } from './composite-menu-node';
|
|
23
|
+
import { CompoundMenuNode, MenuAction, MenuNode, MenuNodeMetadata, MenuPath, MutableCompoundMenuNode, SubMenuOptions } from './menu-types';
|
|
24
24
|
|
|
25
25
|
export const MenuContribution = Symbol('MenuContribution');
|
|
26
26
|
|
|
@@ -157,6 +157,23 @@ export class MenuModelRegistry {
|
|
|
157
157
|
linkSubmenu(parentPath: MenuPath | string, childId: string | MenuPath, options?: SubMenuOptions, group?: string): Disposable {
|
|
158
158
|
const child = this.getMenuNode(childId);
|
|
159
159
|
const parent = this.getMenuNode(parentPath, group);
|
|
160
|
+
|
|
161
|
+
const isRecursive = (node: MenuNodeMetadata, childNode: MenuNodeMetadata): boolean => {
|
|
162
|
+
if (node.id === childNode.id) {
|
|
163
|
+
return true;
|
|
164
|
+
}
|
|
165
|
+
if (node.parent) {
|
|
166
|
+
return isRecursive(node.parent, childNode);
|
|
167
|
+
}
|
|
168
|
+
return false;
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
// check for menu contribution recursion
|
|
172
|
+
if (isRecursive(parent, child)) {
|
|
173
|
+
console.warn(`Recursive menu contribution detected: ${child.id} is already in hierarchy of ${parent.id}.`);
|
|
174
|
+
return Disposable.NULL;
|
|
175
|
+
}
|
|
176
|
+
|
|
160
177
|
const wrapper = new CompositeMenuNodeWrapper(child, parent, options);
|
|
161
178
|
return parent.addNode(wrapper);
|
|
162
179
|
}
|
|
@@ -14,10 +14,10 @@
|
|
|
14
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
|
-
import { CommandContribution, CommandRegistry } from '../command';
|
|
18
|
-
import { MenuContribution, MenuModelRegistry } from './menu-model-registry';
|
|
19
17
|
import * as chai from 'chai';
|
|
18
|
+
import { CommandContribution, CommandRegistry } from '../command';
|
|
20
19
|
import { CompositeMenuNode } from './composite-menu-node';
|
|
20
|
+
import { MenuContribution, MenuModelRegistry } from './menu-model-registry';
|
|
21
21
|
|
|
22
22
|
const expect = chai.expect;
|
|
23
23
|
|
|
@@ -61,6 +61,25 @@ describe('menu-model-registry', () => {
|
|
|
61
61
|
expect(openGroup.children.length).equals(2);
|
|
62
62
|
expect(openGroup.label).undefined;
|
|
63
63
|
});
|
|
64
|
+
|
|
65
|
+
it('Should not allow to register cyclic menus.', () => {
|
|
66
|
+
const fileMenu = ['main', 'File'];
|
|
67
|
+
const fileOpenMenu = [...fileMenu, '0_open'];
|
|
68
|
+
const fileCloseMenu = [...fileMenu, '1_close'];
|
|
69
|
+
const service = createMenuRegistry({
|
|
70
|
+
registerMenus(menuRegistry: MenuModelRegistry): void {
|
|
71
|
+
menuRegistry.registerSubmenu(fileMenu, 'File');
|
|
72
|
+
// open menu should not be added to open menu
|
|
73
|
+
menuRegistry.linkSubmenu(fileOpenMenu, fileOpenMenu);
|
|
74
|
+
// close menu should be added
|
|
75
|
+
menuRegistry.linkSubmenu(fileOpenMenu, fileCloseMenu);
|
|
76
|
+
}
|
|
77
|
+
}, {
|
|
78
|
+
registerCommands(reg: CommandRegistry): void { }
|
|
79
|
+
});
|
|
80
|
+
const all = service.getMenu() as CompositeMenuNode;
|
|
81
|
+
expect(menuStructureToString(all.children[0] as CompositeMenuNode)).equals('File(0_open(1_close),1_close())');
|
|
82
|
+
});
|
|
64
83
|
});
|
|
65
84
|
});
|
|
66
85
|
|
|
@@ -71,3 +90,12 @@ function createMenuRegistry(menuContrib: MenuContribution, commandContrib: Comma
|
|
|
71
90
|
menuReg.onStart();
|
|
72
91
|
return menuReg;
|
|
73
92
|
}
|
|
93
|
+
|
|
94
|
+
function menuStructureToString(node: CompositeMenuNode): string {
|
|
95
|
+
return node.children.map(c => {
|
|
96
|
+
if (c instanceof CompositeMenuNode) {
|
|
97
|
+
return `${c.id}(${menuStructureToString(c)})`;
|
|
98
|
+
}
|
|
99
|
+
return c.id;
|
|
100
|
+
}).join(',');
|
|
101
|
+
}
|
|
@@ -21,7 +21,7 @@ import { addExtension } from 'msgpackr';
|
|
|
21
21
|
* required for the default RPC communication. MsgPackR extensions
|
|
22
22
|
* are installed globally on both ends of the communication channel.
|
|
23
23
|
* (frontend-backend, pluginExt-pluginMain).
|
|
24
|
-
* Is implemented as singleton as it is
|
|
24
|
+
* Is implemented as singleton as it is also used in plugin child processes which have no access to inversify.
|
|
25
25
|
*/
|
|
26
26
|
export class MsgPackExtensionManager {
|
|
27
27
|
private static readonly INSTANCE = new MsgPackExtensionManager();
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
17
17
|
|
|
18
18
|
import { CancellationToken, CancellationTokenSource } from '../cancellation';
|
|
19
|
-
import { Disposable, DisposableCollection } from '../disposable';
|
|
19
|
+
import { DisposableWrapper, Disposable, DisposableCollection } from '../disposable';
|
|
20
20
|
import { Emitter, Event } from '../event';
|
|
21
21
|
import { Deferred } from '../promise-util';
|
|
22
22
|
import { Channel } from './channel';
|
|
@@ -57,6 +57,7 @@ export class RpcProtocol {
|
|
|
57
57
|
static readonly CANCELLATION_TOKEN_KEY = 'add.cancellation.token';
|
|
58
58
|
|
|
59
59
|
protected readonly pendingRequests: Map<number, Deferred<any>> = new Map();
|
|
60
|
+
protected readonly pendingRequestCancellationEventListeners: Map<number, DisposableWrapper> = new Map();
|
|
60
61
|
|
|
61
62
|
protected nextMessageId: number = 0;
|
|
62
63
|
|
|
@@ -80,6 +81,8 @@ export class RpcProtocol {
|
|
|
80
81
|
channel.onClose(event => {
|
|
81
82
|
this.pendingRequests.forEach(pending => pending.reject(new Error(event.reason)));
|
|
82
83
|
this.pendingRequests.clear();
|
|
84
|
+
this.pendingRequestCancellationEventListeners.forEach(disposable => disposable.dispose());
|
|
85
|
+
this.pendingRequestCancellationEventListeners.clear();
|
|
83
86
|
this.toDispose.dispose();
|
|
84
87
|
});
|
|
85
88
|
this.toDispose.push(channel.onMessage(readBuffer => this.handleMessage(this.decoder.parse(readBuffer()))));
|
|
@@ -131,6 +134,7 @@ export class RpcProtocol {
|
|
|
131
134
|
} else {
|
|
132
135
|
throw new Error(`No reply handler for reply with id: ${id}`);
|
|
133
136
|
}
|
|
137
|
+
this.disposeCancellationEventListener(id);
|
|
134
138
|
}
|
|
135
139
|
|
|
136
140
|
protected handleReplyErr(id: number, error: any): void {
|
|
@@ -141,6 +145,15 @@ export class RpcProtocol {
|
|
|
141
145
|
} else {
|
|
142
146
|
throw new Error(`No reply handler for error reply with id: ${id}`);
|
|
143
147
|
}
|
|
148
|
+
this.disposeCancellationEventListener(id);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
protected disposeCancellationEventListener(id: number): void {
|
|
152
|
+
const toDispose = this.pendingRequestCancellationEventListeners.get(id);
|
|
153
|
+
if (toDispose) {
|
|
154
|
+
this.pendingRequestCancellationEventListeners.delete(id);
|
|
155
|
+
toDispose.dispose();
|
|
156
|
+
}
|
|
144
157
|
}
|
|
145
158
|
|
|
146
159
|
sendRequest<T>(method: string, args: any[]): Promise<T> {
|
|
@@ -157,6 +170,10 @@ export class RpcProtocol {
|
|
|
157
170
|
|
|
158
171
|
this.pendingRequests.set(id, reply);
|
|
159
172
|
|
|
173
|
+
// register disposable before output.commit() even when not available yet
|
|
174
|
+
const disposableWrapper = new DisposableWrapper();
|
|
175
|
+
this.pendingRequestCancellationEventListeners.set(id, disposableWrapper);
|
|
176
|
+
|
|
160
177
|
const output = this.channel.getWriteBuffer();
|
|
161
178
|
this.encoder.request(output, id, method, args);
|
|
162
179
|
output.commit();
|
|
@@ -164,7 +181,10 @@ export class RpcProtocol {
|
|
|
164
181
|
if (cancellationToken?.isCancellationRequested) {
|
|
165
182
|
this.sendCancel(id);
|
|
166
183
|
} else {
|
|
167
|
-
cancellationToken?.onCancellationRequested(() => this.sendCancel(id));
|
|
184
|
+
const disposable = cancellationToken?.onCancellationRequested(() => this.sendCancel(id));
|
|
185
|
+
if (disposable) {
|
|
186
|
+
disposableWrapper.set(disposable);
|
|
187
|
+
}
|
|
168
188
|
}
|
|
169
189
|
|
|
170
190
|
return reply.promise;
|
|
@@ -168,14 +168,7 @@ export class RpcProxyFactory<T extends object> implements ProxyHandler<T> {
|
|
|
168
168
|
throw new Error(`no target was set to handle ${method}`);
|
|
169
169
|
}
|
|
170
170
|
} catch (error) {
|
|
171
|
-
|
|
172
|
-
if (e instanceof ResponseError) {
|
|
173
|
-
throw e;
|
|
174
|
-
}
|
|
175
|
-
const reason = e.message || '';
|
|
176
|
-
const stack = e.stack || '';
|
|
177
|
-
console.error(`Request ${method} failed with error: ${reason}`, stack);
|
|
178
|
-
throw e;
|
|
171
|
+
throw this.serializeError(error);
|
|
179
172
|
}
|
|
180
173
|
}
|
|
181
174
|
|
package/src/common/nls.ts
CHANGED
|
@@ -83,7 +83,9 @@ class LocalizationKeyProvider {
|
|
|
83
83
|
|
|
84
84
|
private preferredKeys = new Set([
|
|
85
85
|
// We only want the `File` translation used in the menu
|
|
86
|
-
'vscode/fileActions.contribution/filesCategory'
|
|
86
|
+
'vscode/fileActions.contribution/filesCategory',
|
|
87
|
+
// Needed for `Close Editor` translation
|
|
88
|
+
'vscode/editor.contribution/closeEditor'
|
|
87
89
|
]);
|
|
88
90
|
private data = this.buildData();
|
|
89
91
|
|
|
@@ -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
|
import * as assert from 'assert/strict';
|
|
17
|
-
import { firstTrue, waitForEvent } from './promise-util';
|
|
17
|
+
import { Deferred, firstTrue, waitForEvent } from './promise-util';
|
|
18
18
|
import { Emitter } from './event';
|
|
19
19
|
import { CancellationError } from './cancellation';
|
|
20
20
|
|
|
@@ -35,7 +35,30 @@ describe('promise-util', () => {
|
|
|
35
35
|
});
|
|
36
36
|
});
|
|
37
37
|
|
|
38
|
+
type ExecutionHandler<T> = (resolve: (value: T) => void, reject: (error: unknown) => void) => void;
|
|
39
|
+
|
|
38
40
|
describe('firstTrue', () => {
|
|
41
|
+
function createSequentialPromises<T>(...executionHandlers: ExecutionHandler<T>[]): Promise<T>[] {
|
|
42
|
+
const deferreds: Deferred<T>[] = [];
|
|
43
|
+
let i = 0;
|
|
44
|
+
for (let k = 0; k < executionHandlers.length; k++) {
|
|
45
|
+
deferreds.push(new Deferred<T>());
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
const resolveNext = () => {
|
|
49
|
+
if (i < executionHandlers.length) {
|
|
50
|
+
executionHandlers[i](value => deferreds[i].resolve(value), error => deferreds[i].reject(error));
|
|
51
|
+
i++;
|
|
52
|
+
}
|
|
53
|
+
if (i < executionHandlers.length) {
|
|
54
|
+
setTimeout(resolveNext, 1);
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
setTimeout(resolveNext, 1);
|
|
59
|
+
return deferreds.map(deferred => deferred.promise);
|
|
60
|
+
}
|
|
61
|
+
|
|
39
62
|
it('should resolve to false when the promises arg is empty', async () => {
|
|
40
63
|
const actual = await firstTrue();
|
|
41
64
|
assert.strictEqual(actual, false);
|
|
@@ -43,29 +66,36 @@ describe('promise-util', () => {
|
|
|
43
66
|
|
|
44
67
|
it('should resolve to true when the first promise resolves to true', async () => {
|
|
45
68
|
const signals: string[] = [];
|
|
46
|
-
|
|
47
|
-
|
|
69
|
+
|
|
70
|
+
function createHandler(signal: string, result?: boolean): ExecutionHandler<boolean> {
|
|
71
|
+
return (resolve: (value: boolean) => void, reject: (error: unknown) => void) => {
|
|
48
72
|
signals.push(signal);
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
73
|
+
if (typeof result !== 'undefined') {
|
|
74
|
+
resolve(result);
|
|
75
|
+
} else {
|
|
76
|
+
reject(undefined);
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
const actual = await firstTrue(...createSequentialPromises(
|
|
82
|
+
createHandler('a', false),
|
|
83
|
+
createHandler('b', false),
|
|
84
|
+
createHandler('c', true),
|
|
85
|
+
createHandler('d', false),
|
|
86
|
+
createHandler('e', true)
|
|
87
|
+
));
|
|
58
88
|
assert.strictEqual(actual, true);
|
|
59
89
|
assert.deepStrictEqual(signals, ['a', 'b', 'c']);
|
|
60
90
|
});
|
|
61
91
|
|
|
62
92
|
it('should reject when one of the promises rejects', async () => {
|
|
63
|
-
await assert.rejects(firstTrue(
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
), /Error: my test error/);
|
|
93
|
+
await assert.rejects(firstTrue(...createSequentialPromises<boolean>(
|
|
94
|
+
(resolve, _) => resolve(false),
|
|
95
|
+
resolve => resolve(false),
|
|
96
|
+
(_, reject) => reject(new Error('my test error')),
|
|
97
|
+
resolve => resolve(true),
|
|
98
|
+
)), /Error: my test error/);
|
|
69
99
|
});
|
|
70
100
|
});
|
|
71
101
|
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
|
-
import URI from './uri';
|
|
18
17
|
import * as fuzzy from 'fuzzy';
|
|
19
18
|
import { Event } from './event';
|
|
20
19
|
import { KeySequence } from './keys';
|
|
@@ -54,11 +53,11 @@ export interface QuickPickItem {
|
|
|
54
53
|
description?: string;
|
|
55
54
|
detail?: string;
|
|
56
55
|
keySequence?: KeySequence;
|
|
57
|
-
iconPath?:
|
|
56
|
+
iconPath?: { light?: Uri; dark: Uri };
|
|
58
57
|
iconClasses?: string[];
|
|
59
58
|
alwaysShow?: boolean;
|
|
60
59
|
highlights?: QuickPickItemHighlights;
|
|
61
|
-
buttons?:
|
|
60
|
+
buttons?: QuickInputButton[];
|
|
62
61
|
execute?: () => void;
|
|
63
62
|
}
|
|
64
63
|
|
|
@@ -95,7 +94,7 @@ export interface QuickPickValue<V> extends QuickPickItem {
|
|
|
95
94
|
}
|
|
96
95
|
|
|
97
96
|
export interface QuickInputButton {
|
|
98
|
-
iconPath?:
|
|
97
|
+
iconPath?: { light?: Uri; dark: Uri };
|
|
99
98
|
iconClass?: string;
|
|
100
99
|
tooltip?: string;
|
|
101
100
|
/**
|
|
@@ -104,34 +103,8 @@ export interface QuickInputButton {
|
|
|
104
103
|
alwaysVisible?: boolean;
|
|
105
104
|
}
|
|
106
105
|
|
|
107
|
-
export interface NormalizedQuickInputButton extends QuickInputButton {
|
|
108
|
-
iconPath?: { light?: Uri, dark: Uri };
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
export namespace QuickInputButton {
|
|
112
|
-
export function normalize(button: undefined): undefined;
|
|
113
|
-
export function normalize(button: QuickInputButton): NormalizedQuickInputButton;
|
|
114
|
-
export function normalize(button?: QuickInputButton): NormalizedQuickInputButton | undefined {
|
|
115
|
-
if (!button) {
|
|
116
|
-
return button;
|
|
117
|
-
}
|
|
118
|
-
let iconPath: NormalizedQuickInputButton['iconPath'] = undefined;
|
|
119
|
-
if (button.iconPath instanceof URI) {
|
|
120
|
-
iconPath = { dark: button.iconPath['codeUri'] };
|
|
121
|
-
} else if (button.iconPath && 'dark' in button.iconPath) {
|
|
122
|
-
const dark = Uri.isUri(button.iconPath.dark) ? button.iconPath.dark : button.iconPath.dark['codeUri'];
|
|
123
|
-
const light = Uri.isUri(button.iconPath.light) ? button.iconPath.light : button.iconPath.light?.['codeUri'];
|
|
124
|
-
iconPath = { dark, light };
|
|
125
|
-
}
|
|
126
|
-
return {
|
|
127
|
-
...button,
|
|
128
|
-
iconPath,
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
|
|
133
106
|
export interface QuickInputButtonHandle extends QuickInputButton {
|
|
134
|
-
|
|
107
|
+
handle: number; // index of where the button is in buttons array if QuickInputButton or -1 if QuickInputButtons.Back
|
|
135
108
|
}
|
|
136
109
|
|
|
137
110
|
export enum QuickInputHideReason {
|
|
@@ -188,10 +161,11 @@ export interface QuickPick<T extends QuickPickItemOrSeparator> extends QuickInpu
|
|
|
188
161
|
matchOnDescription: boolean;
|
|
189
162
|
matchOnDetail: boolean;
|
|
190
163
|
keepScrollPosition: boolean;
|
|
164
|
+
buttons: ReadonlyArray<QuickInputButton>;
|
|
191
165
|
readonly onDidAccept: Event<{ inBackground: boolean } | undefined>;
|
|
192
166
|
readonly onDidChangeValue: Event<string>;
|
|
193
167
|
readonly onDidTriggerButton: Event<QuickInputButton>;
|
|
194
|
-
readonly onDidTriggerItemButton: Event<QuickPickItemButtonEvent<
|
|
168
|
+
readonly onDidTriggerItemButton: Event<QuickPickItemButtonEvent<QuickPickItem>>;
|
|
195
169
|
readonly onDidChangeActive: Event<T[]>;
|
|
196
170
|
readonly onDidChangeSelection: Event<T[]>;
|
|
197
171
|
}
|
|
@@ -281,8 +255,13 @@ export interface QuickInputService {
|
|
|
281
255
|
open(filter: string): void;
|
|
282
256
|
createInputBox(): InputBox;
|
|
283
257
|
input(options?: InputOptions, token?: CancellationToken): Promise<string | undefined>;
|
|
284
|
-
pick<T extends QuickPickItem
|
|
285
|
-
|
|
258
|
+
pick<T extends QuickPickItem>(picks: Promise<QuickPickInput<T>[]> | QuickPickInput<T>[],
|
|
259
|
+
options?: PickOptions<T> & { canPickMany: true }, token?: CancellationToken): Promise<T[] | undefined>;
|
|
260
|
+
pick<T extends QuickPickItem>(picks: Promise<QuickPickInput<T>[]> | QuickPickInput<T>[],
|
|
261
|
+
options?: PickOptions<T> & { canPickMany: false }, token?: CancellationToken): Promise<T | undefined>;
|
|
262
|
+
pick<T extends QuickPickItem>(picks: Promise<QuickPickInput<T>[]> | QuickPickInput<T>[],
|
|
263
|
+
options?: Omit<PickOptions<T>, 'canPickMany'>, token?: CancellationToken): Promise<T | undefined>;
|
|
264
|
+
|
|
286
265
|
showQuickPick<T extends QuickPickItem>(items: Array<T | QuickPickSeparator>, options?: QuickPickOptions<T>): Promise<T | undefined>;
|
|
287
266
|
hide(): void;
|
|
288
267
|
/**
|
package/src/common/reference.ts
CHANGED
|
@@ -22,6 +22,50 @@ export interface Reference<T> extends Disposable {
|
|
|
22
22
|
readonly object: T
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
+
/**
|
|
26
|
+
* Abstract class for a map of reference-counted disposable objects, with the
|
|
27
|
+
* following features:
|
|
28
|
+
*
|
|
29
|
+
* - values are not inserted explicitly; instead, acquire() is used to
|
|
30
|
+
* create the value for a given key, or return the previously created
|
|
31
|
+
* value for it. How the value is created for a given key is
|
|
32
|
+
* implementation specific.
|
|
33
|
+
*
|
|
34
|
+
* - any subsquent acquire() with the same key will bump the reference
|
|
35
|
+
* count on that value. acquire() returns not the value directly but
|
|
36
|
+
* a reference object that holds the value. Calling dispose() on the
|
|
37
|
+
* reference decreases the value's effective reference count.
|
|
38
|
+
*
|
|
39
|
+
* - a contained value will have its dispose() function called when its
|
|
40
|
+
* reference count reaches zero. The key/value pair will be purged
|
|
41
|
+
* from the collection.
|
|
42
|
+
*
|
|
43
|
+
* - calling dispose() on the value directly, instead of calling it on
|
|
44
|
+
* the reference returned by acquire(), will automatically dispose
|
|
45
|
+
* all outstanding references to that value and the key/value pair
|
|
46
|
+
* will be purged from the collection.
|
|
47
|
+
*
|
|
48
|
+
* - supports synchronous and asynchronous implementations. acquire() will
|
|
49
|
+
* return a Promise if the value cannot be created immediately
|
|
50
|
+
*
|
|
51
|
+
* - functions has|keys|values|get are always synchronous and the result
|
|
52
|
+
* excludes asynchronous additions in flight.
|
|
53
|
+
*
|
|
54
|
+
* - functions values|get return the value directly and not a reference
|
|
55
|
+
* to the value. Use these functions to obtain a value without bumping
|
|
56
|
+
* its reference count.
|
|
57
|
+
*
|
|
58
|
+
* - clients can register to be notified when values are added and removed;
|
|
59
|
+
* notification for asynchronous additions happen when the creation
|
|
60
|
+
* completes, not when it's requested.
|
|
61
|
+
*
|
|
62
|
+
* - keys can be any value/object that can be successfully stringified using
|
|
63
|
+
* JSON.stringify(), sans arguments
|
|
64
|
+
*
|
|
65
|
+
* - calling dispose() on the collection will dispose all outstanding
|
|
66
|
+
* references to all contained values, which results in the disposal of
|
|
67
|
+
* the values themselves.
|
|
68
|
+
*/
|
|
25
69
|
export abstract class AbstractReferenceCollection<K, V extends Disposable> implements Disposable {
|
|
26
70
|
|
|
27
71
|
protected readonly _keys = new Map<string, K>();
|
|
@@ -108,6 +152,12 @@ export abstract class AbstractReferenceCollection<K, V extends Disposable> imple
|
|
|
108
152
|
|
|
109
153
|
}
|
|
110
154
|
|
|
155
|
+
/**
|
|
156
|
+
* Asynchronous implementation of AbstractReferenceCollection that requires
|
|
157
|
+
* the client to provide a value factory, used to service the acquire()
|
|
158
|
+
* function. That factory may return a Promise if the value cannot be
|
|
159
|
+
* created immediately.
|
|
160
|
+
*/
|
|
111
161
|
export class ReferenceCollection<K, V extends Disposable> extends AbstractReferenceCollection<K, V> {
|
|
112
162
|
|
|
113
163
|
constructor(protected readonly factory: (key: K) => MaybePromise<V>) {
|
|
@@ -148,6 +198,11 @@ export class ReferenceCollection<K, V extends Disposable> extends AbstractRefere
|
|
|
148
198
|
|
|
149
199
|
}
|
|
150
200
|
|
|
201
|
+
/**
|
|
202
|
+
* Synchronous implementation of AbstractReferenceCollection that requires
|
|
203
|
+
* the client to provide a value factory, used to service the acquire()
|
|
204
|
+
* function.
|
|
205
|
+
*/
|
|
151
206
|
export class SyncReferenceCollection<K, V extends Disposable> extends AbstractReferenceCollection<K, V> {
|
|
152
207
|
|
|
153
208
|
constructor(protected readonly factory: (key: K) => V) {
|
package/src/common/resource.ts
CHANGED
|
@@ -25,6 +25,7 @@ import { CancellationToken } from './cancellation';
|
|
|
25
25
|
import { ApplicationError } from './application-error';
|
|
26
26
|
import { ReadableStream, Readable } from './stream';
|
|
27
27
|
import { SyncReferenceCollection, Reference } from './reference';
|
|
28
|
+
import { MarkdownString } from './markdown-rendering';
|
|
28
29
|
|
|
29
30
|
export interface ResourceVersion {
|
|
30
31
|
}
|
|
@@ -55,7 +56,10 @@ export interface Resource extends Disposable {
|
|
|
55
56
|
* Undefined if a resource did not read content yet.
|
|
56
57
|
*/
|
|
57
58
|
readonly encoding?: string | undefined;
|
|
58
|
-
|
|
59
|
+
|
|
60
|
+
readonly onDidChangeReadOnly?: Event<boolean | MarkdownString>;
|
|
61
|
+
|
|
62
|
+
readonly readOnly?: boolean | MarkdownString;
|
|
59
63
|
/**
|
|
60
64
|
* Reads latest content of this resource.
|
|
61
65
|
*
|
package/src/common/theme.ts
CHANGED
|
@@ -14,6 +14,8 @@
|
|
|
14
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
|
+
import { URI } from 'vscode-uri';
|
|
18
|
+
|
|
17
19
|
export type ThemeType = 'light' | 'dark' | 'hc' | 'hcLight';
|
|
18
20
|
|
|
19
21
|
export interface Theme {
|
|
@@ -34,3 +36,33 @@ export interface ThemeChangeEvent {
|
|
|
34
36
|
readonly newTheme: Theme;
|
|
35
37
|
readonly oldTheme?: Theme;
|
|
36
38
|
}
|
|
39
|
+
|
|
40
|
+
export interface ThemeColor {
|
|
41
|
+
id: string;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export interface ThemeIcon {
|
|
45
|
+
readonly id: string;
|
|
46
|
+
readonly color?: ThemeColor;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export interface IconDefinition {
|
|
50
|
+
font?: IconFontContribution; // undefined for the default font (codicon)
|
|
51
|
+
fontCharacter: string;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export interface IconFontContribution {
|
|
55
|
+
readonly id: string;
|
|
56
|
+
readonly definition: IconFontDefinition;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export interface IconFontDefinition {
|
|
60
|
+
readonly weight?: string;
|
|
61
|
+
readonly style?: string;
|
|
62
|
+
readonly src: IconFontSource[];
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export interface IconFontSource {
|
|
66
|
+
readonly location: URI;
|
|
67
|
+
readonly format: string;
|
|
68
|
+
}
|
package/src/common/uri.ts
CHANGED
|
@@ -19,8 +19,10 @@ import { Path } from './path';
|
|
|
19
19
|
|
|
20
20
|
export class URI {
|
|
21
21
|
|
|
22
|
-
public static fromComponents(components: UriComponents): URI
|
|
23
|
-
|
|
22
|
+
public static fromComponents(components: UriComponents): URI;
|
|
23
|
+
public static fromComponents(components: undefined): undefined;
|
|
24
|
+
public static fromComponents(components: UriComponents | undefined): URI | undefined {
|
|
25
|
+
return components ? new URI(Uri.revive(components)) : undefined;
|
|
24
26
|
}
|
|
25
27
|
|
|
26
28
|
public static fromFilePath(path: string): URI {
|
package/src/common/uuid.ts
CHANGED
|
@@ -21,79 +21,25 @@
|
|
|
21
21
|
|
|
22
22
|
// based on https://github.com/microsoft/vscode/blob/1.72.2/src/vs/base/common/uuid.ts
|
|
23
23
|
|
|
24
|
+
import { v4, v5 } from 'uuid';
|
|
25
|
+
|
|
24
26
|
const _UUIDPattern = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
25
27
|
|
|
26
28
|
export function isUUID(value: string): boolean {
|
|
27
29
|
return _UUIDPattern.test(value);
|
|
28
30
|
}
|
|
29
31
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/randomUUID#browser_compatibility
|
|
34
|
-
randomUUID?(): string;
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
export const generateUuid = (function (): () => string {
|
|
38
|
-
|
|
39
|
-
// use `randomUUID` if possible
|
|
40
|
-
if (typeof crypto === 'object' && typeof crypto.randomUUID === 'function') {
|
|
41
|
-
return crypto.randomUUID.bind(crypto);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
// use `randomValues` if possible
|
|
45
|
-
let getRandomValues: (bucket: Uint8Array) => Uint8Array;
|
|
46
|
-
if (typeof crypto === 'object' && typeof crypto.getRandomValues === 'function') {
|
|
47
|
-
getRandomValues = crypto.getRandomValues.bind(crypto);
|
|
48
|
-
|
|
49
|
-
} else {
|
|
50
|
-
getRandomValues = function (bucket: Uint8Array): Uint8Array {
|
|
51
|
-
for (let i = 0; i < bucket.length; i++) {
|
|
52
|
-
bucket[i] = Math.floor(Math.random() * 256);
|
|
53
|
-
}
|
|
54
|
-
return bucket;
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
// prep-work
|
|
59
|
-
const _data = new Uint8Array(16);
|
|
60
|
-
const _hex: string[] = [];
|
|
61
|
-
for (let i = 0; i < 256; i++) {
|
|
62
|
-
_hex.push(i.toString(16).padStart(2, '0'));
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
66
|
-
return function generateUuid(): string {
|
|
67
|
-
// get data
|
|
68
|
-
getRandomValues(_data);
|
|
69
|
-
|
|
70
|
-
// set version bits
|
|
71
|
-
_data[6] = (_data[6] & 0x0f) | 0x40;
|
|
72
|
-
_data[8] = (_data[8] & 0x3f) | 0x80;
|
|
32
|
+
export function generateUuid(): string {
|
|
33
|
+
return v4();
|
|
34
|
+
}
|
|
73
35
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
result += '-';
|
|
85
|
-
result += _hex[_data[i++]];
|
|
86
|
-
result += _hex[_data[i++]];
|
|
87
|
-
result += '-';
|
|
88
|
-
result += _hex[_data[i++]];
|
|
89
|
-
result += _hex[_data[i++]];
|
|
90
|
-
result += '-';
|
|
91
|
-
result += _hex[_data[i++]];
|
|
92
|
-
result += _hex[_data[i++]];
|
|
93
|
-
result += _hex[_data[i++]];
|
|
94
|
-
result += _hex[_data[i++]];
|
|
95
|
-
result += _hex[_data[i++]];
|
|
96
|
-
result += _hex[_data[i++]];
|
|
97
|
-
return result;
|
|
98
|
-
};
|
|
99
|
-
})();
|
|
36
|
+
const NAMESPACE = '4c90ee4f-d952-44b1-83ca-f04121ab8e05';
|
|
37
|
+
/**
|
|
38
|
+
* This function will hash the given value using SHA1. The result will be a uuid.
|
|
39
|
+
* @param value the string to hash
|
|
40
|
+
* @returns a uuid
|
|
41
|
+
*/
|
|
42
|
+
export function hashValue(value: string): string {
|
|
43
|
+
// as opposed to v4, v5 is deterministic and uses SHA1 hashing
|
|
44
|
+
return v5(value, NAMESPACE);
|
|
45
|
+
}
|
|
@@ -104,11 +104,13 @@ export class ElectronContextMenuRenderer extends BrowserContextMenuRenderer {
|
|
|
104
104
|
const menu = this.electronMenuFactory.createElectronContextMenu(menuPath, args, context, contextKeyService, skipSingleRootNode);
|
|
105
105
|
const { x, y } = coordinateFromAnchor(anchor);
|
|
106
106
|
|
|
107
|
+
const windowName = options.context?.ownerDocument.defaultView?.Window.name;
|
|
108
|
+
|
|
107
109
|
const menuHandle = window.electronTheiaCore.popup(menu, x, y, () => {
|
|
108
110
|
if (onHide) {
|
|
109
111
|
onHide();
|
|
110
112
|
}
|
|
111
|
-
});
|
|
113
|
+
}, windowName);
|
|
112
114
|
// native context menu stops the event loop, so there is no keyboard events
|
|
113
115
|
this.context.resetAltPressed();
|
|
114
116
|
return new ElectronContextMenuAccess(menuHandle);
|