@theia/core 1.22.1 → 1.23.0-next.26
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 +5 -5
- package/lib/browser/about-dialog.js +5 -5
- package/lib/browser/about-dialog.js.map +1 -1
- package/lib/browser/authentication-service.d.ts +52 -22
- package/lib/browser/authentication-service.d.ts.map +1 -1
- package/lib/browser/authentication-service.js +49 -44
- package/lib/browser/authentication-service.js.map +1 -1
- package/lib/browser/breadcrumbs/breadcrumb-popup-container.js +5 -5
- package/lib/browser/breadcrumbs/breadcrumb-popup-container.js.map +1 -1
- package/lib/browser/breadcrumbs/breadcrumb-renderer.js +1 -1
- package/lib/browser/breadcrumbs/breadcrumb-renderer.js.map +1 -1
- package/lib/browser/breadcrumbs/breadcrumbs-renderer.d.ts.map +1 -1
- package/lib/browser/breadcrumbs/breadcrumbs-renderer.js +6 -6
- package/lib/browser/breadcrumbs/breadcrumbs-renderer.js.map +1 -1
- package/lib/browser/breadcrumbs/breadcrumbs-service.js +5 -5
- package/lib/browser/breadcrumbs/breadcrumbs-service.js.map +1 -1
- package/lib/browser/breadcrumbs/index.js +1 -1
- package/lib/browser/browser-clipboard-service.js +3 -3
- package/lib/browser/browser-clipboard-service.js.map +1 -1
- package/lib/browser/color-application-contribution.js +4 -4
- package/lib/browser/color-application-contribution.js.map +1 -1
- package/lib/browser/color-registry.js +2 -2
- package/lib/browser/color-registry.js.map +1 -1
- package/lib/browser/command-open-handler.js +2 -2
- package/lib/browser/command-open-handler.js.map +1 -1
- package/lib/browser/common-frontend-contribution.js +24 -24
- package/lib/browser/common-frontend-contribution.js.map +1 -1
- package/lib/browser/connection-status-service.js +15 -13
- package/lib/browser/connection-status-service.js.map +1 -1
- package/lib/browser/connection-status-service.spec.js +18 -18
- package/lib/browser/connection-status-service.spec.js.map +1 -1
- package/lib/browser/context-key-service.js +1 -1
- package/lib/browser/context-key-service.js.map +1 -1
- package/lib/browser/context-menu-renderer.js +1 -1
- package/lib/browser/context-menu-renderer.js.map +1 -1
- package/lib/browser/core-preferences.js +1 -1
- package/lib/browser/core-preferences.js.map +1 -1
- package/lib/browser/credentials-service.js +2 -2
- package/lib/browser/credentials-service.js.map +1 -1
- package/lib/browser/decorations-service.js +1 -1
- package/lib/browser/decorations-service.js.map +1 -1
- package/lib/browser/dialogs/react-dialog.js +2 -2
- package/lib/browser/dialogs/react-dialog.js.map +1 -1
- package/lib/browser/dialogs.js +11 -11
- package/lib/browser/dialogs.js.map +1 -1
- package/lib/browser/diff-uris.js +3 -3
- package/lib/browser/diff-uris.js.map +1 -1
- package/lib/browser/encoding-registry.js +3 -3
- package/lib/browser/encoding-registry.js.map +1 -1
- package/lib/browser/external-uri-service.js +1 -1
- package/lib/browser/external-uri-service.js.map +1 -1
- package/lib/browser/frontend-application-bindings.js +2 -2
- package/lib/browser/frontend-application-bindings.js.map +1 -1
- package/lib/browser/frontend-application-config-provider.js +1 -1
- package/lib/browser/frontend-application-config-provider.js.map +1 -1
- package/lib/browser/frontend-application-config-provider.spec.js +7 -7
- package/lib/browser/frontend-application-config-provider.spec.js.map +1 -1
- package/lib/browser/frontend-application-module.d.ts.map +1 -1
- package/lib/browser/frontend-application-module.js +23 -20
- package/lib/browser/frontend-application-module.js.map +1 -1
- package/lib/browser/frontend-application-state.js +2 -2
- package/lib/browser/frontend-application-state.js.map +1 -1
- package/lib/browser/frontend-application.d.ts +4 -2
- package/lib/browser/frontend-application.d.ts.map +1 -1
- package/lib/browser/frontend-application.js +30 -36
- package/lib/browser/frontend-application.js.map +1 -1
- package/lib/browser/http-open-handler.js +3 -3
- package/lib/browser/http-open-handler.js.map +1 -1
- package/lib/browser/icon-theme-contribution.js +5 -5
- package/lib/browser/icon-theme-contribution.js.map +1 -1
- package/lib/browser/icon-theme-service.js +4 -4
- package/lib/browser/icon-theme-service.js.map +1 -1
- package/lib/browser/index.js +1 -1
- package/lib/browser/json-schema-store.js +5 -5
- package/lib/browser/json-schema-store.js.map +1 -1
- package/lib/browser/keybinding.js +11 -11
- package/lib/browser/keybinding.js.map +1 -1
- package/lib/browser/keybinding.spec.js +9 -9
- package/lib/browser/keybinding.spec.js.map +1 -1
- package/lib/browser/keyboard/browser-keyboard-frontend-contribution.js +4 -4
- package/lib/browser/keyboard/browser-keyboard-frontend-contribution.js.map +1 -1
- package/lib/browser/keyboard/browser-keyboard-layout-provider.js +4 -4
- package/lib/browser/keyboard/browser-keyboard-layout-provider.js.map +1 -1
- package/lib/browser/keyboard/browser-keyboard-layout-provider.spec.js +3 -3
- package/lib/browser/keyboard/browser-keyboard-layout-provider.spec.js.map +1 -1
- package/lib/browser/keyboard/index.js +1 -1
- package/lib/browser/keyboard/keyboard-layout-service.js +5 -5
- package/lib/browser/keyboard/keyboard-layout-service.js.map +1 -1
- package/lib/browser/keyboard/keyboard-layout-service.spec.js +1 -1
- package/lib/browser/keyboard/keyboard-layout-service.spec.js.map +1 -1
- package/lib/browser/keyboard/keys.js +1 -1
- package/lib/browser/keyboard/keys.spec.js +2 -2
- package/lib/browser/keyboard/keys.spec.js.map +1 -1
- package/lib/browser/label-parser.js +1 -1
- package/lib/browser/label-parser.js.map +1 -1
- package/lib/browser/label-parser.spec.js +38 -38
- package/lib/browser/label-parser.spec.js.map +1 -1
- package/lib/browser/label-provider.js +8 -8
- package/lib/browser/label-provider.js.map +1 -1
- package/lib/browser/label-provider.spec.js +5 -5
- package/lib/browser/label-provider.spec.js.map +1 -1
- package/lib/browser/language-service.js +1 -1
- package/lib/browser/language-service.js.map +1 -1
- package/lib/browser/logger-frontend-module.js +1 -1
- package/lib/browser/logger-frontend-module.js.map +1 -1
- package/lib/browser/menu/browser-context-menu-renderer.js +3 -3
- package/lib/browser/menu/browser-context-menu-renderer.js.map +1 -1
- package/lib/browser/menu/browser-menu-plugin.js +13 -13
- package/lib/browser/menu/browser-menu-plugin.js.map +1 -1
- package/lib/browser/menu/context-menu-context.js +1 -1
- package/lib/browser/menu/context-menu-context.js.map +1 -1
- package/lib/browser/messaging/index.js +1 -1
- package/lib/browser/messaging/ws-connection-provider.js +7 -7
- package/lib/browser/messaging/ws-connection-provider.js.map +1 -1
- package/lib/browser/mime-service.js +1 -1
- package/lib/browser/mime-service.js.map +1 -1
- package/lib/browser/navigatable.js +1 -1
- package/lib/browser/opener-service.js +3 -2
- package/lib/browser/opener-service.js.map +1 -1
- package/lib/browser/performance/frontend-stopwatch.d.ts +21 -0
- package/lib/browser/performance/frontend-stopwatch.d.ts.map +1 -0
- package/lib/browser/performance/frontend-stopwatch.js +71 -0
- package/lib/browser/performance/frontend-stopwatch.js.map +1 -0
- package/lib/browser/performance/index.d.ts +18 -0
- package/lib/browser/performance/index.d.ts.map +1 -0
- package/lib/browser/performance/index.js +30 -0
- package/lib/browser/performance/index.js.map +1 -0
- package/lib/browser/performance/measurement-frontend-bindings.d.ts +20 -0
- package/lib/browser/performance/measurement-frontend-bindings.d.ts.map +1 -0
- package/lib/browser/performance/measurement-frontend-bindings.js +33 -0
- package/lib/browser/performance/measurement-frontend-bindings.js.map +1 -0
- package/lib/browser/preferences/index.js +1 -1
- package/lib/browser/preferences/preference-configurations.js +4 -4
- package/lib/browser/preferences/preference-configurations.js.map +1 -1
- package/lib/browser/preferences/preference-contribution.js +8 -8
- package/lib/browser/preferences/preference-contribution.js.map +1 -1
- package/lib/browser/preferences/preference-language-override-service.d.ts +11 -0
- package/lib/browser/preferences/preference-language-override-service.d.ts.map +1 -1
- package/lib/browser/preferences/preference-language-override-service.js +21 -7
- package/lib/browser/preferences/preference-language-override-service.js.map +1 -1
- package/lib/browser/preferences/preference-provider.js +2 -2
- package/lib/browser/preferences/preference-provider.js.map +1 -1
- package/lib/browser/preferences/preference-proxy.spec.js +6 -6
- package/lib/browser/preferences/preference-proxy.spec.js.map +1 -1
- package/lib/browser/preferences/preference-schema-provider.spec.js +3 -3
- package/lib/browser/preferences/preference-schema-provider.spec.js.map +1 -1
- package/lib/browser/preferences/preference-service.js +8 -8
- package/lib/browser/preferences/preference-service.js.map +1 -1
- package/lib/browser/preferences/preference-service.spec.js +5 -5
- package/lib/browser/preferences/preference-service.spec.js.map +1 -1
- package/lib/browser/preferences/test/index.js +1 -1
- package/lib/browser/preferences/test/mock-preference-service.js +1 -1
- package/lib/browser/preferences/test/mock-preference-service.js.map +1 -1
- package/lib/browser/progress-bar.js +4 -4
- package/lib/browser/progress-bar.js.map +1 -1
- package/lib/browser/progress-client.js +3 -3
- package/lib/browser/progress-client.js.map +1 -1
- package/lib/browser/progress-location-service.js +1 -1
- package/lib/browser/progress-location-service.js.map +1 -1
- package/lib/browser/progress-location-service.spec.js +1 -1
- package/lib/browser/progress-location-service.spec.js.map +1 -1
- package/lib/browser/progress-status-bar-item.js +2 -2
- package/lib/browser/progress-status-bar-item.js.map +1 -1
- package/lib/browser/quick-input/index.js +1 -1
- package/lib/browser/quick-input/quick-command-frontend-contribution.js +5 -5
- package/lib/browser/quick-input/quick-command-frontend-contribution.js.map +1 -1
- package/lib/browser/quick-input/quick-command-service.js +9 -9
- package/lib/browser/quick-input/quick-command-service.js.map +1 -1
- package/lib/browser/quick-input/quick-help-service.js +3 -3
- package/lib/browser/quick-input/quick-help-service.js.map +1 -1
- package/lib/browser/quick-input/quick-input-frontend-contribution.js +3 -3
- package/lib/browser/quick-input/quick-input-frontend-contribution.js.map +1 -1
- package/lib/browser/quick-input/quick-input-service.js +1 -1
- package/lib/browser/quick-input/quick-input-service.spec.js +15 -15
- package/lib/browser/quick-input/quick-input-service.spec.js.map +1 -1
- package/lib/browser/quick-input/quick-pick-service-impl.d.ts.map +1 -1
- package/lib/browser/quick-input/quick-pick-service-impl.js +3 -3
- package/lib/browser/quick-input/quick-pick-service-impl.js.map +1 -1
- package/lib/browser/quick-input/quick-view-service.js +4 -4
- package/lib/browser/quick-input/quick-view-service.js.map +1 -1
- package/lib/browser/resource-context-key.js +4 -4
- package/lib/browser/resource-context-key.js.map +1 -1
- package/lib/browser/saveable.d.ts +17 -2
- package/lib/browser/saveable.d.ts.map +1 -1
- package/lib/browser/saveable.js +71 -24
- package/lib/browser/saveable.js.map +1 -1
- package/lib/browser/shell/application-shell-mouse-tracker.js +5 -5
- package/lib/browser/shell/application-shell-mouse-tracker.js.map +1 -1
- package/lib/browser/shell/application-shell.d.ts +16 -1
- package/lib/browser/shell/application-shell.d.ts.map +1 -1
- package/lib/browser/shell/application-shell.js +76 -64
- package/lib/browser/shell/application-shell.js.map +1 -1
- package/lib/browser/shell/current-widget-command-adapter.js.map +1 -1
- package/lib/browser/shell/index.js +1 -1
- package/lib/browser/shell/shell-layout-restorer.js +7 -7
- package/lib/browser/shell/shell-layout-restorer.js.map +1 -1
- package/lib/browser/shell/side-panel-handler.d.ts +1 -0
- package/lib/browser/shell/side-panel-handler.d.ts.map +1 -1
- package/lib/browser/shell/side-panel-handler.js +26 -14
- package/lib/browser/shell/side-panel-handler.js.map +1 -1
- package/lib/browser/shell/side-panel-toolbar.js.map +1 -1
- package/lib/browser/shell/sidebar-bottom-menu-widget.js +1 -1
- package/lib/browser/shell/sidebar-bottom-menu-widget.js.map +1 -1
- package/lib/browser/shell/sidebar-menu-widget.js +2 -2
- package/lib/browser/shell/sidebar-menu-widget.js.map +1 -1
- package/lib/browser/shell/sidebar-top-menu-widget.js +1 -1
- package/lib/browser/shell/sidebar-top-menu-widget.js.map +1 -1
- package/lib/browser/shell/split-panels.js +1 -1
- package/lib/browser/shell/split-panels.js.map +1 -1
- package/lib/browser/shell/tab-bar-decorator.js +3 -3
- package/lib/browser/shell/tab-bar-decorator.js.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar.d.ts.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar.js +12 -12
- package/lib/browser/shell/tab-bar-toolbar.js.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar.spec.js +14 -14
- package/lib/browser/shell/tab-bar-toolbar.spec.js.map +1 -1
- package/lib/browser/shell/tab-bars.d.ts.map +1 -1
- package/lib/browser/shell/tab-bars.js +1 -0
- package/lib/browser/shell/tab-bars.js.map +1 -1
- package/lib/browser/shell/tab-bars.spec.js +9 -9
- package/lib/browser/shell/tab-bars.spec.js.map +1 -1
- package/lib/browser/shell/theia-dock-panel.d.ts +3 -2
- package/lib/browser/shell/theia-dock-panel.d.ts.map +1 -1
- package/lib/browser/shell/theia-dock-panel.js +4 -4
- package/lib/browser/shell/theia-dock-panel.js.map +1 -1
- package/lib/browser/shell/view-contribution.js +5 -5
- package/lib/browser/shell/view-contribution.js.map +1 -1
- package/lib/browser/source-tree/index.js +1 -1
- package/lib/browser/source-tree/source-tree-widget.d.ts.map +1 -1
- package/lib/browser/source-tree/source-tree-widget.js +7 -8
- package/lib/browser/source-tree/source-tree-widget.js.map +1 -1
- package/lib/browser/source-tree/source-tree.d.ts.map +1 -1
- package/lib/browser/source-tree/source-tree.js +2 -1
- package/lib/browser/source-tree/source-tree.js.map +1 -1
- package/lib/browser/source-tree/tree-source.js +2 -2
- package/lib/browser/source-tree/tree-source.js.map +1 -1
- package/lib/browser/status-bar/index.js +1 -1
- package/lib/browser/status-bar/status-bar.js +6 -6
- package/lib/browser/status-bar/status-bar.js.map +1 -1
- package/lib/browser/storage-service.js +5 -5
- package/lib/browser/storage-service.js.map +1 -1
- package/lib/browser/storage-service.spec.js +4 -4
- package/lib/browser/storage-service.spec.js.map +1 -1
- package/lib/browser/test/mock-opener-service.js +1 -1
- package/lib/browser/test/mock-opener-service.js.map +1 -1
- package/lib/browser/test/mock-storage-service.js +1 -1
- package/lib/browser/test/mock-storage-service.js.map +1 -1
- package/lib/browser/theming.js +1 -1
- package/lib/browser/tooltip-service.js +6 -5
- package/lib/browser/tooltip-service.js.map +1 -1
- package/lib/browser/tree/fuzzy-search.js +1 -1
- package/lib/browser/tree/fuzzy-search.js.map +1 -1
- package/lib/browser/tree/fuzzy-search.spec.js +2 -2
- package/lib/browser/tree/fuzzy-search.spec.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 +2 -1
- package/lib/browser/tree/index.js.map +1 -1
- package/lib/browser/tree/test/tree-test-container.js +1 -1
- package/lib/browser/tree/test/tree-test-container.js.map +1 -1
- package/lib/browser/tree/tree-compression/compressed-tree-expansion-service.d.ts +24 -0
- package/lib/browser/tree/tree-compression/compressed-tree-expansion-service.d.ts.map +1 -0
- package/lib/browser/tree/tree-compression/compressed-tree-expansion-service.js +68 -0
- package/lib/browser/tree/tree-compression/compressed-tree-expansion-service.js.map +1 -0
- package/lib/browser/tree/tree-compression/compressed-tree-model.d.ts +39 -0
- package/lib/browser/tree/tree-compression/compressed-tree-model.d.ts.map +1 -0
- package/lib/browser/tree/tree-compression/compressed-tree-model.js +96 -0
- package/lib/browser/tree/tree-compression/compressed-tree-model.js.map +1 -0
- package/lib/browser/tree/tree-compression/compressed-tree-widget.d.ts +55 -0
- package/lib/browser/tree/tree-compression/compressed-tree-widget.d.ts.map +1 -0
- package/lib/browser/tree/tree-compression/compressed-tree-widget.js +194 -0
- package/lib/browser/tree/tree-compression/compressed-tree-widget.js.map +1 -0
- package/lib/browser/tree/tree-compression/index.d.ts +20 -0
- package/lib/browser/tree/tree-compression/index.d.ts.map +1 -0
- package/lib/browser/tree/tree-compression/index.js +32 -0
- package/lib/browser/tree/tree-compression/index.js.map +1 -0
- package/lib/browser/tree/tree-compression/tree-compression-service.d.ts +73 -0
- package/lib/browser/tree/tree-compression/tree-compression-service.d.ts.map +1 -0
- package/lib/browser/tree/tree-compression/tree-compression-service.js +100 -0
- package/lib/browser/tree/tree-compression/tree-compression-service.js.map +1 -0
- package/lib/browser/tree/tree-consistency.spec.js +2 -2
- package/lib/browser/tree/tree-consistency.spec.js.map +1 -1
- package/lib/browser/tree/tree-container.d.ts +46 -1
- package/lib/browser/tree/tree-container.d.ts.map +1 -1
- package/lib/browser/tree/tree-container.js +67 -20
- package/lib/browser/tree/tree-container.js.map +1 -1
- package/lib/browser/tree/tree-decorator.js +2 -2
- package/lib/browser/tree/tree-decorator.js.map +1 -1
- package/lib/browser/tree/tree-decorator.spec.js +10 -10
- package/lib/browser/tree/tree-decorator.spec.js.map +1 -1
- package/lib/browser/tree/tree-expansion.d.ts +1 -1
- package/lib/browser/tree/tree-expansion.d.ts.map +1 -1
- package/lib/browser/tree/tree-expansion.js +3 -3
- package/lib/browser/tree/tree-expansion.js.map +1 -1
- package/lib/browser/tree/tree-expansion.spec.js +15 -15
- package/lib/browser/tree/tree-expansion.spec.js.map +1 -1
- package/lib/browser/tree/tree-iterator.spec.js +22 -22
- package/lib/browser/tree/tree-iterator.spec.js.map +1 -1
- package/lib/browser/tree/tree-label-provider.js +1 -1
- package/lib/browser/tree/tree-label-provider.js.map +1 -1
- package/lib/browser/tree/tree-model.d.ts +2 -1
- package/lib/browser/tree/tree-model.d.ts.map +1 -1
- package/lib/browser/tree/tree-model.js +20 -19
- package/lib/browser/tree/tree-model.js.map +1 -1
- package/lib/browser/tree/tree-navigation.js +1 -1
- package/lib/browser/tree/tree-navigation.js.map +1 -1
- package/lib/browser/tree/tree-search.js +5 -5
- package/lib/browser/tree/tree-search.js.map +1 -1
- package/lib/browser/tree/tree-selection-impl.js +3 -3
- package/lib/browser/tree/tree-selection-impl.js.map +1 -1
- package/lib/browser/tree/tree-selection-state.spec.js +6 -6
- package/lib/browser/tree/tree-selection-state.spec.js.map +1 -1
- package/lib/browser/tree/tree-view-welcome-widget.d.ts.map +1 -1
- package/lib/browser/tree/tree-view-welcome-widget.js +6 -6
- package/lib/browser/tree/tree-view-welcome-widget.js.map +1 -1
- package/lib/browser/tree/tree-widget.d.ts +6 -1
- package/lib/browser/tree/tree-widget.d.ts.map +1 -1
- package/lib/browser/tree/tree-widget.js +33 -20
- package/lib/browser/tree/tree-widget.js.map +1 -1
- package/lib/browser/tree/tree.d.ts +1 -1
- package/lib/browser/tree/tree.d.ts.map +1 -1
- package/lib/browser/tree/tree.js +3 -3
- package/lib/browser/tree/tree.js.map +1 -1
- package/lib/browser/tree/tree.spec.js +11 -11
- package/lib/browser/tree/tree.spec.js.map +1 -1
- package/lib/browser/view-container.d.ts +1 -1
- package/lib/browser/view-container.d.ts.map +1 -1
- package/lib/browser/view-container.js +60 -56
- package/lib/browser/view-container.js.map +1 -1
- package/lib/browser/widget-manager.js +4 -4
- package/lib/browser/widget-manager.js.map +1 -1
- package/lib/browser/widget-manager.spec.js +3 -3
- package/lib/browser/widget-manager.spec.js.map +1 -1
- package/lib/browser/widget-open-handler.d.ts.map +1 -1
- package/lib/browser/widget-open-handler.js +5 -6
- package/lib/browser/widget-open-handler.js.map +1 -1
- package/lib/browser/widgets/alert-message.js +4 -4
- package/lib/browser/widgets/alert-message.js.map +1 -1
- package/lib/browser/widgets/index.js +1 -1
- package/lib/browser/widgets/react-renderer.js +3 -2
- package/lib/browser/widgets/react-renderer.js.map +1 -1
- package/lib/browser/widgets/react-widget.js +2 -2
- package/lib/browser/widgets/react-widget.js.map +1 -1
- package/lib/browser/widgets/widget.js +4 -4
- package/lib/browser/widgets/widget.js.map +1 -1
- package/lib/browser/window/default-window-service.js +5 -5
- package/lib/browser/window/default-window-service.js.map +1 -1
- package/lib/browser/window/test/mock-window-service.js +1 -1
- package/lib/browser/window/test/mock-window-service.js.map +1 -1
- package/lib/browser/window-contribution.js +2 -2
- package/lib/browser/window-contribution.js.map +1 -1
- package/lib/common/command.js +3 -2
- package/lib/common/command.js.map +1 -1
- package/lib/common/contribution-filter/contribution-filter-registry.d.ts +1 -1
- package/lib/common/contribution-filter/contribution-filter-registry.d.ts.map +1 -1
- package/lib/common/contribution-filter/contribution-filter-registry.js +3 -2
- package/lib/common/contribution-filter/contribution-filter-registry.js.map +1 -1
- package/lib/common/contribution-filter/index.js +1 -1
- package/lib/common/encoding-service.js +2 -2
- package/lib/common/encoding-service.js.map +1 -1
- package/lib/common/env-variables/index.js +1 -1
- package/lib/common/event.js.map +1 -1
- package/lib/common/event.spec.js +2 -2
- package/lib/common/event.spec.js.map +1 -1
- package/lib/common/index.d.ts +1 -0
- package/lib/common/index.d.ts.map +1 -1
- package/lib/common/index.js +2 -1
- package/lib/common/index.js.map +1 -1
- package/lib/common/keybinding.js.map +1 -1
- package/lib/common/logger-protocol.js +1 -1
- package/lib/common/logger-protocol.js.map +1 -1
- package/lib/common/logger-watcher.js +1 -1
- package/lib/common/logger-watcher.js.map +1 -1
- package/lib/common/logger.js +5 -5
- package/lib/common/logger.js.map +1 -1
- package/lib/common/logger.spec.js +6 -6
- package/lib/common/logger.spec.js.map +1 -1
- package/lib/common/menu.js +4 -3
- package/lib/common/menu.js.map +1 -1
- package/lib/common/message-service-protocol.js +1 -1
- package/lib/common/message-service-protocol.js.map +1 -1
- package/lib/common/message-service.js +2 -2
- package/lib/common/message-service.js.map +1 -1
- package/lib/common/messaging/abstract-connection-provider.js +2 -2
- package/lib/common/messaging/abstract-connection-provider.js.map +1 -1
- package/lib/common/messaging/index.js +1 -1
- package/lib/common/messaging/proxy-factory.js.map +1 -1
- package/lib/common/messaging/proxy-factory.spec.js +2 -2
- package/lib/common/messaging/proxy-factory.spec.js.map +1 -1
- package/lib/common/path.spec.js +16 -16
- package/lib/common/path.spec.js.map +1 -1
- package/lib/common/performance/index.d.ts +19 -0
- package/lib/common/performance/index.d.ts.map +1 -0
- package/lib/common/performance/index.js +31 -0
- package/lib/common/performance/index.js.map +1 -0
- package/lib/common/performance/measurement-protocol.d.ts +65 -0
- package/lib/common/performance/measurement-protocol.d.ts.map +1 -0
- package/lib/common/performance/measurement-protocol.js +79 -0
- package/lib/common/performance/measurement-protocol.js.map +1 -0
- package/lib/common/performance/measurement.d.ts +91 -0
- package/lib/common/performance/measurement.d.ts.map +1 -0
- package/lib/common/performance/measurement.js +18 -0
- package/lib/common/performance/measurement.js.map +1 -0
- package/lib/common/performance/stopwatch.d.ts +68 -0
- package/lib/common/performance/stopwatch.d.ts.map +1 -0
- package/lib/common/performance/stopwatch.js +134 -0
- package/lib/common/performance/stopwatch.js.map +1 -0
- package/lib/common/progress-service.js +3 -3
- package/lib/common/progress-service.js.map +1 -1
- package/lib/common/promise-util.d.ts +11 -0
- package/lib/common/promise-util.d.ts.map +1 -1
- package/lib/common/promise-util.js +18 -2
- package/lib/common/promise-util.js.map +1 -1
- package/lib/common/promise-util.spec.js +2 -2
- package/lib/common/promise-util.spec.js.map +1 -1
- package/lib/common/resource.js +5 -4
- package/lib/common/resource.js.map +1 -1
- package/lib/common/selection-service.js +1 -1
- package/lib/common/selection-service.js.map +1 -1
- package/lib/common/stream.js.map +1 -1
- package/lib/common/ternary-search-tree.js +6 -6
- package/lib/common/ternary-search-tree.js.map +1 -1
- package/lib/common/test/expect.js +1 -1
- package/lib/common/test/expect.js.map +1 -1
- package/lib/common/test/mock-logger.js +1 -1
- package/lib/common/test/mock-logger.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.d.ts +23 -1
- package/lib/common/types.d.ts.map +1 -1
- package/lib/common/types.js +26 -2
- package/lib/common/types.js.map +1 -1
- package/lib/common/uri.spec.js.map +1 -1
- package/lib/electron-browser/electron-clipboard-service.js +1 -1
- package/lib/electron-browser/electron-clipboard-service.js.map +1 -1
- package/lib/electron-browser/keyboard/electron-keyboard-layout-change-notifier.js +2 -2
- package/lib/electron-browser/keyboard/electron-keyboard-layout-change-notifier.js.map +1 -1
- package/lib/electron-browser/menu/electron-context-menu-renderer.js +8 -8
- package/lib/electron-browser/menu/electron-context-menu-renderer.js.map +1 -1
- package/lib/electron-browser/menu/electron-main-menu-factory.js +5 -5
- package/lib/electron-browser/menu/electron-main-menu-factory.js.map +1 -1
- package/lib/electron-browser/menu/electron-menu-contribution.js +7 -7
- package/lib/electron-browser/menu/electron-menu-contribution.js.map +1 -1
- package/lib/electron-browser/messaging/electron-ipc-connection-provider.js +1 -1
- package/lib/electron-browser/messaging/electron-ipc-connection-provider.js.map +1 -1
- package/lib/electron-browser/messaging/electron-ws-connection-provider.js +1 -1
- package/lib/electron-browser/messaging/electron-ws-connection-provider.js.map +1 -1
- package/lib/electron-browser/window/electron-window-module.js +1 -1
- package/lib/electron-browser/window/electron-window-module.js.map +1 -1
- package/lib/electron-browser/window/electron-window-preferences.js +1 -1
- package/lib/electron-browser/window/electron-window-preferences.js.map +1 -1
- package/lib/electron-browser/window/electron-window-service.js +4 -4
- package/lib/electron-browser/window/electron-window-service.js.map +1 -1
- package/lib/electron-main/electron-main-application-module.js +4 -4
- package/lib/electron-main/electron-main-application-module.js.map +1 -1
- package/lib/electron-main/electron-main-application.d.ts +0 -4
- package/lib/electron-main/electron-main-application.d.ts.map +1 -1
- package/lib/electron-main/electron-main-application.js +9 -29
- package/lib/electron-main/electron-main-application.js.map +1 -1
- package/lib/electron-main/electron-main-window-service-impl.js +2 -2
- package/lib/electron-main/electron-main-window-service-impl.js.map +1 -1
- package/lib/electron-main/electron-native-keymap.js +1 -1
- package/lib/electron-main/electron-native-keymap.js.map +1 -1
- package/lib/electron-main/electron-security-token-service.js +2 -2
- package/lib/electron-main/electron-security-token-service.js.map +1 -1
- package/lib/electron-main/messaging/electron-messaging-contribution.js +8 -8
- package/lib/electron-main/messaging/electron-messaging-contribution.js.map +1 -1
- package/lib/electron-node/hosting/electron-ws-origin-validator.js +1 -1
- package/lib/electron-node/hosting/electron-ws-origin-validator.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-backend-contribution.js +2 -2
- package/lib/electron-node/token/electron-token-backend-contribution.js.map +1 -1
- package/lib/electron-node/token/electron-token-messaging-contribution.js +2 -2
- package/lib/electron-node/token/electron-token-messaging-contribution.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/application-server.js +2 -2
- package/lib/node/application-server.js.map +1 -1
- package/lib/node/backend-application-config-provider.js +1 -1
- package/lib/node/backend-application-config-provider.js.map +1 -1
- package/lib/node/backend-application-config-provider.spec.js +1 -1
- package/lib/node/backend-application-config-provider.spec.js.map +1 -1
- package/lib/node/backend-application-module.d.ts.map +1 -1
- package/lib/node/backend-application-module.js +7 -4
- package/lib/node/backend-application-module.js.map +1 -1
- package/lib/node/backend-application.d.ts +2 -2
- package/lib/node/backend-application.d.ts.map +1 -1
- package/lib/node/backend-application.js +17 -35
- package/lib/node/backend-application.js.map +1 -1
- package/lib/node/cli.js +3 -2
- package/lib/node/cli.js.map +1 -1
- package/lib/node/console-logger-server.js +4 -4
- package/lib/node/console-logger-server.js.map +1 -1
- package/lib/node/console-logger-server.spec.js +5 -5
- package/lib/node/console-logger-server.spec.js.map +1 -1
- package/lib/node/env-variables/env-variables-server.js +3 -3
- package/lib/node/env-variables/env-variables-server.js.map +1 -1
- package/lib/node/env-variables/index.js +1 -1
- package/lib/node/environment-utils.js +1 -1
- package/lib/node/environment-utils.js.map +1 -1
- package/lib/node/hosting/backend-application-hosts.js +2 -2
- package/lib/node/hosting/backend-application-hosts.js.map +1 -1
- package/lib/node/hosting/ws-origin-validator.js +2 -2
- package/lib/node/hosting/ws-origin-validator.js.map +1 -1
- package/lib/node/i18n/i18n-backend-module.js +1 -1
- package/lib/node/i18n/i18n-backend-module.js.map +1 -1
- package/lib/node/i18n/localization-backend-contribution.js +3 -3
- package/lib/node/i18n/localization-backend-contribution.js.map +1 -1
- package/lib/node/i18n/localization-contribution.js +4 -4
- package/lib/node/i18n/localization-contribution.js.map +1 -1
- package/lib/node/i18n/localization-provider.js +1 -1
- package/lib/node/i18n/localization-provider.js.map +1 -1
- package/lib/node/index.js +1 -1
- package/lib/node/keytar-server.js +1 -1
- package/lib/node/keytar-server.js.map +1 -1
- package/lib/node/logger-backend-module.js +1 -1
- package/lib/node/logger-backend-module.js.map +1 -1
- package/lib/node/logger-cli-contribution.js +1 -1
- package/lib/node/logger-cli-contribution.js.map +1 -1
- package/lib/node/logger-cli-contribution.spec.js +13 -13
- package/lib/node/logger-cli-contribution.spec.js.map +1 -1
- package/lib/node/main.js +1 -1
- package/lib/node/main.js.map +1 -1
- package/lib/node/messaging/http-websocket-adapter.js +3 -3
- package/lib/node/messaging/http-websocket-adapter.js.map +1 -1
- package/lib/node/messaging/index.js +1 -1
- package/lib/node/messaging/ipc-bootstrap.js +3 -3
- package/lib/node/messaging/ipc-bootstrap.js.map +1 -1
- package/lib/node/messaging/ipc-connection-provider.d.ts.map +1 -1
- package/lib/node/messaging/ipc-connection-provider.js +11 -7
- package/lib/node/messaging/ipc-connection-provider.js.map +1 -1
- package/lib/node/messaging/messaging-backend-module.js +3 -3
- package/lib/node/messaging/messaging-backend-module.js.map +1 -1
- package/lib/node/messaging/messaging-contribution.js +14 -14
- package/lib/node/messaging/messaging-contribution.js.map +1 -1
- package/lib/node/messaging/messaging-listeners.js +3 -3
- package/lib/node/messaging/messaging-listeners.js.map +1 -1
- package/lib/node/performance/index.d.ts +18 -0
- package/lib/node/performance/index.d.ts.map +1 -0
- package/lib/node/performance/index.js +30 -0
- package/lib/node/performance/index.js.map +1 -0
- package/lib/node/performance/measurement-backend-bindings.d.ts +20 -0
- package/lib/node/performance/measurement-backend-bindings.d.ts.map +1 -0
- package/lib/node/performance/measurement-backend-bindings.js +31 -0
- package/lib/node/performance/measurement-backend-bindings.js.map +1 -0
- package/lib/node/performance/node-stopwatch.d.ts +21 -0
- package/lib/node/performance/node-stopwatch.d.ts.map +1 -0
- package/lib/node/performance/node-stopwatch.js +52 -0
- package/lib/node/performance/node-stopwatch.js.map +1 -0
- package/lib/node/process-utils.js +1 -1
- package/lib/node/process-utils.js.map +1 -1
- package/lib/node/process-utils.spec.js +1 -1
- package/lib/node/process-utils.spec.js.map +1 -1
- package/lib/node/ws-request-validators.js +3 -3
- package/lib/node/ws-request-validators.js.map +1 -1
- package/package.json +3 -3
- package/src/browser/authentication-service.ts +103 -59
- package/src/browser/frontend-application-module.ts +4 -0
- package/src/browser/frontend-application.ts +17 -22
- package/src/browser/performance/frontend-stopwatch.ts +62 -0
- package/src/browser/performance/index.ts +18 -0
- package/src/browser/performance/measurement-frontend-bindings.ts +31 -0
- package/src/browser/preferences/preference-language-override-service.ts +17 -3
- package/src/browser/saveable.ts +84 -27
- package/src/browser/shell/application-shell.ts +42 -28
- package/src/browser/shell/side-panel-handler.ts +12 -0
- package/src/browser/shell/tab-bars.ts +1 -0
- package/src/browser/source-tree/source-tree-widget.tsx +6 -9
- package/src/browser/source-tree/source-tree.ts +6 -4
- package/src/browser/style/sidepanel.css +4 -0
- package/src/browser/style/view-container.css +0 -8
- package/src/browser/tree/index.ts +1 -0
- package/src/browser/tree/tree-compression/compressed-tree-expansion-service.ts +46 -0
- package/src/browser/tree/tree-compression/compressed-tree-model.ts +82 -0
- package/src/browser/tree/tree-compression/compressed-tree-widget.tsx +181 -0
- package/src/browser/tree/tree-compression/index.ts +20 -0
- package/src/browser/tree/tree-compression/tree-compression-service.ts +121 -0
- package/src/browser/tree/tree-compression/tree-compression.css +28 -0
- package/src/browser/tree/tree-container.ts +107 -29
- package/src/browser/tree/tree-expansion.ts +1 -1
- package/src/browser/tree/tree-model.ts +13 -11
- package/src/browser/tree/tree-widget.tsx +30 -12
- package/src/browser/tree/tree.ts +2 -2
- package/src/browser/view-container.ts +27 -23
- package/src/browser/widget-open-handler.ts +1 -3
- package/src/common/event.ts +2 -2
- package/src/common/index.ts +1 -0
- package/src/common/messaging/proxy-factory.ts +1 -1
- package/src/common/performance/index.ts +19 -0
- package/src/common/performance/measurement-protocol.ts +104 -0
- package/src/common/performance/measurement.ts +104 -0
- package/src/common/performance/stopwatch.ts +157 -0
- package/src/common/promise-util.ts +16 -0
- package/src/common/types.ts +41 -1
- package/src/electron-browser/menu/electron-menu-contribution.ts +1 -1
- package/src/electron-main/electron-main-application.ts +1 -22
- package/src/node/backend-application-module.ts +4 -0
- package/src/node/backend-application.ts +10 -33
- package/src/node/messaging/ipc-connection-provider.ts +9 -5
- package/src/node/performance/index.ts +18 -0
- package/src/node/performance/measurement-backend-bindings.ts +35 -0
- package/src/node/performance/node-stopwatch.ts +40 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2021 SAP SE or an SAP affiliate company 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 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
|
|
17
|
+
import { injectable } from 'inversify';
|
|
18
|
+
import { ArrayUtils } from '../../../common/types';
|
|
19
|
+
import { TreeNode } from '../tree';
|
|
20
|
+
import { ExpandableTreeNode } from '../tree-expansion';
|
|
21
|
+
|
|
22
|
+
export interface CompressionParent extends ExpandableTreeNode {
|
|
23
|
+
children: [CompressionChild];
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export interface CompressionChild extends ExpandableTreeNode {
|
|
27
|
+
parent: CompressionParent;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export type CompressionParticipant = CompressionChild | CompressionParent;
|
|
31
|
+
|
|
32
|
+
export interface CompressionHead extends CompressionParent {
|
|
33
|
+
parent: ExpandableTreeNode;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export interface CompressionTail extends CompressionChild { }
|
|
37
|
+
|
|
38
|
+
export const CompressionToggle = Symbol('CompressionToggle');
|
|
39
|
+
export interface CompressionToggle {
|
|
40
|
+
compress: boolean;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
@injectable()
|
|
44
|
+
export class TreeCompressionService {
|
|
45
|
+
/**
|
|
46
|
+
* @returns `true` if the node has a single child that is a CompositeTreeNode
|
|
47
|
+
* In that case, the child can be shown in the same row as the parent.
|
|
48
|
+
*/
|
|
49
|
+
isCompressionParent(node?: unknown): node is CompressionParent {
|
|
50
|
+
return ExpandableTreeNode.is(node) && node.children.length === 1 && ExpandableTreeNode.is(node.children[0]);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* @returns `true` if the node is a CompositeTreeNode and is its parent's sole child
|
|
55
|
+
* In that case, the node can be shown in the same row as its parent.
|
|
56
|
+
*/
|
|
57
|
+
isCompressionChild(node?: TreeNode): node is CompressionChild {
|
|
58
|
+
return this.isCompressionParent(node?.parent);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* @returns `true` if the node is a CompositeTreeNode with a sole child, and the same is not true of its parent.
|
|
63
|
+
* In that case, the node will appear as the first member of a compressed row.
|
|
64
|
+
*/
|
|
65
|
+
isCompressionHead(node?: unknown): node is CompressionHead {
|
|
66
|
+
return this.isCompressionParent(node) && !this.isCompressionParent(node.parent);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* @returns `true` if the node's parent is a CompositeTreeNode with a sole child, and the same is not true of the node.
|
|
71
|
+
* In that case, the node will appear as the last member of a compressed row.
|
|
72
|
+
*/
|
|
73
|
+
isCompressionTail(node?: TreeNode): node is CompressionTail {
|
|
74
|
+
return this.isCompressionChild(node) && !this.isCompressionParent(node);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* @returns `true` if the node is part of a compression row, either a {@link CompressionChild} or {@link CompressionParent}
|
|
79
|
+
*/
|
|
80
|
+
isCompressionParticipant(node?: TreeNode): node is CompressionParticipant {
|
|
81
|
+
return this.isCompressionParent(node) || this.isCompressionChild(node);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* @returns a sequence of compressed items for the node if it is a {@link CompressionHead}.
|
|
86
|
+
*/
|
|
87
|
+
getCompressedChildren(node?: CompressionHead): ArrayUtils.Tail<CompressionChild>;
|
|
88
|
+
getCompressedChildren(node: unknown): ArrayUtils.Tail<CompressionChild> | undefined {
|
|
89
|
+
if (this.isCompressionHead(node)) {
|
|
90
|
+
const items = [];
|
|
91
|
+
let next: TreeNode = node.children[0];
|
|
92
|
+
while (this.isCompressionChild(next)) {
|
|
93
|
+
items.push(next);
|
|
94
|
+
next = next.children[0];
|
|
95
|
+
}
|
|
96
|
+
return ArrayUtils.asTail(items);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* @returns The {@link CompressionHead} of the node's compression chain, or undefined if the node is not a {@link CompressionParticipant}.
|
|
102
|
+
*/
|
|
103
|
+
getCompressionHead(node?: TreeNode): CompressionHead | undefined {
|
|
104
|
+
while (this.isCompressionParticipant(node)) {
|
|
105
|
+
if (this.isCompressionHead(node)) {
|
|
106
|
+
return node;
|
|
107
|
+
}
|
|
108
|
+
node = node.parent;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* @returns The compression chain of which the `node` is a part, or `undefined` if the `node` is not a {@link CompressionParticipant}
|
|
114
|
+
*/
|
|
115
|
+
getCompressionChain(node?: TreeNode): ArrayUtils.HeadAndTail<CompressionParticipant> | undefined {
|
|
116
|
+
const head = this.getCompressionHead(node);
|
|
117
|
+
if (head) {
|
|
118
|
+
return ArrayUtils.asHeadAndTail([head as CompressionParticipant].concat(this.getCompressedChildren(head)));
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (C) 2022 Ericsson and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
|
|
17
|
+
.theia-tree-compressed-selected {
|
|
18
|
+
text-decoration: underline;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.theia-tree-compressed-label-separator {
|
|
22
|
+
padding: 0 2px;
|
|
23
|
+
opacity: 0.5;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.theia-tree-compressed-label-part:hover {
|
|
27
|
+
text-decoration: underline;
|
|
28
|
+
}
|
|
@@ -25,45 +25,123 @@ import { TreeNavigationService } from './tree-navigation';
|
|
|
25
25
|
import { TreeDecoratorService, NoopTreeDecoratorService } from './tree-decorator';
|
|
26
26
|
import { TreeSearch } from './tree-search';
|
|
27
27
|
import { FuzzySearch } from './fuzzy-search';
|
|
28
|
-
import { SearchBox, SearchBoxFactory
|
|
28
|
+
import { SearchBox, SearchBoxFactory } from './search-box';
|
|
29
29
|
import { SearchBoxDebounce } from './search-box-debounce';
|
|
30
|
-
import { TreeViewWelcomeWidget } from './tree-view-welcome-widget';
|
|
31
30
|
|
|
32
|
-
|
|
31
|
+
function isTreeServices(candidate?: Partial<TreeProps> | Partial<TreeContainerProps>): candidate is TreeContainerProps {
|
|
32
|
+
if (candidate) {
|
|
33
|
+
const maybeServices = candidate as TreeContainerProps;
|
|
34
|
+
for (const key of Object.keys(maybeServices)) {
|
|
35
|
+
if (key in defaultImplementations) {
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export function createTreeContainer(parent: interfaces.Container, props?: Partial<TreeContainerProps>): Container;
|
|
44
|
+
/**
|
|
45
|
+
* @deprecated Please use TreeContainerProps instead of TreeProps
|
|
46
|
+
* @since 1.23.0
|
|
47
|
+
*/
|
|
48
|
+
export function createTreeContainer(parent: interfaces.Container, props?: Partial<TreeProps>): Container;
|
|
49
|
+
export function createTreeContainer(parent: interfaces.Container, props?: Partial<TreeProps> | Partial<TreeContainerProps>): Container {
|
|
33
50
|
const child = new Container({ defaultScope: 'Singleton' });
|
|
34
51
|
child.parent = parent;
|
|
52
|
+
const overrideServices: Partial<TreeServiceProviders> = isTreeServices(props) ? props : {};
|
|
53
|
+
for (const key of Object.keys(serviceIdentifiers) as (keyof TreeIdentifiers)[]) {
|
|
54
|
+
if (key === 'props') {
|
|
55
|
+
const { service, identifier } = getServiceAndIdentifier(key, overrideServices);
|
|
56
|
+
child.bind(identifier).toConstantValue({
|
|
57
|
+
...defaultImplementations.props,
|
|
58
|
+
...service
|
|
59
|
+
});
|
|
60
|
+
} else if (key === 'searchBoxFactory') {
|
|
61
|
+
const { service, identifier } = getServiceAndIdentifier(key, overrideServices);
|
|
62
|
+
child.bind(identifier).toFactory(context => service(context));
|
|
63
|
+
} else {
|
|
64
|
+
const { service, identifier } = getServiceAndIdentifier(key, overrideServices);
|
|
65
|
+
child.bind(service).toSelf().inSingletonScope();
|
|
66
|
+
if (identifier !== service) {
|
|
67
|
+
child.bind(identifier as interfaces.ServiceIdentifier<typeof service>).toService(service);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return child;
|
|
72
|
+
}
|
|
35
73
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
74
|
+
function getServiceAndIdentifier<Key extends keyof TreeIdentifiers>(
|
|
75
|
+
key: Key, overrides: Partial<TreeContainerProps>
|
|
76
|
+
): { service: TreeContainerProps[Key], identifier: TreeIdentifiers[Key] } {
|
|
77
|
+
const override = overrides[key] as TreeContainerProps[Key] | undefined;
|
|
78
|
+
const service = override ?? defaultImplementations[key];
|
|
79
|
+
return {
|
|
80
|
+
service,
|
|
81
|
+
identifier: serviceIdentifiers[key]
|
|
82
|
+
};
|
|
83
|
+
}
|
|
41
84
|
|
|
42
|
-
|
|
43
|
-
|
|
85
|
+
export interface SearchBoxFactoryFactory {
|
|
86
|
+
(context: interfaces.Context): SearchBoxFactory;
|
|
87
|
+
}
|
|
44
88
|
|
|
45
|
-
|
|
89
|
+
const defaultSearchBoxFactoryFactory: SearchBoxFactoryFactory = () => options => {
|
|
90
|
+
const debounce = new SearchBoxDebounce(options);
|
|
91
|
+
return new SearchBox(options, debounce);
|
|
92
|
+
};
|
|
46
93
|
|
|
47
|
-
|
|
48
|
-
|
|
94
|
+
interface TreeConstants {
|
|
95
|
+
searchBoxFactory: SearchBoxFactory,
|
|
96
|
+
props: TreeProps,
|
|
97
|
+
}
|
|
49
98
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
99
|
+
interface TreeServices {
|
|
100
|
+
tree: Tree,
|
|
101
|
+
selectionService: TreeSelectionService,
|
|
102
|
+
expansionService: TreeExpansionService,
|
|
103
|
+
navigationService: TreeNavigationService,
|
|
104
|
+
model: TreeModel,
|
|
105
|
+
widget: TreeWidget,
|
|
106
|
+
search: TreeSearch,
|
|
107
|
+
fuzzy: FuzzySearch,
|
|
108
|
+
decoratorService: TreeDecoratorService,
|
|
109
|
+
}
|
|
55
110
|
|
|
56
|
-
|
|
111
|
+
interface TreeTypes extends TreeServices, TreeConstants { }
|
|
57
112
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
child.bind(SearchBoxFactory).toFactory(context =>
|
|
61
|
-
(options: SearchBoxProps) => {
|
|
62
|
-
const debounce = new SearchBoxDebounce(options);
|
|
63
|
-
return new SearchBox(options, debounce);
|
|
64
|
-
}
|
|
65
|
-
);
|
|
113
|
+
export type TreeIdentifiers = { [K in keyof TreeTypes]: interfaces.ServiceIdentifier<TreeTypes[K]>; };
|
|
114
|
+
type TreeServiceProviders = { [K in keyof TreeServices]: interfaces.Newable<TreeServices[K]> };
|
|
66
115
|
|
|
67
|
-
|
|
68
|
-
|
|
116
|
+
export interface TreeContainerProps extends TreeServiceProviders {
|
|
117
|
+
props: Partial<TreeProps>,
|
|
118
|
+
searchBoxFactory: SearchBoxFactoryFactory;
|
|
69
119
|
}
|
|
120
|
+
|
|
121
|
+
const defaultImplementations: TreeContainerProps & { props: TreeProps } = {
|
|
122
|
+
tree: TreeImpl,
|
|
123
|
+
selectionService: TreeSelectionServiceImpl,
|
|
124
|
+
expansionService: TreeExpansionServiceImpl,
|
|
125
|
+
navigationService: TreeNavigationService,
|
|
126
|
+
model: TreeModelImpl,
|
|
127
|
+
widget: TreeWidget,
|
|
128
|
+
search: TreeSearch,
|
|
129
|
+
fuzzy: FuzzySearch,
|
|
130
|
+
decoratorService: NoopTreeDecoratorService,
|
|
131
|
+
props: defaultTreeProps,
|
|
132
|
+
searchBoxFactory: defaultSearchBoxFactoryFactory,
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
const serviceIdentifiers: TreeIdentifiers = {
|
|
136
|
+
tree: Tree,
|
|
137
|
+
selectionService: TreeSelectionService,
|
|
138
|
+
expansionService: TreeExpansionService,
|
|
139
|
+
navigationService: TreeNavigationService,
|
|
140
|
+
model: TreeModel,
|
|
141
|
+
widget: TreeWidget,
|
|
142
|
+
props: TreeProps,
|
|
143
|
+
search: TreeSearch,
|
|
144
|
+
fuzzy: FuzzySearch,
|
|
145
|
+
searchBoxFactory: SearchBoxFactory,
|
|
146
|
+
decoratorService: TreeDecoratorService,
|
|
147
|
+
};
|
|
@@ -65,7 +65,7 @@ export interface ExpandableTreeNode extends CompositeTreeNode {
|
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
export namespace ExpandableTreeNode {
|
|
68
|
-
export function is(node:
|
|
68
|
+
export function is(node: unknown): node is ExpandableTreeNode {
|
|
69
69
|
return !!node && CompositeTreeNode.is(node) && 'expanded' in node;
|
|
70
70
|
}
|
|
71
71
|
|
|
@@ -180,7 +180,7 @@ export class TreeModelImpl implements TreeModel, SelectionProvider<ReadonlyArray
|
|
|
180
180
|
* Select the given node if it is the ancestor of a selected node.
|
|
181
181
|
*/
|
|
182
182
|
protected selectIfAncestorOfSelected(node: Readonly<ExpandableTreeNode>): void {
|
|
183
|
-
if (!node.expanded &&
|
|
183
|
+
if (!node.expanded && this.selectedNodes.some(selectedNode => CompositeTreeNode.isAncestor(node, selectedNode))) {
|
|
184
184
|
if (SelectableTreeNode.isVisible(node)) {
|
|
185
185
|
this.selectNode(node);
|
|
186
186
|
}
|
|
@@ -273,7 +273,6 @@ export class TreeModelImpl implements TreeModel, SelectionProvider<ReadonlyArray
|
|
|
273
273
|
for (const node of raw ? [raw] : this.selectedNodes) {
|
|
274
274
|
if (ExpandableTreeNode.is(node)) {
|
|
275
275
|
await this.expansionService.toggleNodeExpansion(node);
|
|
276
|
-
return;
|
|
277
276
|
}
|
|
278
277
|
}
|
|
279
278
|
}
|
|
@@ -287,7 +286,7 @@ export class TreeModelImpl implements TreeModel, SelectionProvider<ReadonlyArray
|
|
|
287
286
|
|
|
288
287
|
getPrevSelectableNode(node: TreeNode = this.selectedNodes[0]): SelectableTreeNode | undefined {
|
|
289
288
|
const iterator = this.createBackwardIterator(node);
|
|
290
|
-
return iterator && this.doGetNextNode(iterator);
|
|
289
|
+
return iterator && this.doGetNextNode(iterator, this.isVisibleSelectableNode.bind(this));
|
|
291
290
|
}
|
|
292
291
|
|
|
293
292
|
selectNextNode(type: TreeSelection.SelectionType = TreeSelection.SelectionType.DEFAULT): void {
|
|
@@ -299,20 +298,19 @@ export class TreeModelImpl implements TreeModel, SelectionProvider<ReadonlyArray
|
|
|
299
298
|
|
|
300
299
|
getNextSelectableNode(node: TreeNode = this.selectedNodes[0]): SelectableTreeNode | undefined {
|
|
301
300
|
const iterator = this.createIterator(node);
|
|
302
|
-
return iterator && this.doGetNextNode(iterator);
|
|
301
|
+
return iterator && this.doGetNextNode(iterator, this.isVisibleSelectableNode.bind(this));
|
|
303
302
|
}
|
|
304
303
|
|
|
305
|
-
protected doGetNextNode(iterator: TreeIterator):
|
|
304
|
+
protected doGetNextNode<T extends TreeNode>(iterator: TreeIterator, criterion: (node: TreeNode) => node is T): T | undefined {
|
|
306
305
|
// Skip the first item. // TODO: clean this up, and skip the first item in a different way without loading everything.
|
|
307
306
|
iterator.next();
|
|
308
307
|
let result = iterator.next();
|
|
309
|
-
while (!result.done
|
|
308
|
+
while (!result.done) {
|
|
309
|
+
if (criterion(result.value)) {
|
|
310
|
+
return result.value;
|
|
311
|
+
}
|
|
310
312
|
result = iterator.next();
|
|
311
313
|
}
|
|
312
|
-
const node = result.value;
|
|
313
|
-
if (SelectableTreeNode.isVisible(node)) {
|
|
314
|
-
return node;
|
|
315
|
-
}
|
|
316
314
|
return undefined;
|
|
317
315
|
}
|
|
318
316
|
|
|
@@ -334,7 +332,7 @@ export class TreeModelImpl implements TreeModel, SelectionProvider<ReadonlyArray
|
|
|
334
332
|
protected createIterator(node: TreeNode | undefined): TreeIterator | undefined {
|
|
335
333
|
const { filteredNodes } = this.treeSearch;
|
|
336
334
|
if (filteredNodes.length === 0) {
|
|
337
|
-
return node
|
|
335
|
+
return node && this.createForwardIteratorForNode(node);
|
|
338
336
|
}
|
|
339
337
|
if (node && filteredNodes.indexOf(node) === -1) {
|
|
340
338
|
return undefined;
|
|
@@ -342,6 +340,10 @@ export class TreeModelImpl implements TreeModel, SelectionProvider<ReadonlyArray
|
|
|
342
340
|
return Iterators.cycle(filteredNodes, node);
|
|
343
341
|
}
|
|
344
342
|
|
|
343
|
+
protected createForwardIteratorForNode(node: TreeNode): TreeIterator {
|
|
344
|
+
return new TopDownTreeIterator(node, { pruneCollapsed: true });
|
|
345
|
+
}
|
|
346
|
+
|
|
345
347
|
openNode(raw?: TreeNode | undefined): void {
|
|
346
348
|
const node = raw || this.selectedNodes[0];
|
|
347
349
|
if (node) {
|
|
@@ -303,16 +303,11 @@ export class TreeWidget extends ReactWidget implements StatefulWidget {
|
|
|
303
303
|
pruneSiblings: true
|
|
304
304
|
})) {
|
|
305
305
|
if (this.shouldDisplayNode(node)) {
|
|
306
|
-
const
|
|
307
|
-
const depth = parentDepth === undefined ? 0 : TreeNode.isVisible(node.parent) ? parentDepth + 1 : parentDepth;
|
|
306
|
+
const depth = this.getDepthForNode(node, depths);
|
|
308
307
|
if (CompositeTreeNode.is(node)) {
|
|
309
308
|
depths.set(node, depth);
|
|
310
309
|
}
|
|
311
|
-
rowsToUpdate.push([node.id,
|
|
312
|
-
index: index++,
|
|
313
|
-
node,
|
|
314
|
-
depth
|
|
315
|
-
}]);
|
|
310
|
+
rowsToUpdate.push([node.id, this.toNodeRow(node, index++, depth)]);
|
|
316
311
|
}
|
|
317
312
|
}
|
|
318
313
|
}
|
|
@@ -320,6 +315,15 @@ export class TreeWidget extends ReactWidget implements StatefulWidget {
|
|
|
320
315
|
this.updateScrollToRow();
|
|
321
316
|
}
|
|
322
317
|
|
|
318
|
+
protected getDepthForNode(node: TreeNode, depths: Map<CompositeTreeNode | undefined, number>): number {
|
|
319
|
+
const parentDepth = depths.get(node.parent);
|
|
320
|
+
return parentDepth === undefined ? 0 : TreeNode.isVisible(node.parent) ? parentDepth + 1 : parentDepth;
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
protected toNodeRow(node: TreeNode, index: number, depth: number): TreeWidget.NodeRow {
|
|
324
|
+
return { node, index, depth };
|
|
325
|
+
}
|
|
326
|
+
|
|
323
327
|
protected shouldDisplayNode(node: TreeNode): boolean {
|
|
324
328
|
return TreeNode.isVisible(node) && (!this.searchBox?.isFiltering || this.treeSearch.passesFilters(node));
|
|
325
329
|
}
|
|
@@ -585,6 +589,12 @@ export class TreeWidget extends ReactWidget implements StatefulWidget {
|
|
|
585
589
|
* @param props the node properties.
|
|
586
590
|
*/
|
|
587
591
|
protected renderCaption(node: TreeNode, props: NodeProps): React.ReactNode {
|
|
592
|
+
const attrs = this.getCaptionAttributes(node, props);
|
|
593
|
+
const children = this.getCaptionChildren(node, props);
|
|
594
|
+
return React.createElement('div', attrs, children);
|
|
595
|
+
}
|
|
596
|
+
|
|
597
|
+
protected getCaptionAttributes(node: TreeNode, props: NodeProps): React.Attributes & React.HTMLAttributes<HTMLElement> {
|
|
588
598
|
const tooltip = this.getDecorationData(node, 'tooltip').filter(notEmpty).join(' • ');
|
|
589
599
|
const classes = [TREE_NODE_SEGMENT_CLASS];
|
|
590
600
|
if (!this.hasTrailingSuffixes(node)) {
|
|
@@ -600,7 +610,11 @@ export class TreeWidget extends ReactWidget implements StatefulWidget {
|
|
|
600
610
|
title: tooltip
|
|
601
611
|
};
|
|
602
612
|
}
|
|
603
|
-
|
|
613
|
+
return attrs;
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
protected getCaptionChildren(node: TreeNode, props: NodeProps): React.ReactNode {
|
|
617
|
+
const children = [];
|
|
604
618
|
const caption = this.toNodeName(node);
|
|
605
619
|
const highlight = this.getDecorationData(node, 'highlight')[0];
|
|
606
620
|
if (highlight) {
|
|
@@ -612,7 +626,7 @@ export class TreeWidget extends ReactWidget implements StatefulWidget {
|
|
|
612
626
|
} else if (!highlight) {
|
|
613
627
|
children.push(caption);
|
|
614
628
|
}
|
|
615
|
-
return
|
|
629
|
+
return children;
|
|
616
630
|
}
|
|
617
631
|
|
|
618
632
|
/**
|
|
@@ -925,7 +939,7 @@ export class TreeWidget extends ReactWidget implements StatefulWidget {
|
|
|
925
939
|
if (this.isExpandable(node)) {
|
|
926
940
|
classNames.push(EXPANDABLE_TREE_NODE_CLASS);
|
|
927
941
|
}
|
|
928
|
-
if (
|
|
942
|
+
if (this.rowIsSelected(node, props)) {
|
|
929
943
|
classNames.push(SELECTED_CLASS);
|
|
930
944
|
}
|
|
931
945
|
if (SelectableTreeNode.hasFocus(node)) {
|
|
@@ -934,6 +948,10 @@ export class TreeWidget extends ReactWidget implements StatefulWidget {
|
|
|
934
948
|
return classNames;
|
|
935
949
|
}
|
|
936
950
|
|
|
951
|
+
protected rowIsSelected(node: TreeNode, props: NodeProps): boolean {
|
|
952
|
+
return SelectableTreeNode.isSelected(node);
|
|
953
|
+
}
|
|
954
|
+
|
|
937
955
|
/**
|
|
938
956
|
* Get the default node style.
|
|
939
957
|
* @param node the tree node.
|
|
@@ -1096,7 +1114,7 @@ export class TreeWidget extends ReactWidget implements StatefulWidget {
|
|
|
1096
1114
|
if (!!this.props.multiSelect && (this.hasCtrlCmdMask(event) || this.hasShiftMask(event))) {
|
|
1097
1115
|
return;
|
|
1098
1116
|
}
|
|
1099
|
-
if (!
|
|
1117
|
+
if (!await this.model.collapseNode()) {
|
|
1100
1118
|
this.model.selectParent();
|
|
1101
1119
|
}
|
|
1102
1120
|
}
|
|
@@ -1109,7 +1127,7 @@ export class TreeWidget extends ReactWidget implements StatefulWidget {
|
|
|
1109
1127
|
if (!!this.props.multiSelect && (this.hasCtrlCmdMask(event) || this.hasShiftMask(event))) {
|
|
1110
1128
|
return;
|
|
1111
1129
|
}
|
|
1112
|
-
if (!
|
|
1130
|
+
if (!await this.model.expandNode()) {
|
|
1113
1131
|
this.model.selectNextNode();
|
|
1114
1132
|
}
|
|
1115
1133
|
}
|
package/src/browser/tree/tree.ts
CHANGED
|
@@ -147,8 +147,8 @@ export interface CompositeTreeNode extends TreeNode {
|
|
|
147
147
|
}
|
|
148
148
|
|
|
149
149
|
export namespace CompositeTreeNode {
|
|
150
|
-
export function is(node:
|
|
151
|
-
return !!node && 'children' in node;
|
|
150
|
+
export function is(node: unknown): node is CompositeTreeNode {
|
|
151
|
+
return typeof node === 'object' && !!node && 'children' in node;
|
|
152
152
|
}
|
|
153
153
|
|
|
154
154
|
export function getFirstChild(parent: CompositeTreeNode): TreeNode | undefined {
|
|
@@ -580,6 +580,9 @@ export class ViewContainer extends BaseWidget implements StatefulWidget, Applica
|
|
|
580
580
|
if (this.titleOptions) {
|
|
581
581
|
this.menuRegistry.registerMenuAction([...SIDE_PANEL_TOOLBAR_CONTEXT_MENU, 'navigation'], action);
|
|
582
582
|
}
|
|
583
|
+
|
|
584
|
+
ViewContainer.updateSashState(SashType.TopSash, part.node.previousElementSibling, part.collapsed);
|
|
585
|
+
ViewContainer.updateSashState(SashType.BottomSash, part.node.nextElementSibling, part.collapsed);
|
|
583
586
|
}
|
|
584
587
|
|
|
585
588
|
protected unregisterPart(part: ViewContainerPart): void {
|
|
@@ -885,6 +888,27 @@ export namespace ViewContainer {
|
|
|
885
888
|
}
|
|
886
889
|
return 'vertical';
|
|
887
890
|
}
|
|
891
|
+
|
|
892
|
+
export function updateSashState(sashType: SashType, sashElement: Element | null, activeContainerCollapsed: boolean): void {
|
|
893
|
+
if (sashElement && sashElement.className.includes('p-SplitPanel-handle')) {
|
|
894
|
+
// Hide the sash when the active `horizontal` container in the left panel is collapsed
|
|
895
|
+
sashElement.classList.toggle('sash-hidden', activeContainerCollapsed);
|
|
896
|
+
|
|
897
|
+
let adjacentContainer: Element | null;
|
|
898
|
+
if (sashType === SashType.TopSash) {
|
|
899
|
+
adjacentContainer = sashElement.previousElementSibling;
|
|
900
|
+
} else {
|
|
901
|
+
adjacentContainer = sashElement.nextElementSibling;
|
|
902
|
+
}
|
|
903
|
+
|
|
904
|
+
// Sash should only appear when the following two conditions are met:
|
|
905
|
+
// 1. the active `horizontal` container is expanded
|
|
906
|
+
// 2. the container that is above/below the active `horizontal` container is also expanded
|
|
907
|
+
if (!activeContainerCollapsed && adjacentContainer) {
|
|
908
|
+
sashElement.classList.toggle('sash-hidden', adjacentContainer.className.includes('collapsed'));
|
|
909
|
+
}
|
|
910
|
+
}
|
|
911
|
+
}
|
|
888
912
|
}
|
|
889
913
|
|
|
890
914
|
/**
|
|
@@ -1001,8 +1025,8 @@ export class ViewContainerPart extends BaseWidget {
|
|
|
1001
1025
|
this.node.classList.toggle('collapsed', collapsed);
|
|
1002
1026
|
|
|
1003
1027
|
// Update the sashes for the active `horizontal` container when the container is collapsed/expanded
|
|
1004
|
-
|
|
1005
|
-
|
|
1028
|
+
ViewContainer.updateSashState(SashType.TopSash, this.node.previousElementSibling, collapsed);
|
|
1029
|
+
ViewContainer.updateSashState(SashType.BottomSash, this.node.nextElementSibling, collapsed);
|
|
1006
1030
|
|
|
1007
1031
|
if (collapsed && this.wrapped.node.contains(document.activeElement)) {
|
|
1008
1032
|
this.header.focus();
|
|
@@ -1239,27 +1263,6 @@ export class ViewContainerPart extends BaseWidget {
|
|
|
1239
1263
|
this.wrapped.activate();
|
|
1240
1264
|
}
|
|
1241
1265
|
}
|
|
1242
|
-
|
|
1243
|
-
protected updateSashState(sashType: SashType, sashElement: Element | null, activeContainerCollapsed: boolean): void {
|
|
1244
|
-
if (sashElement && sashElement.className.includes('p-SplitPanel-handle')) {
|
|
1245
|
-
// Hide the sash when the active `horizontal` container in the left panel is collapsed
|
|
1246
|
-
sashElement.classList.toggle('sash-hidden', activeContainerCollapsed);
|
|
1247
|
-
|
|
1248
|
-
let adjacentContainer: Element | null;
|
|
1249
|
-
if (sashType === SashType.TopSash) {
|
|
1250
|
-
adjacentContainer = sashElement.previousElementSibling;
|
|
1251
|
-
} else {
|
|
1252
|
-
adjacentContainer = sashElement.nextElementSibling;
|
|
1253
|
-
}
|
|
1254
|
-
|
|
1255
|
-
// Sash should only appear when the following two conditions are met:
|
|
1256
|
-
// 1. the active `horizontal` container is expanded
|
|
1257
|
-
// 2. the container that is above/below the active `horizontal` container is also expanded
|
|
1258
|
-
if (!activeContainerCollapsed && adjacentContainer) {
|
|
1259
|
-
sashElement.classList.toggle('sash-hidden', adjacentContainer.className.includes('collapsed'));
|
|
1260
|
-
}
|
|
1261
|
-
}
|
|
1262
|
-
}
|
|
1263
1266
|
}
|
|
1264
1267
|
|
|
1265
1268
|
export namespace ViewContainerPart {
|
|
@@ -1307,6 +1310,7 @@ export class ViewContainerLayout extends SplitLayout {
|
|
|
1307
1310
|
return map(this.items, item => item.widget);
|
|
1308
1311
|
}
|
|
1309
1312
|
|
|
1313
|
+
// @ts-expect-error TS2611 `SplitLayout.widgets` is declared as `readonly widgets` but is implemented as a getter.
|
|
1310
1314
|
get widgets(): ViewContainerPart[] {
|
|
1311
1315
|
return toArray(this.iter());
|
|
1312
1316
|
}
|
|
@@ -160,8 +160,6 @@ export abstract class WidgetOpenHandler<W extends BaseWidget> implements OpenHan
|
|
|
160
160
|
* @returns a promise of all closed widgets that resolves after they have been closed.
|
|
161
161
|
*/
|
|
162
162
|
async closeAll(options?: ApplicationShell.CloseOptions): Promise<W[]> {
|
|
163
|
-
|
|
164
|
-
return closed.filter(widget => !!widget) as W[];
|
|
163
|
+
return this.shell.closeMany(this.all, options) as Promise<W[]>;
|
|
165
164
|
}
|
|
166
|
-
|
|
167
165
|
}
|
package/src/common/event.ts
CHANGED
|
@@ -330,7 +330,7 @@ export namespace WaitUntilEvent {
|
|
|
330
330
|
// Asynchronous calls to `waitUntil` should fail.
|
|
331
331
|
Object.freeze(waitables);
|
|
332
332
|
} finally {
|
|
333
|
-
delete asyncEvent['waitUntil'];
|
|
333
|
+
delete (asyncEvent as any)['waitUntil'];
|
|
334
334
|
}
|
|
335
335
|
if (!waitables.length) {
|
|
336
336
|
return;
|
|
@@ -390,7 +390,7 @@ export class AsyncEmitter<T extends WaitUntilEvent> extends Emitter<T> {
|
|
|
390
390
|
} catch (e) {
|
|
391
391
|
console.error(e);
|
|
392
392
|
} finally {
|
|
393
|
-
delete asyncEvent['waitUntil'];
|
|
393
|
+
delete (asyncEvent as any)['waitUntil'];
|
|
394
394
|
}
|
|
395
395
|
if (!waitables.length) {
|
|
396
396
|
return;
|
package/src/common/index.ts
CHANGED
|
@@ -40,6 +40,7 @@ export * from './lsp-types';
|
|
|
40
40
|
export * from './contribution-filter';
|
|
41
41
|
export * from './nls';
|
|
42
42
|
export * from './numbers';
|
|
43
|
+
export * from './performance';
|
|
43
44
|
|
|
44
45
|
import { environment } from '@theia/application-package/lib/environment';
|
|
45
46
|
export { environment };
|
|
@@ -236,7 +236,7 @@ export class JsonRpcProxyFactory<T extends object> implements ProxyHandler<T> {
|
|
|
236
236
|
const method = p.toString();
|
|
237
237
|
const capturedError = new Error(`Request '${method}' failed`);
|
|
238
238
|
return this.connectionPromise.then(connection =>
|
|
239
|
-
new Promise((resolve, reject) => {
|
|
239
|
+
new Promise<void>((resolve, reject) => {
|
|
240
240
|
try {
|
|
241
241
|
if (isNotify) {
|
|
242
242
|
connection.sendNotification(method, ...args);
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (C) 2021 STMicroelectronics and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
|
|
17
|
+
export * from './measurement';
|
|
18
|
+
export * from './stopwatch';
|
|
19
|
+
export * from './measurement-protocol';
|