@theia/core 1.46.0-next.200 → 1.46.0-next.230
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 +12 -1
- package/i18n/nls.de.json +12 -1
- package/i18n/nls.es.json +12 -1
- package/i18n/nls.fr.json +12 -1
- package/i18n/nls.hu.json +12 -1
- package/i18n/nls.it.json +12 -1
- package/i18n/nls.ja.json +12 -1
- package/i18n/nls.json +12 -1
- package/i18n/nls.pl.json +12 -1
- package/i18n/nls.pt-br.json +12 -1
- package/i18n/nls.pt-pt.json +12 -1
- package/i18n/nls.ru.json +12 -1
- package/i18n/nls.zh-cn.json +12 -1
- package/lib/browser/about-dialog.js +14 -14
- package/lib/browser/about-dialog.js.map +1 -1
- package/lib/browser/authentication-service.js +12 -12
- package/lib/browser/authentication-service.js.map +1 -1
- package/lib/browser/breadcrumbs/breadcrumb-popup-container.d.ts +1 -1
- package/lib/browser/breadcrumbs/breadcrumb-popup-container.d.ts.map +1 -1
- package/lib/browser/breadcrumbs/breadcrumb-popup-container.js +12 -12
- package/lib/browser/breadcrumbs/breadcrumb-popup-container.js.map +1 -1
- package/lib/browser/breadcrumbs/breadcrumb-renderer.js +2 -2
- package/lib/browser/breadcrumbs/breadcrumb-renderer.js.map +1 -1
- package/lib/browser/breadcrumbs/breadcrumbs-constants.js +1 -1
- package/lib/browser/breadcrumbs/breadcrumbs-constants.js.map +1 -1
- package/lib/browser/breadcrumbs/breadcrumbs-renderer.js +14 -14
- package/lib/browser/breadcrumbs/breadcrumbs-renderer.js.map +1 -1
- package/lib/browser/breadcrumbs/breadcrumbs-service.js +10 -10
- package/lib/browser/breadcrumbs/breadcrumbs-service.js.map +1 -1
- package/lib/browser/breadcrumbs/index.js +5 -5
- package/lib/browser/breadcrumbs/index.js.map +1 -1
- package/lib/browser/browser-clipboard-service.js +6 -6
- package/lib/browser/browser-clipboard-service.js.map +1 -1
- package/lib/browser/browser.d.ts +1 -1
- package/lib/browser/browser.d.ts.map +1 -1
- package/lib/browser/browser.js.map +1 -1
- package/lib/browser/color-application-contribution.js +10 -10
- 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 +4 -4
- package/lib/browser/command-open-handler.js.map +1 -1
- package/lib/browser/common-frontend-contribution.d.ts +3 -3
- package/lib/browser/common-frontend-contribution.d.ts.map +1 -1
- package/lib/browser/common-frontend-contribution.js +54 -54
- package/lib/browser/common-frontend-contribution.js.map +1 -1
- package/lib/browser/common-styling-participants.js +16 -16
- package/lib/browser/common-styling-participants.js.map +1 -1
- package/lib/browser/connection-status-service.js +26 -26
- package/lib/browser/connection-status-service.js.map +1 -1
- package/lib/browser/connection-status-service.spec.js.map +1 -1
- package/lib/browser/context-key-service.d.ts +2 -2
- package/lib/browser/context-key-service.d.ts.map +1 -1
- package/lib/browser/context-key-service.js +3 -3
- package/lib/browser/context-key-service.js.map +1 -1
- package/lib/browser/context-menu-renderer.d.ts +1 -1
- package/lib/browser/context-menu-renderer.d.ts.map +1 -1
- package/lib/browser/context-menu-renderer.js +2 -2
- package/lib/browser/context-menu-renderer.js.map +1 -1
- package/lib/browser/core-preferences.d.ts +1 -1
- package/lib/browser/core-preferences.d.ts.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 +4 -4
- package/lib/browser/credentials-service.js.map +1 -1
- package/lib/browser/decoration-style.js +1 -1
- package/lib/browser/decoration-style.js.map +1 -1
- package/lib/browser/decorations-service.js +2 -2
- package/lib/browser/decorations-service.js.map +1 -1
- package/lib/browser/dialogs/react-dialog.js +4 -4
- package/lib/browser/dialogs/react-dialog.js.map +1 -1
- package/lib/browser/dialogs.d.ts +2 -2
- package/lib/browser/dialogs.d.ts.map +1 -1
- package/lib/browser/dialogs.js +31 -31
- package/lib/browser/dialogs.js.map +1 -1
- package/lib/browser/diff-uris.js +5 -5
- package/lib/browser/diff-uris.js.map +1 -1
- package/lib/browser/encoding-registry.js +6 -6
- package/lib/browser/encoding-registry.js.map +1 -1
- package/lib/browser/endpoint.js +1 -1
- package/lib/browser/endpoint.js.map +1 -1
- package/lib/browser/external-uri-service.js +2 -2
- package/lib/browser/external-uri-service.js.map +1 -1
- package/lib/browser/frontend-application-bindings.js.map +1 -1
- package/lib/browser/frontend-application-config-provider.js.map +1 -1
- package/lib/browser/frontend-application-contribution.js +3 -3
- 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 +8 -5
- package/lib/browser/frontend-application-module.js.map +1 -1
- package/lib/browser/frontend-application-state.js +4 -4
- package/lib/browser/frontend-application-state.js.map +1 -1
- package/lib/browser/frontend-application.js +21 -21
- package/lib/browser/frontend-application.js.map +1 -1
- package/lib/browser/hover-service.d.ts +1 -1
- package/lib/browser/hover-service.d.ts.map +1 -1
- package/lib/browser/hover-service.js +7 -7
- package/lib/browser/hover-service.js.map +1 -1
- package/lib/browser/http-open-handler.js +6 -6
- package/lib/browser/http-open-handler.js.map +1 -1
- package/lib/browser/i18n/language-quick-pick-service.js +8 -8
- package/lib/browser/i18n/language-quick-pick-service.js.map +1 -1
- package/lib/browser/icon-theme-contribution.js +8 -8
- package/lib/browser/icon-theme-contribution.js.map +1 -1
- package/lib/browser/icon-theme-service.js +14 -14
- package/lib/browser/icon-theme-service.js.map +1 -1
- package/lib/browser/index.d.ts +1 -0
- package/lib/browser/index.d.ts.map +1 -1
- package/lib/browser/index.js +33 -32
- package/lib/browser/index.js.map +1 -1
- package/lib/browser/json-schema-store.js +8 -8
- package/lib/browser/json-schema-store.js.map +1 -1
- package/lib/browser/keybinding.d.ts +1 -1
- package/lib/browser/keybinding.d.ts.map +1 -1
- package/lib/browser/keybinding.js +22 -23
- package/lib/browser/keybinding.js.map +1 -1
- package/lib/browser/keybinding.spec.js +4 -4
- package/lib/browser/keybinding.spec.js.map +1 -1
- package/lib/browser/keyboard/browser-keyboard-frontend-contribution.js +7 -7
- package/lib/browser/keyboard/browser-keyboard-frontend-contribution.js.map +1 -1
- package/lib/browser/keyboard/browser-keyboard-layout-provider.d.ts +2 -2
- package/lib/browser/keyboard/browser-keyboard-layout-provider.d.ts.map +1 -1
- package/lib/browser/keyboard/browser-keyboard-layout-provider.js +13 -13
- package/lib/browser/keyboard/browser-keyboard-layout-provider.js.map +1 -1
- package/lib/browser/keyboard/browser-keyboard-layout-provider.spec.js +1 -1
- package/lib/browser/keyboard/browser-keyboard-layout-provider.spec.js.map +1 -1
- package/lib/browser/keyboard/index.js +4 -4
- package/lib/browser/keyboard/index.js.map +1 -1
- package/lib/browser/keyboard/keyboard-layout-service.js +8 -8
- 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.js.map +1 -1
- package/lib/browser/label-parser.d.ts +1 -1
- package/lib/browser/label-parser.d.ts.map +1 -1
- package/lib/browser/label-parser.js +3 -3
- package/lib/browser/label-parser.js.map +1 -1
- package/lib/browser/label-provider.js +13 -13
- package/lib/browser/label-provider.js.map +1 -1
- package/lib/browser/label-provider.spec.js.map +1 -1
- package/lib/browser/language-icon-provider.js +10 -10
- package/lib/browser/language-icon-provider.js.map +1 -1
- package/lib/browser/language-service.js +2 -2
- package/lib/browser/language-service.js.map +1 -1
- package/lib/browser/logger-frontend-module.js.map +1 -1
- package/lib/browser/markdown-rendering/markdown-renderer.js +8 -8
- package/lib/browser/markdown-rendering/markdown-renderer.js.map +1 -1
- package/lib/browser/menu/browser-context-menu-renderer.js +4 -4
- package/lib/browser/menu/browser-context-menu-renderer.js.map +1 -1
- package/lib/browser/menu/browser-menu-plugin.js +27 -27
- package/lib/browser/menu/browser-menu-plugin.js.map +1 -1
- package/lib/browser/menu/context-menu-context.js +8 -8
- package/lib/browser/menu/context-menu-context.js.map +1 -1
- package/lib/browser/messaging/frontend-id-provider.js +2 -2
- package/lib/browser/messaging/frontend-id-provider.js.map +1 -1
- package/lib/browser/messaging/index.js +2 -2
- package/lib/browser/messaging/index.js.map +1 -1
- package/lib/browser/messaging/service-connection-provider.js +8 -8
- package/lib/browser/messaging/service-connection-provider.js.map +1 -1
- package/lib/browser/messaging/ws-connection-provider.js +4 -4
- package/lib/browser/messaging/ws-connection-provider.js.map +1 -1
- package/lib/browser/messaging/ws-connection-source.js +16 -16
- package/lib/browser/messaging/ws-connection-source.js.map +1 -1
- package/lib/browser/mime-service.js +2 -2
- package/lib/browser/mime-service.js.map +1 -1
- package/lib/browser/navigatable-types.d.ts +1 -1
- package/lib/browser/navigatable-types.d.ts.map +1 -1
- package/lib/browser/navigatable-types.js +3 -3
- package/lib/browser/navigatable-types.js.map +1 -1
- package/lib/browser/navigatable.js +1 -1
- package/lib/browser/navigatable.js.map +1 -1
- package/lib/browser/open-with-service.js +4 -4
- package/lib/browser/open-with-service.js.map +1 -1
- package/lib/browser/opener-service.js +5 -5
- package/lib/browser/opener-service.js.map +1 -1
- package/lib/browser/performance/frontend-stopwatch.js +3 -3
- package/lib/browser/performance/frontend-stopwatch.js.map +1 -1
- package/lib/browser/performance/index.js +2 -2
- package/lib/browser/performance/index.js.map +1 -1
- package/lib/browser/preferences/index.js +7 -7
- package/lib/browser/preferences/index.js.map +1 -1
- package/lib/browser/preferences/injectable-preference-proxy.js +14 -14
- package/lib/browser/preferences/injectable-preference-proxy.js.map +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 +11 -11
- package/lib/browser/preferences/preference-contribution.js.map +1 -1
- package/lib/browser/preferences/preference-language-override-service.js +3 -3
- package/lib/browser/preferences/preference-language-override-service.js.map +1 -1
- package/lib/browser/preferences/preference-provider.js +6 -6
- package/lib/browser/preferences/preference-provider.js.map +1 -1
- package/lib/browser/preferences/preference-proxy.d.ts +2 -2
- package/lib/browser/preferences/preference-proxy.d.ts.map +1 -1
- package/lib/browser/preferences/preference-proxy.js.map +1 -1
- package/lib/browser/preferences/preference-proxy.spec.js.map +1 -1
- package/lib/browser/preferences/preference-service.d.ts +2 -2
- package/lib/browser/preferences/preference-service.d.ts.map +1 -1
- package/lib/browser/preferences/preference-service.js +14 -14
- package/lib/browser/preferences/preference-service.js.map +1 -1
- package/lib/browser/preferences/preference-service.spec.js.map +1 -1
- package/lib/browser/preferences/preference-validation-service.d.ts +2 -2
- package/lib/browser/preferences/preference-validation-service.d.ts.map +1 -1
- package/lib/browser/preferences/preference-validation-service.js +6 -6
- package/lib/browser/preferences/preference-validation-service.js.map +1 -1
- package/lib/browser/preferences/preference-validation-service.spec.js.map +1 -1
- package/lib/browser/preferences/test/index.js +3 -3
- package/lib/browser/preferences/test/index.js.map +1 -1
- package/lib/browser/preferences/test/mock-preference-proxy.js.map +1 -1
- package/lib/browser/preferences/test/mock-preference-service.js +3 -3
- package/lib/browser/preferences/test/mock-preference-service.js.map +1 -1
- package/lib/browser/preload/i18n-preload-contribution.js +4 -4
- package/lib/browser/preload/i18n-preload-contribution.js.map +1 -1
- package/lib/browser/preload/os-preload-contribution.js +4 -4
- package/lib/browser/preload/os-preload-contribution.js.map +1 -1
- package/lib/browser/preload/preloader.js +4 -4
- package/lib/browser/preload/preloader.js.map +1 -1
- package/lib/browser/preload/theme-preload-contribution.js +2 -2
- package/lib/browser/preload/theme-preload-contribution.js.map +1 -1
- package/lib/browser/progress-bar.js +14 -14
- package/lib/browser/progress-bar.js.map +1 -1
- package/lib/browser/progress-client.js +6 -6
- package/lib/browser/progress-client.js.map +1 -1
- package/lib/browser/progress-location-service.js +2 -2
- package/lib/browser/progress-location-service.js.map +1 -1
- package/lib/browser/progress-status-bar-item.js +4 -4
- package/lib/browser/progress-status-bar-item.js.map +1 -1
- package/lib/browser/quick-input/index.js +8 -8
- package/lib/browser/quick-input/index.js.map +1 -1
- package/lib/browser/quick-input/quick-command-frontend-contribution.js +6 -6
- package/lib/browser/quick-input/quick-command-frontend-contribution.js.map +1 -1
- package/lib/browser/quick-input/quick-command-service.js +12 -12
- package/lib/browser/quick-input/quick-command-service.js.map +1 -1
- package/lib/browser/quick-input/quick-help-service.js +6 -6
- package/lib/browser/quick-input/quick-help-service.js.map +1 -1
- package/lib/browser/quick-input/quick-input-frontend-contribution.js +4 -4
- 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.js.map +1 -1
- package/lib/browser/quick-input/quick-pick-service-impl.js +4 -4
- package/lib/browser/quick-input/quick-pick-service-impl.js.map +1 -1
- package/lib/browser/quick-input/quick-view-service.js +6 -6
- package/lib/browser/quick-input/quick-view-service.js.map +1 -1
- package/lib/browser/request/browser-request-service.js +14 -14
- package/lib/browser/request/browser-request-service.js.map +1 -1
- package/lib/browser/resource-context-key.js +10 -10
- package/lib/browser/resource-context-key.js.map +1 -1
- package/lib/browser/saveable-service.d.ts +72 -0
- package/lib/browser/saveable-service.d.ts.map +1 -0
- package/lib/browser/saveable-service.js +294 -0
- package/lib/browser/saveable-service.js.map +1 -0
- package/lib/browser/saveable.d.ts +27 -6
- package/lib/browser/saveable.d.ts.map +1 -1
- package/lib/browser/saveable.js +33 -98
- package/lib/browser/saveable.js.map +1 -1
- package/lib/browser/secondary-window-handler.js +8 -8
- package/lib/browser/secondary-window-handler.js.map +1 -1
- package/lib/browser/shell/additional-views-menu-widget.d.ts +3 -3
- package/lib/browser/shell/additional-views-menu-widget.d.ts.map +1 -1
- package/lib/browser/shell/additional-views-menu-widget.js +14 -10
- package/lib/browser/shell/additional-views-menu-widget.js.map +1 -1
- package/lib/browser/shell/application-shell-mouse-tracker.js +5 -6
- package/lib/browser/shell/application-shell-mouse-tracker.js.map +1 -1
- package/lib/browser/shell/application-shell.d.ts +4 -4
- package/lib/browser/shell/application-shell.d.ts.map +1 -1
- package/lib/browser/shell/application-shell.js +53 -57
- package/lib/browser/shell/application-shell.js.map +1 -1
- package/lib/browser/shell/current-widget-command-adapter.d.ts +2 -2
- package/lib/browser/shell/current-widget-command-adapter.d.ts.map +1 -1
- package/lib/browser/shell/current-widget-command-adapter.js.map +1 -1
- package/lib/browser/shell/index.js +7 -7
- package/lib/browser/shell/index.js.map +1 -1
- package/lib/browser/shell/shell-layout-restorer.js +15 -16
- package/lib/browser/shell/shell-layout-restorer.js.map +1 -1
- package/lib/browser/shell/side-panel-handler.d.ts.map +1 -1
- package/lib/browser/shell/side-panel-handler.js +25 -24
- 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 +2 -2
- package/lib/browser/shell/sidebar-bottom-menu-widget.js.map +1 -1
- package/lib/browser/shell/sidebar-menu-widget.js +7 -7
- package/lib/browser/shell/sidebar-menu-widget.js.map +1 -1
- package/lib/browser/shell/sidebar-top-menu-widget.js +2 -2
- package/lib/browser/shell/sidebar-top-menu-widget.js.map +1 -1
- package/lib/browser/shell/split-panels.js +2 -2
- package/lib/browser/shell/split-panels.js.map +1 -1
- package/lib/browser/shell/tab-bar-decorator.js +8 -8
- package/lib/browser/shell/tab-bar-decorator.js.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/index.js +3 -3
- 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 -10
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.js.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.js +4 -4
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.js.map +1 -1
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.js +24 -25
- package/lib/browser/shell/tab-bar-toolbar/tab-bar-toolbar.js.map +1 -1
- package/lib/browser/shell/tab-bars.d.ts +6 -5
- package/lib/browser/shell/tab-bars.d.ts.map +1 -1
- package/lib/browser/shell/tab-bars.js +41 -52
- package/lib/browser/shell/tab-bars.js.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-column-service.d.ts +24 -0
- package/lib/browser/shell/view-column-service.d.ts.map +1 -0
- package/lib/browser/shell/view-column-service.js +119 -0
- package/lib/browser/shell/view-column-service.js.map +1 -0
- package/lib/browser/shell/view-contribution.js +9 -9
- package/lib/browser/shell/view-contribution.js.map +1 -1
- package/lib/browser/source-tree/index.js +3 -3
- package/lib/browser/source-tree/index.js.map +1 -1
- package/lib/browser/source-tree/source-tree-widget.js +6 -6
- package/lib/browser/source-tree/source-tree-widget.js.map +1 -1
- package/lib/browser/source-tree/source-tree.d.ts +1 -1
- package/lib/browser/source-tree/source-tree.d.ts.map +1 -1
- package/lib/browser/source-tree/source-tree.js +5 -5
- package/lib/browser/source-tree/source-tree.js.map +1 -1
- package/lib/browser/source-tree/tree-source.js +8 -8
- package/lib/browser/source-tree/tree-source.js.map +1 -1
- package/lib/browser/status-bar/index.js +3 -3
- package/lib/browser/status-bar/index.js.map +1 -1
- package/lib/browser/status-bar/status-bar-types.js +1 -1
- package/lib/browser/status-bar/status-bar-types.js.map +1 -1
- package/lib/browser/status-bar/status-bar-view-model.js +2 -2
- package/lib/browser/status-bar/status-bar-view-model.js.map +1 -1
- package/lib/browser/status-bar/status-bar.js +9 -9
- package/lib/browser/status-bar/status-bar.js.map +1 -1
- package/lib/browser/storage-service.js +12 -12
- package/lib/browser/storage-service.js.map +1 -1
- package/lib/browser/styling-service.js +10 -10
- package/lib/browser/styling-service.js.map +1 -1
- package/lib/browser/test/jsdom.js.map +1 -1
- package/lib/browser/test/mock-opener-service.js +2 -2
- package/lib/browser/test/mock-opener-service.js.map +1 -1
- package/lib/browser/test/mock-storage-service.d.ts +1 -1
- package/lib/browser/test/mock-storage-service.d.ts.map +1 -1
- package/lib/browser/test/mock-storage-service.js +2 -2
- package/lib/browser/test/mock-storage-service.js.map +1 -1
- package/lib/browser/theming.js +10 -10
- package/lib/browser/theming.js.map +1 -1
- package/lib/browser/tooltip-service.js +11 -11
- package/lib/browser/tooltip-service.js.map +1 -1
- package/lib/browser/tree/fuzzy-search.js +2 -2
- package/lib/browser/tree/fuzzy-search.js.map +1 -1
- package/lib/browser/tree/index.js +13 -13
- package/lib/browser/tree/index.js.map +1 -1
- package/lib/browser/tree/search-box-debounce.js +1 -1
- package/lib/browser/tree/search-box-debounce.js.map +1 -1
- package/lib/browser/tree/search-box.js +2 -2
- package/lib/browser/tree/search-box.js.map +1 -1
- package/lib/browser/tree/test/mock-selectable-tree-model.js +1 -1
- package/lib/browser/tree/test/mock-selectable-tree-model.js.map +1 -1
- package/lib/browser/tree/test/mock-tree-model.js +1 -1
- package/lib/browser/tree/test/mock-tree-model.js.map +1 -1
- package/lib/browser/tree/tree-compression/compressed-tree-expansion-service.js +6 -6
- 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 -6
- package/lib/browser/tree/tree-compression/compressed-tree-model.js.map +1 -1
- package/lib/browser/tree/tree-compression/compressed-tree-widget.js +10 -10
- package/lib/browser/tree/tree-compression/compressed-tree-widget.js.map +1 -1
- package/lib/browser/tree/tree-compression/index.js +4 -4
- package/lib/browser/tree/tree-compression/index.js.map +1 -1
- package/lib/browser/tree/tree-compression/tree-compression-service.d.ts +1 -1
- package/lib/browser/tree/tree-compression/tree-compression-service.d.ts.map +1 -1
- package/lib/browser/tree/tree-compression/tree-compression-service.js +2 -2
- package/lib/browser/tree/tree-compression/tree-compression-service.js.map +1 -1
- package/lib/browser/tree/tree-consistency.spec.js +1 -1
- package/lib/browser/tree/tree-consistency.spec.js.map +1 -1
- package/lib/browser/tree/tree-container.d.ts +2 -2
- package/lib/browser/tree/tree-container.d.ts.map +1 -1
- package/lib/browser/tree/tree-container.js.map +1 -1
- package/lib/browser/tree/tree-decorator.js +6 -6
- package/lib/browser/tree/tree-decorator.js.map +1 -1
- package/lib/browser/tree/tree-expansion.js +9 -9
- package/lib/browser/tree/tree-expansion.js.map +1 -1
- package/lib/browser/tree/tree-focus-service.js +4 -4
- package/lib/browser/tree/tree-focus-service.js.map +1 -1
- package/lib/browser/tree/tree-iterator.js +2 -2
- package/lib/browser/tree/tree-iterator.js.map +1 -1
- package/lib/browser/tree/tree-iterator.spec.js.map +1 -1
- package/lib/browser/tree/tree-label-provider.js +2 -2
- package/lib/browser/tree/tree-label-provider.js.map +1 -1
- package/lib/browser/tree/tree-model.js +20 -20
- package/lib/browser/tree/tree-model.js.map +1 -1
- package/lib/browser/tree/tree-navigation.js +2 -2
- package/lib/browser/tree/tree-navigation.js.map +1 -1
- package/lib/browser/tree/tree-preference.d.ts +1 -1
- package/lib/browser/tree/tree-preference.d.ts.map +1 -1
- package/lib/browser/tree/tree-search.js +12 -12
- package/lib/browser/tree/tree-search.js.map +1 -1
- package/lib/browser/tree/tree-selectable.spec.js.map +1 -1
- package/lib/browser/tree/tree-selection-impl.js +10 -10
- package/lib/browser/tree/tree-selection-impl.js.map +1 -1
- package/lib/browser/tree/tree-selection-state.js +1 -1
- package/lib/browser/tree/tree-selection-state.js.map +1 -1
- package/lib/browser/tree/tree-selection-state.spec.js +2 -2
- package/lib/browser/tree/tree-selection-state.spec.js.map +1 -1
- package/lib/browser/tree/tree-selection.js +2 -2
- package/lib/browser/tree/tree-selection.js.map +1 -1
- package/lib/browser/tree/tree-view-welcome-widget.d.ts +1 -1
- package/lib/browser/tree/tree-view-welcome-widget.d.ts.map +1 -1
- package/lib/browser/tree/tree-view-welcome-widget.js +8 -8
- package/lib/browser/tree/tree-view-welcome-widget.js.map +1 -1
- package/lib/browser/tree/tree-widget-selection.d.ts +1 -1
- package/lib/browser/tree/tree-widget-selection.d.ts.map +1 -1
- package/lib/browser/tree/tree-widget-selection.js +1 -1
- package/lib/browser/tree/tree-widget-selection.js.map +1 -1
- package/lib/browser/tree/tree-widget.js +27 -28
- package/lib/browser/tree/tree-widget.js.map +1 -1
- package/lib/browser/tree/tree.js +5 -5
- package/lib/browser/tree/tree.js.map +1 -1
- package/lib/browser/tree/tree.spec.js.map +1 -1
- package/lib/browser/user-working-directory-provider.js +6 -6
- package/lib/browser/user-working-directory-provider.js.map +1 -1
- package/lib/browser/view-container.js +37 -38
- package/lib/browser/view-container.js.map +1 -1
- package/lib/browser/widget-decoration.js +1 -1
- package/lib/browser/widget-decoration.js.map +1 -1
- package/lib/browser/widget-manager.js +6 -6
- package/lib/browser/widget-manager.js.map +1 -1
- package/lib/browser/widget-open-handler.d.ts +1 -1
- package/lib/browser/widget-open-handler.d.ts.map +1 -1
- package/lib/browser/widget-open-handler.js +10 -10
- package/lib/browser/widget-open-handler.js.map +1 -1
- package/lib/browser/widgets/alert-message.d.ts +1 -1
- package/lib/browser/widgets/alert-message.d.ts.map +1 -1
- package/lib/browser/widgets/enhanced-preview-widget.js +1 -1
- package/lib/browser/widgets/enhanced-preview-widget.js.map +1 -1
- package/lib/browser/widgets/extractable-widget.js +1 -1
- package/lib/browser/widgets/extractable-widget.js.map +1 -1
- package/lib/browser/widgets/index.js +4 -4
- package/lib/browser/widgets/index.js.map +1 -1
- package/lib/browser/widgets/previewable-widget.js +1 -1
- package/lib/browser/widgets/previewable-widget.js.map +1 -1
- package/lib/browser/widgets/react-renderer.d.ts +1 -1
- package/lib/browser/widgets/react-renderer.d.ts.map +1 -1
- package/lib/browser/widgets/react-renderer.js +5 -5
- package/lib/browser/widgets/react-renderer.js.map +1 -1
- package/lib/browser/widgets/react-widget.js +4 -4
- package/lib/browser/widgets/react-widget.js.map +1 -1
- package/lib/browser/widgets/select-component.js.map +1 -1
- package/lib/browser/widgets/widget.d.ts +2 -2
- package/lib/browser/widgets/widget.d.ts.map +1 -1
- package/lib/browser/widgets/widget.js +7 -7
- package/lib/browser/widgets/widget.js.map +1 -1
- package/lib/browser/window/default-secondary-window-service.d.ts +2 -0
- package/lib/browser/window/default-secondary-window-service.d.ts.map +1 -1
- package/lib/browser/window/default-secondary-window-service.js +17 -12
- package/lib/browser/window/default-secondary-window-service.js.map +1 -1
- package/lib/browser/window/default-window-service.js +6 -6
- package/lib/browser/window/default-window-service.js.map +1 -1
- package/lib/browser/window/test/mock-window-service.js +2 -2
- package/lib/browser/window/test/mock-window-service.js.map +1 -1
- package/lib/browser/window/window-title-service.js +8 -8
- package/lib/browser/window/window-title-service.js.map +1 -1
- package/lib/browser/window/window-title-updater.js +6 -6
- package/lib/browser/window/window-title-updater.js.map +1 -1
- package/lib/browser/window-contribution.js +5 -5
- package/lib/browser/window-contribution.js.map +1 -1
- package/lib/browser-only/frontend-only-application-module.js.map +1 -1
- package/lib/browser-only/logger-frontend-only-module.js.map +1 -1
- package/lib/browser-only/messaging/frontend-only-service-connection-provider.js +4 -4
- package/lib/browser-only/messaging/frontend-only-service-connection-provider.js.map +1 -1
- package/lib/browser-only/messaging/messaging-frontend-only-module.js.map +1 -1
- package/lib/browser-only/preload/frontend-only-preload-module.js.map +1 -1
- package/lib/common/application-error.js +1 -1
- package/lib/common/application-error.js.map +1 -1
- package/lib/common/array-utils.d.ts +2 -2
- package/lib/common/array-utils.d.ts.map +1 -1
- package/lib/common/array-utils.js +1 -1
- package/lib/common/array-utils.js.map +1 -1
- package/lib/common/buffer.js +8 -8
- package/lib/common/buffer.js.map +1 -1
- package/lib/common/cancellation.js +1 -1
- package/lib/common/cancellation.js.map +1 -1
- package/lib/common/char-code.d.ts +180 -180
- package/lib/common/char-code.d.ts.map +1 -1
- package/lib/common/collections.js.map +1 -1
- package/lib/common/color.d.ts +1 -1
- package/lib/common/color.d.ts.map +1 -1
- package/lib/common/color.js +1 -1
- package/lib/common/color.js.map +1 -1
- package/lib/common/command.js +6 -6
- package/lib/common/command.js.map +1 -1
- package/lib/common/contribution-filter/contribution-filter-registry.js +5 -5
- package/lib/common/contribution-filter/contribution-filter-registry.js.map +1 -1
- package/lib/common/contribution-filter/contribution-filter.d.ts +1 -1
- package/lib/common/contribution-filter/contribution-filter.d.ts.map +1 -1
- package/lib/common/contribution-filter/filter.d.ts +1 -1
- package/lib/common/contribution-filter/filter.d.ts.map +1 -1
- package/lib/common/contribution-filter/index.js +3 -3
- package/lib/common/contribution-filter/index.js.map +1 -1
- package/lib/common/contribution-provider.d.ts +1 -1
- package/lib/common/contribution-provider.d.ts.map +1 -1
- package/lib/common/contribution-provider.js +1 -1
- package/lib/common/contribution-provider.js.map +1 -1
- package/lib/common/disposable.d.ts +1 -1
- package/lib/common/disposable.d.ts.map +1 -1
- package/lib/common/disposable.js +2 -2
- package/lib/common/disposable.js.map +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/env-variables/index.js.map +1 -1
- package/lib/common/event.d.ts +2 -2
- package/lib/common/event.d.ts.map +1 -1
- package/lib/common/event.js +2 -2
- package/lib/common/event.js.map +1 -1
- package/lib/common/file-uri.js +1 -1
- package/lib/common/file-uri.js.map +1 -1
- package/lib/common/frontend-application-state.d.ts +1 -1
- package/lib/common/frontend-application-state.d.ts.map +1 -1
- package/lib/common/frontend-application-state.js +1 -1
- package/lib/common/frontend-application-state.js.map +1 -1
- package/lib/common/glob.d.ts +2 -2
- package/lib/common/glob.d.ts.map +1 -1
- package/lib/common/glob.js +1 -1
- package/lib/common/glob.js.map +1 -1
- package/lib/common/hash.js.map +1 -1
- package/lib/common/i18n/localization.d.ts +1 -1
- package/lib/common/i18n/localization.d.ts.map +1 -1
- package/lib/common/i18n/localization.js +1 -1
- package/lib/common/i18n/localization.js.map +1 -1
- package/lib/common/index.js +33 -33
- package/lib/common/index.js.map +1 -1
- package/lib/common/json-schema.d.ts +1 -1
- package/lib/common/json-schema.d.ts.map +1 -1
- package/lib/common/keybinding.js +2 -2
- package/lib/common/keybinding.js.map +1 -1
- package/lib/common/keyboard/keyboard-layout-provider.d.ts +1 -0
- package/lib/common/keyboard/keyboard-layout-provider.d.ts.map +1 -1
- package/lib/common/keys.d.ts +2 -2
- package/lib/common/keys.d.ts.map +1 -1
- package/lib/common/keys.js +7 -7
- package/lib/common/keys.js.map +1 -1
- package/lib/common/logger-protocol.js +5 -5
- package/lib/common/logger-protocol.js.map +1 -1
- package/lib/common/logger-watcher.js +2 -2
- package/lib/common/logger-watcher.js.map +1 -1
- package/lib/common/logger.d.ts +3 -3
- package/lib/common/logger.d.ts.map +1 -1
- package/lib/common/logger.js +14 -14
- package/lib/common/logger.js.map +1 -1
- package/lib/common/logger.spec.js.map +1 -1
- package/lib/common/lsp-types.js +1 -1
- package/lib/common/lsp-types.js.map +1 -1
- package/lib/common/markdown-rendering/icon-utilities.js +1 -1
- package/lib/common/markdown-rendering/icon-utilities.js.map +1 -1
- package/lib/common/markdown-rendering/index.js +2 -2
- package/lib/common/markdown-rendering/index.js.map +1 -1
- package/lib/common/markdown-rendering/markdown-string.js +2 -2
- package/lib/common/markdown-rendering/markdown-string.js.map +1 -1
- package/lib/common/menu/action-menu-node.js.map +1 -1
- package/lib/common/menu/composite-menu-node.js +1 -1
- package/lib/common/menu/composite-menu-node.js.map +1 -1
- package/lib/common/menu/composite-menu-node.spec.js +5 -5
- package/lib/common/menu/composite-menu-node.spec.js.map +1 -1
- package/lib/common/menu/index.js +5 -5
- package/lib/common/menu/index.js.map +1 -1
- package/lib/common/menu/menu-adapter.d.ts +1 -1
- package/lib/common/menu/menu-adapter.d.ts.map +1 -1
- package/lib/common/menu/menu-adapter.js +8 -8
- package/lib/common/menu/menu-adapter.js.map +1 -1
- package/lib/common/menu/menu-model-registry.js +6 -6
- package/lib/common/menu/menu-model-registry.js.map +1 -1
- package/lib/common/menu/menu-types.d.ts +2 -2
- package/lib/common/menu/menu-types.d.ts.map +1 -1
- package/lib/common/menu/menu-types.js +5 -5
- package/lib/common/menu/menu-types.js.map +1 -1
- package/lib/common/menu/menu.spec.js.map +1 -1
- package/lib/common/message-rpc/channel.d.ts +1 -1
- package/lib/common/message-rpc/channel.d.ts.map +1 -1
- package/lib/common/message-rpc/channel.js +11 -11
- package/lib/common/message-rpc/channel.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.d.ts.map +1 -1
- package/lib/common/message-rpc/msg-pack-extension-manager.js +3 -3
- package/lib/common/message-rpc/msg-pack-extension-manager.js.map +1 -1
- package/lib/common/message-rpc/rpc-message-encoder.d.ts +1 -1
- package/lib/common/message-rpc/rpc-message-encoder.d.ts.map +1 -1
- package/lib/common/message-rpc/rpc-message-encoder.js +5 -5
- package/lib/common/message-rpc/rpc-message-encoder.js.map +1 -1
- package/lib/common/message-rpc/rpc-protocol.d.ts +1 -1
- package/lib/common/message-rpc/rpc-protocol.d.ts.map +1 -1
- package/lib/common/message-rpc/rpc-protocol.js +8 -8
- package/lib/common/message-rpc/rpc-protocol.js.map +1 -1
- package/lib/common/message-rpc/uint8-array-message-buffer.js.map +1 -1
- package/lib/common/message-service-protocol.js +4 -4
- package/lib/common/message-service-protocol.js.map +1 -1
- package/lib/common/message-service.js +4 -4
- package/lib/common/message-service.js.map +1 -1
- package/lib/common/messaging/connection-error-handler.d.ts +1 -1
- package/lib/common/messaging/connection-error-handler.d.ts.map +1 -1
- package/lib/common/messaging/connection-error-handler.js.map +1 -1
- package/lib/common/messaging/connection-management.js +1 -1
- package/lib/common/messaging/connection-management.js.map +1 -1
- package/lib/common/messaging/index.js +3 -3
- package/lib/common/messaging/index.js.map +1 -1
- package/lib/common/messaging/proxy-factory.d.ts +6 -6
- package/lib/common/messaging/proxy-factory.d.ts.map +1 -1
- package/lib/common/messaging/proxy-factory.js.map +1 -1
- package/lib/common/messaging/proxy-factory.spec.js.map +1 -1
- package/lib/common/messaging/socket-write-buffer.js.map +1 -1
- package/lib/common/messaging/web-socket-channel.d.ts +1 -1
- package/lib/common/messaging/web-socket-channel.d.ts.map +1 -1
- package/lib/common/messaging/web-socket-channel.js.map +1 -1
- package/lib/common/nls.js +1 -1
- package/lib/common/nls.js.map +1 -1
- package/lib/common/objects.js.map +1 -1
- package/lib/common/os.d.ts +1 -1
- package/lib/common/os.d.ts.map +1 -1
- package/lib/common/os.js +1 -1
- package/lib/common/os.js.map +1 -1
- package/lib/common/path.js +17 -17
- package/lib/common/path.js.map +1 -1
- package/lib/common/paths.js +11 -11
- package/lib/common/paths.js.map +1 -1
- package/lib/common/performance/index.js +3 -3
- package/lib/common/performance/index.js.map +1 -1
- package/lib/common/performance/measurement-protocol.d.ts +1 -1
- package/lib/common/performance/measurement-protocol.d.ts.map +1 -1
- package/lib/common/performance/measurement-protocol.js +6 -6
- package/lib/common/performance/measurement-protocol.js.map +1 -1
- package/lib/common/performance/stopwatch.js +8 -8
- package/lib/common/performance/stopwatch.js.map +1 -1
- package/lib/common/preferences/preference-schema.d.ts +1 -0
- package/lib/common/preferences/preference-schema.d.ts.map +1 -1
- package/lib/common/preferences/preference-schema.js +3 -3
- package/lib/common/preferences/preference-schema.js.map +1 -1
- package/lib/common/preferences/preference-scope.js +2 -2
- package/lib/common/preferences/preference-scope.js.map +1 -1
- package/lib/common/prioritizeable.js +1 -1
- package/lib/common/prioritizeable.js.map +1 -1
- package/lib/common/progress-service.js +6 -6
- package/lib/common/progress-service.js.map +1 -1
- package/lib/common/promise-util.js.map +1 -1
- package/lib/common/promise-util.spec.js.map +1 -1
- package/lib/common/quick-pick-service.d.ts +3 -3
- package/lib/common/quick-pick-service.d.ts.map +1 -1
- package/lib/common/quick-pick-service.js +3 -3
- package/lib/common/quick-pick-service.js.map +1 -1
- package/lib/common/reference.js.map +1 -1
- package/lib/common/resource.d.ts +1 -1
- package/lib/common/resource.d.ts.map +1 -1
- package/lib/common/resource.js +16 -16
- package/lib/common/resource.js.map +1 -1
- package/lib/common/selection-command-handler.d.ts +1 -1
- package/lib/common/selection-command-handler.d.ts.map +1 -1
- package/lib/common/selection-command-handler.js.map +1 -1
- package/lib/common/selection-service.js +2 -2
- package/lib/common/selection-service.js.map +1 -1
- package/lib/common/selection.js +1 -1
- package/lib/common/selection.js.map +1 -1
- package/lib/common/severity.js +2 -2
- package/lib/common/severity.js.map +1 -1
- package/lib/common/stream.js +1 -1
- package/lib/common/stream.js.map +1 -1
- package/lib/common/strings.js +2 -2
- package/lib/common/strings.js.map +1 -1
- package/lib/common/ternary-search-tree.js +21 -21
- package/lib/common/ternary-search-tree.js.map +1 -1
- package/lib/common/test/expect.js.map +1 -1
- package/lib/common/test/mock-logger.js +2 -2
- package/lib/common/test/mock-logger.js.map +1 -1
- package/lib/common/test/mock-resource-provider.js +3 -3
- package/lib/common/test/mock-resource-provider.js.map +1 -1
- package/lib/common/theme.d.ts +1 -1
- package/lib/common/theme.d.ts.map +1 -1
- package/lib/common/types.d.ts +8 -8
- package/lib/common/types.d.ts.map +1 -1
- package/lib/common/types.js.map +1 -1
- package/lib/common/types.spec.js.map +1 -1
- package/lib/common/uri-command-handler.js +1 -1
- package/lib/common/uri-command-handler.js.map +1 -1
- package/lib/common/uri.js +6 -6
- package/lib/common/uri.js.map +1 -1
- package/lib/common/view-column.js +1 -1
- package/lib/common/view-column.js.map +1 -1
- package/lib/electron-browser/electron-clipboard-service.js +2 -2
- package/lib/electron-browser/electron-clipboard-service.js.map +1 -1
- package/lib/electron-browser/keyboard/electron-keyboard-layout-change-notifier.js +6 -6
- package/lib/electron-browser/keyboard/electron-keyboard-layout-change-notifier.js.map +1 -1
- package/lib/electron-browser/menu/electron-context-menu-renderer.js +17 -17
- package/lib/electron-browser/menu/electron-context-menu-renderer.js.map +1 -1
- package/lib/electron-browser/menu/electron-main-menu-factory.d.ts +1 -1
- package/lib/electron-browser/menu/electron-main-menu-factory.d.ts.map +1 -1
- package/lib/electron-browser/menu/electron-main-menu-factory.js +12 -12
- package/lib/electron-browser/menu/electron-main-menu-factory.js.map +1 -1
- package/lib/electron-browser/menu/electron-menu-contribution.d.ts +1 -1
- package/lib/electron-browser/menu/electron-menu-contribution.d.ts.map +1 -1
- package/lib/electron-browser/menu/electron-menu-contribution.js +31 -31
- package/lib/electron-browser/menu/electron-menu-contribution.js.map +1 -1
- package/lib/electron-browser/menu/electron-menu-module.js.map +1 -1
- package/lib/electron-browser/messaging/electron-frontend-id-provider.js +2 -2
- package/lib/electron-browser/messaging/electron-frontend-id-provider.js.map +1 -1
- package/lib/electron-browser/messaging/electron-ipc-connection-source.js +3 -3
- 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 -2
- package/lib/electron-browser/messaging/electron-local-ws-connection-source.js.map +1 -1
- package/lib/electron-browser/messaging/electron-messaging-frontend-module.js.map +1 -1
- package/lib/electron-browser/messaging/electron-ws-connection-source.js +3 -3
- package/lib/electron-browser/messaging/electron-ws-connection-source.js.map +1 -1
- package/lib/electron-browser/preload.js.map +1 -1
- package/lib/electron-browser/window/electron-frontend-application-state.js +2 -2
- package/lib/electron-browser/window/electron-frontend-application-state.js.map +1 -1
- package/lib/electron-browser/window/electron-secondary-window-service.js +2 -2
- package/lib/electron-browser/window/electron-secondary-window-service.js.map +1 -1
- package/lib/electron-browser/window/electron-window-preferences.d.ts +1 -1
- package/lib/electron-browser/window/electron-window-preferences.d.ts.map +1 -1
- package/lib/electron-browser/window/electron-window-preferences.js +2 -2
- package/lib/electron-browser/window/electron-window-preferences.js.map +1 -1
- package/lib/electron-browser/window/electron-window-service.js +14 -14
- package/lib/electron-browser/window/electron-window-service.js.map +1 -1
- package/lib/electron-common/electron-api.d.ts +3 -3
- package/lib/electron-common/electron-api.d.ts.map +1 -1
- package/lib/electron-main/electron-api-main.js +5 -5
- package/lib/electron-main/electron-api-main.js.map +1 -1
- package/lib/electron-main/electron-main-application.d.ts.map +1 -1
- package/lib/electron-main/electron-main-application.js +17 -16
- package/lib/electron-main/electron-main-application.js.map +1 -1
- package/lib/electron-main/electron-main-window-service-impl.js +4 -4
- package/lib/electron-main/electron-main-window-service-impl.js.map +1 -1
- package/lib/electron-main/electron-security-token-service.js +4 -4
- package/lib/electron-main/electron-security-token-service.js.map +1 -1
- package/lib/electron-main/event-utils.js.map +1 -1
- package/lib/electron-main/messaging/electron-messaging-contribution.js +10 -10
- package/lib/electron-main/messaging/electron-messaging-contribution.js.map +1 -1
- package/lib/electron-main/messaging/electron-messaging-service.js +1 -1
- package/lib/electron-main/messaging/electron-messaging-service.js.map +1 -1
- package/lib/electron-main/theia-electron-window.d.ts +1 -1
- package/lib/electron-main/theia-electron-window.d.ts.map +1 -1
- package/lib/electron-main/theia-electron-window.js +12 -12
- package/lib/electron-main/theia-electron-window.js.map +1 -1
- package/lib/electron-node/cli/electron-backend-cli-module.d.ts +4 -0
- package/lib/electron-node/cli/electron-backend-cli-module.d.ts.map +1 -0
- package/lib/electron-node/cli/electron-backend-cli-module.js +25 -0
- package/lib/electron-node/cli/electron-backend-cli-module.js.map +1 -0
- package/lib/electron-node/cli/electron-cli-contribution.d.ts +23 -0
- package/lib/electron-node/cli/electron-cli-contribution.d.ts.map +1 -0
- package/lib/electron-node/cli/electron-cli-contribution.js +35 -0
- package/lib/electron-node/cli/electron-cli-contribution.js.map +1 -0
- package/lib/electron-node/hosting/electron-ws-origin-validator.js +4 -4
- package/lib/electron-node/hosting/electron-ws-origin-validator.js.map +1 -1
- package/lib/electron-node/keyboard/electron-keyboard-layout-provider.js +2 -2
- package/lib/electron-node/keyboard/electron-keyboard-layout-provider.js.map +1 -1
- package/lib/electron-node/request/electron-backend-request-service.js +2 -2
- package/lib/electron-node/request/electron-backend-request-service.js.map +1 -1
- package/lib/electron-node/token/electron-token-backend-contribution.js +4 -4
- package/lib/electron-node/token/electron-token-backend-contribution.js.map +1 -1
- package/lib/electron-node/token/electron-token-validator.js +6 -6
- package/lib/electron-node/token/electron-token-validator.js.map +1 -1
- package/lib/node/application-server.js +4 -4
- package/lib/node/application-server.js.map +1 -1
- package/lib/node/backend-application-config-provider.js.map +1 -1
- package/lib/node/backend-application-module.js.map +1 -1
- package/lib/node/backend-application.d.ts +3 -1
- package/lib/node/backend-application.d.ts.map +1 -1
- package/lib/node/backend-application.js +16 -16
- package/lib/node/backend-application.js.map +1 -1
- package/lib/node/cli.js +7 -7
- package/lib/node/cli.js.map +1 -1
- package/lib/node/cli.spec.js.map +1 -1
- package/lib/node/console-logger-server.js +10 -10
- package/lib/node/console-logger-server.js.map +1 -1
- package/lib/node/console-logger-server.spec.js +5 -5
- package/lib/node/debug.js.map +1 -1
- package/lib/node/dynamic-require.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/env-variables/index.js.map +1 -1
- package/lib/node/environment-utils.js +2 -2
- package/lib/node/environment-utils.js.map +1 -1
- package/lib/node/environment-utils.spec.js.map +1 -1
- package/lib/node/file-uri.spec.js.map +1 -1
- package/lib/node/filesystem-locking.js +2 -2
- package/lib/node/filesystem-locking.js.map +1 -1
- package/lib/node/hosting/backend-application-hosts.js +6 -6
- package/lib/node/hosting/backend-application-hosts.js.map +1 -1
- package/lib/node/hosting/ws-origin-validator.js +4 -4
- package/lib/node/hosting/ws-origin-validator.js.map +1 -1
- package/lib/node/i18n/localization-contribution.js +6 -6
- package/lib/node/i18n/localization-contribution.js.map +1 -1
- package/lib/node/i18n/localization-provider.js +3 -3
- package/lib/node/i18n/localization-provider.js.map +1 -1
- package/lib/node/i18n/localization-server.js +6 -6
- package/lib/node/i18n/localization-server.js.map +1 -1
- package/lib/node/i18n/theia-localization-contribution.js +2 -2
- package/lib/node/i18n/theia-localization-contribution.js.map +1 -1
- package/lib/node/index.js +5 -5
- package/lib/node/index.js.map +1 -1
- package/lib/node/key-store-server.js +2 -2
- package/lib/node/key-store-server.js.map +1 -1
- package/lib/node/logger-backend-module.js.map +1 -1
- package/lib/node/logger-cli-contribution.js +4 -4
- package/lib/node/logger-cli-contribution.js.map +1 -1
- package/lib/node/logger-cli-contribution.spec.js.map +1 -1
- package/lib/node/main.d.ts +2 -0
- package/lib/node/main.d.ts.map +1 -1
- package/lib/node/messaging/binary-message-pipe.js +3 -3
- package/lib/node/messaging/binary-message-pipe.js.map +1 -1
- package/lib/node/messaging/connection-container-module.d.ts +3 -3
- package/lib/node/messaging/connection-container-module.d.ts.map +1 -1
- package/lib/node/messaging/default-messaging-service.js +10 -10
- package/lib/node/messaging/default-messaging-service.js.map +1 -1
- package/lib/node/messaging/index.js +3 -3
- package/lib/node/messaging/index.js.map +1 -1
- package/lib/node/messaging/ipc-channel.js.map +1 -1
- package/lib/node/messaging/ipc-connection-provider.d.ts +2 -1
- package/lib/node/messaging/ipc-connection-provider.d.ts.map +1 -1
- package/lib/node/messaging/ipc-connection-provider.js +4 -4
- package/lib/node/messaging/ipc-connection-provider.js.map +1 -1
- package/lib/node/messaging/ipc-protocol.d.ts +1 -1
- package/lib/node/messaging/ipc-protocol.d.ts.map +1 -1
- package/lib/node/messaging/ipc-protocol.js +1 -1
- package/lib/node/messaging/ipc-protocol.js.map +1 -1
- package/lib/node/messaging/messaging-listeners.js +4 -4
- package/lib/node/messaging/messaging-listeners.js.map +1 -1
- package/lib/node/messaging/messaging-service.js +1 -1
- package/lib/node/messaging/messaging-service.js.map +1 -1
- package/lib/node/messaging/test/test-web-socket-channel.d.ts +1 -0
- package/lib/node/messaging/test/test-web-socket-channel.d.ts.map +1 -1
- package/lib/node/messaging/test/test-web-socket-channel.js +2 -2
- package/lib/node/messaging/test/test-web-socket-channel.js.map +1 -1
- package/lib/node/messaging/websocket-endpoint.d.ts +1 -0
- package/lib/node/messaging/websocket-endpoint.d.ts.map +1 -1
- package/lib/node/messaging/websocket-endpoint.js +6 -6
- package/lib/node/messaging/websocket-endpoint.js.map +1 -1
- package/lib/node/messaging/websocket-frontend-connection-service.js +4 -4
- package/lib/node/messaging/websocket-frontend-connection-service.js.map +1 -1
- package/lib/node/os-backend-provider.js +2 -2
- package/lib/node/os-backend-provider.js.map +1 -1
- package/lib/node/performance/index.js +2 -2
- package/lib/node/performance/index.js.map +1 -1
- package/lib/node/performance/node-stopwatch.js +3 -3
- package/lib/node/performance/node-stopwatch.js.map +1 -1
- package/lib/node/process-utils.js +2 -2
- package/lib/node/process-utils.js.map +1 -1
- package/lib/node/remote/backend-remote-service.js +2 -2
- package/lib/node/remote/backend-remote-service.js.map +1 -1
- package/lib/node/request/backend-request-facade.js +4 -4
- package/lib/node/request/backend-request-facade.js.map +1 -1
- package/lib/node/request/proxy-cli-contribution.js +4 -4
- package/lib/node/request/proxy-cli-contribution.js.map +1 -1
- package/lib/node/ws-request-validators.js +4 -4
- package/lib/node/ws-request-validators.js.map +1 -1
- package/package.json +10 -7
- package/src/browser/common-frontend-contribution.ts +3 -3
- package/src/browser/core-preferences.ts +1 -1
- package/src/browser/frontend-application-module.ts +13 -7
- package/src/browser/index.ts +1 -0
- package/src/browser/keybinding.spec.ts +2 -1
- package/src/browser/saveable-service.ts +328 -0
- package/src/browser/saveable.ts +43 -97
- package/src/browser/shell/additional-views-menu-widget.tsx +5 -5
- package/src/browser/shell/application-shell.ts +8 -15
- package/src/browser/shell/side-panel-handler.ts +2 -1
- package/src/browser/shell/tab-bars.ts +39 -56
- package/src/browser/shell/view-column-service.ts +125 -0
- package/src/browser/test/mock-storage-service.ts +1 -1
- package/src/browser/window/default-secondary-window-service.ts +6 -2
- package/src/common/encoding-service.ts +1 -1
- package/src/common/i18n/nls.metadata.json +11381 -8583
- package/src/common/preferences/preference-schema.ts +1 -0
- package/src/common/selection-command-handler.ts +1 -1
- package/src/electron-browser/window/electron-window-preferences.ts +1 -1
- package/src/electron-main/electron-main-application.ts +1 -0
- package/src/electron-node/cli/electron-backend-cli-module.ts +24 -0
- package/src/electron-node/cli/electron-cli-contribution.ts +35 -0
- package/src/node/cli.ts +2 -2
- package/lib/browser/save-resource-service.d.ts +0 -36
- package/lib/browser/save-resource-service.d.ts.map +0 -1
- package/lib/browser/save-resource-service.js +0 -65
- package/lib/browser/save-resource-service.js.map +0 -1
- package/src/browser/save-resource-service.ts +0 -60
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (C) 2022 Arm and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
|
|
17
|
+
import type { ApplicationShell } from './shell';
|
|
18
|
+
import { injectable } from 'inversify';
|
|
19
|
+
import { UNTITLED_SCHEME, URI, Disposable, DisposableCollection, Emitter, Event } from '../common';
|
|
20
|
+
import { Navigatable, NavigatableWidget } from './navigatable-types';
|
|
21
|
+
import { AutoSaveMode, Saveable, SaveableSource, SaveableWidget, SaveOptions, SaveReason, setDirty, close, PostCreationSaveableWidget, ShouldSaveDialog } from './saveable';
|
|
22
|
+
import { waitForClosed, Widget } from './widgets';
|
|
23
|
+
import { FrontendApplicationContribution } from './frontend-application-contribution';
|
|
24
|
+
import { FrontendApplication } from './frontend-application';
|
|
25
|
+
import throttle = require('lodash.throttle');
|
|
26
|
+
|
|
27
|
+
@injectable()
|
|
28
|
+
export class SaveableService implements FrontendApplicationContribution {
|
|
29
|
+
|
|
30
|
+
protected saveThrottles = new Map<Widget, AutoSaveThrottle>();
|
|
31
|
+
protected saveMode: AutoSaveMode = 'off';
|
|
32
|
+
protected saveDelay = 1000;
|
|
33
|
+
protected shell: ApplicationShell;
|
|
34
|
+
|
|
35
|
+
protected readonly onDidAutoSaveChangeEmitter = new Emitter<AutoSaveMode>();
|
|
36
|
+
protected readonly onDidAutoSaveDelayChangeEmitter = new Emitter<number>();
|
|
37
|
+
|
|
38
|
+
get onDidAutoSaveChange(): Event<AutoSaveMode> {
|
|
39
|
+
return this.onDidAutoSaveChangeEmitter.event;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
get onDidAutoSaveDelayChange(): Event<number> {
|
|
43
|
+
return this.onDidAutoSaveDelayChangeEmitter.event;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
get autoSave(): AutoSaveMode {
|
|
47
|
+
return this.saveMode;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
set autoSave(value: AutoSaveMode) {
|
|
51
|
+
this.updateAutoSaveMode(value);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
get autoSaveDelay(): number {
|
|
55
|
+
return this.saveDelay;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
set autoSaveDelay(value: number) {
|
|
59
|
+
this.updateAutoSaveDelay(value);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
onDidInitializeLayout(app: FrontendApplication): void {
|
|
63
|
+
this.shell = app.shell;
|
|
64
|
+
// Register restored editors first
|
|
65
|
+
for (const widget of this.shell.widgets) {
|
|
66
|
+
const saveable = Saveable.get(widget);
|
|
67
|
+
if (saveable) {
|
|
68
|
+
this.registerSaveable(widget, saveable);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
this.shell.onDidAddWidget(e => {
|
|
72
|
+
const saveable = Saveable.get(e);
|
|
73
|
+
if (saveable) {
|
|
74
|
+
this.registerSaveable(e, saveable);
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
this.shell.onDidChangeCurrentWidget(e => {
|
|
78
|
+
if (this.saveMode === 'onFocusChange') {
|
|
79
|
+
const widget = e.oldValue;
|
|
80
|
+
const saveable = Saveable.get(widget);
|
|
81
|
+
if (saveable && widget && this.shouldAutoSave(widget, saveable)) {
|
|
82
|
+
saveable.save({
|
|
83
|
+
saveReason: SaveReason.FocusChange
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
this.shell.onDidRemoveWidget(e => {
|
|
89
|
+
this.saveThrottles.get(e)?.dispose();
|
|
90
|
+
this.saveThrottles.delete(e);
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
protected updateAutoSaveMode(mode: AutoSaveMode): void {
|
|
95
|
+
this.saveMode = mode;
|
|
96
|
+
this.onDidAutoSaveChangeEmitter.fire(mode);
|
|
97
|
+
if (mode === 'onFocusChange') {
|
|
98
|
+
// If the new mode is onFocusChange, we need to save all dirty documents that are not focused
|
|
99
|
+
const widgets = this.shell.widgets;
|
|
100
|
+
for (const widget of widgets) {
|
|
101
|
+
const saveable = Saveable.get(widget);
|
|
102
|
+
if (saveable && widget !== this.shell.currentWidget && this.shouldAutoSave(widget, saveable)) {
|
|
103
|
+
saveable.save({
|
|
104
|
+
saveReason: SaveReason.FocusChange
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
protected updateAutoSaveDelay(delay: number): void {
|
|
112
|
+
this.saveDelay = delay;
|
|
113
|
+
this.onDidAutoSaveDelayChangeEmitter.fire(delay);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
registerSaveable(widget: Widget, saveable: Saveable): Disposable {
|
|
117
|
+
const saveThrottle = new AutoSaveThrottle(
|
|
118
|
+
saveable,
|
|
119
|
+
this,
|
|
120
|
+
() => {
|
|
121
|
+
if (this.saveMode === 'afterDelay' && this.shouldAutoSave(widget, saveable)) {
|
|
122
|
+
saveable.save({
|
|
123
|
+
saveReason: SaveReason.AfterDelay
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
this.addBlurListener(widget, saveable)
|
|
128
|
+
);
|
|
129
|
+
this.saveThrottles.set(widget, saveThrottle);
|
|
130
|
+
this.applySaveableWidget(widget, saveable);
|
|
131
|
+
return saveThrottle;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
protected addBlurListener(widget: Widget, saveable: Saveable): Disposable {
|
|
135
|
+
const document = widget.node.ownerDocument;
|
|
136
|
+
const listener = (() => {
|
|
137
|
+
if (this.saveMode === 'onWindowChange' && !this.windowHasFocus(document) && this.shouldAutoSave(widget, saveable)) {
|
|
138
|
+
saveable.save({
|
|
139
|
+
saveReason: SaveReason.FocusChange
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
}).bind(this);
|
|
143
|
+
document.addEventListener('blur', listener);
|
|
144
|
+
return Disposable.create(() => {
|
|
145
|
+
document.removeEventListener('blur', listener);
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
protected windowHasFocus(document: Document): boolean {
|
|
150
|
+
if (document.visibilityState === 'hidden') {
|
|
151
|
+
return false;
|
|
152
|
+
} else if (document.hasFocus()) {
|
|
153
|
+
return true;
|
|
154
|
+
}
|
|
155
|
+
// TODO: Add support for iframes
|
|
156
|
+
return false;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
protected shouldAutoSave(widget: Widget, saveable: Saveable): boolean {
|
|
160
|
+
const uri = NavigatableWidget.getUri(widget);
|
|
161
|
+
if (uri?.scheme === UNTITLED_SCHEME) {
|
|
162
|
+
// Never auto-save untitled documents
|
|
163
|
+
return false;
|
|
164
|
+
} else {
|
|
165
|
+
return saveable.dirty;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
protected applySaveableWidget(widget: Widget, saveable: Saveable): void {
|
|
170
|
+
if (SaveableWidget.is(widget)) {
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
const saveableWidget = widget as PostCreationSaveableWidget;
|
|
174
|
+
setDirty(saveableWidget, saveable.dirty);
|
|
175
|
+
saveable.onDirtyChanged(() => setDirty(saveableWidget, saveable.dirty));
|
|
176
|
+
const closeWithSaving = this.createCloseWithSaving();
|
|
177
|
+
const closeWithoutSaving = () => this.closeWithoutSaving(saveableWidget, false);
|
|
178
|
+
Object.assign(saveableWidget, {
|
|
179
|
+
closeWithoutSaving,
|
|
180
|
+
closeWithSaving,
|
|
181
|
+
close: closeWithSaving,
|
|
182
|
+
[close]: saveableWidget.close,
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
protected createCloseWithSaving(): (this: SaveableWidget, options?: SaveableWidget.CloseOptions) => Promise<void> {
|
|
187
|
+
let closing = false;
|
|
188
|
+
const doSave = this.closeWithSaving.bind(this);
|
|
189
|
+
return async function (this: SaveableWidget, options?: SaveableWidget.CloseOptions): Promise<void> {
|
|
190
|
+
if (closing) {
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
closing = true;
|
|
194
|
+
try {
|
|
195
|
+
await doSave(this, options);
|
|
196
|
+
} finally {
|
|
197
|
+
closing = false;
|
|
198
|
+
}
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
protected async closeWithSaving(widget: PostCreationSaveableWidget, options?: SaveableWidget.CloseOptions): Promise<void> {
|
|
203
|
+
const result = await this.shouldSaveWidget(widget, options);
|
|
204
|
+
if (typeof result === 'boolean') {
|
|
205
|
+
if (result) {
|
|
206
|
+
await this.save(widget, {
|
|
207
|
+
saveReason: SaveReason.AfterDelay
|
|
208
|
+
});
|
|
209
|
+
if (!Saveable.isDirty(widget)) {
|
|
210
|
+
await widget.closeWithoutSaving();
|
|
211
|
+
}
|
|
212
|
+
} else {
|
|
213
|
+
await widget.closeWithoutSaving();
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
protected async shouldSaveWidget(widget: PostCreationSaveableWidget, options?: SaveableWidget.CloseOptions): Promise<boolean | undefined> {
|
|
219
|
+
if (!Saveable.isDirty(widget)) {
|
|
220
|
+
return false;
|
|
221
|
+
}
|
|
222
|
+
if (this.autoSave !== 'off') {
|
|
223
|
+
return true;
|
|
224
|
+
}
|
|
225
|
+
const notLastWithDocument = !Saveable.closingWidgetWouldLoseSaveable(widget, Array.from(this.saveThrottles.keys()));
|
|
226
|
+
if (notLastWithDocument) {
|
|
227
|
+
return widget.closeWithoutSaving(false).then(() => undefined);
|
|
228
|
+
}
|
|
229
|
+
if (options && options.shouldSave) {
|
|
230
|
+
return options.shouldSave();
|
|
231
|
+
}
|
|
232
|
+
return new ShouldSaveDialog(widget).open();
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
protected async closeWithoutSaving(widget: PostCreationSaveableWidget, doRevert: boolean = true): Promise<void> {
|
|
236
|
+
const saveable = Saveable.get(widget);
|
|
237
|
+
if (saveable && doRevert && saveable.dirty && saveable.revert) {
|
|
238
|
+
await saveable.revert();
|
|
239
|
+
}
|
|
240
|
+
widget[close]();
|
|
241
|
+
return waitForClosed(widget);
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
/**
|
|
245
|
+
* Indicate if the document can be saved ('Save' command should be disable if not).
|
|
246
|
+
*/
|
|
247
|
+
canSave(widget?: Widget): widget is Widget & (Saveable | SaveableSource) {
|
|
248
|
+
return Saveable.isDirty(widget) && (this.canSaveNotSaveAs(widget) || this.canSaveAs(widget));
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
canSaveNotSaveAs(widget?: Widget): widget is Widget & (Saveable | SaveableSource) {
|
|
252
|
+
// By default, we never allow a document to be saved if it is untitled.
|
|
253
|
+
return Boolean(widget && NavigatableWidget.getUri(widget)?.scheme !== UNTITLED_SCHEME);
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
/**
|
|
257
|
+
* Saves the document
|
|
258
|
+
*
|
|
259
|
+
* No op if the widget is not saveable.
|
|
260
|
+
*/
|
|
261
|
+
async save(widget: Widget | undefined, options?: SaveOptions): Promise<URI | undefined> {
|
|
262
|
+
if (this.canSaveNotSaveAs(widget)) {
|
|
263
|
+
await Saveable.save(widget, options);
|
|
264
|
+
return NavigatableWidget.getUri(widget);
|
|
265
|
+
} else if (this.canSaveAs(widget)) {
|
|
266
|
+
return this.saveAs(widget, options);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
canSaveAs(saveable?: Widget): saveable is Widget & SaveableSource & Navigatable {
|
|
271
|
+
return false;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
saveAs(sourceWidget: Widget & SaveableSource & Navigatable, options?: SaveOptions): Promise<URI | undefined> {
|
|
275
|
+
return Promise.reject('Unsupported: The base SaveResourceService does not support saveAs action.');
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
export class AutoSaveThrottle implements Disposable {
|
|
280
|
+
|
|
281
|
+
private _saveable: Saveable;
|
|
282
|
+
private _callback: () => void;
|
|
283
|
+
private _saveService: SaveableService;
|
|
284
|
+
private _disposable: DisposableCollection;
|
|
285
|
+
private _throttle?: ReturnType<typeof throttle>;
|
|
286
|
+
|
|
287
|
+
constructor(saveable: Saveable, saveService: SaveableService, callback: () => void, ...disposables: Disposable[]) {
|
|
288
|
+
this._callback = callback;
|
|
289
|
+
this._saveable = saveable;
|
|
290
|
+
this._saveService = saveService;
|
|
291
|
+
this._disposable = new DisposableCollection(
|
|
292
|
+
...disposables,
|
|
293
|
+
saveable.onContentChanged(() => {
|
|
294
|
+
this.throttledSave();
|
|
295
|
+
}),
|
|
296
|
+
saveable.onDirtyChanged(() => {
|
|
297
|
+
this.throttledSave();
|
|
298
|
+
}),
|
|
299
|
+
saveService.onDidAutoSaveChange(() => {
|
|
300
|
+
this.throttledSave();
|
|
301
|
+
}),
|
|
302
|
+
saveService.onDidAutoSaveDelayChange(() => {
|
|
303
|
+
this.throttledSave(true);
|
|
304
|
+
})
|
|
305
|
+
);
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
protected throttledSave(reset = false): void {
|
|
309
|
+
this._throttle?.cancel();
|
|
310
|
+
if (reset) {
|
|
311
|
+
this._throttle = undefined;
|
|
312
|
+
}
|
|
313
|
+
if (this._saveService.autoSave === 'afterDelay' && this._saveable.dirty) {
|
|
314
|
+
if (!this._throttle) {
|
|
315
|
+
this._throttle = throttle(() => this._callback(), this._saveService.autoSaveDelay, {
|
|
316
|
+
leading: false,
|
|
317
|
+
trailing: true
|
|
318
|
+
});
|
|
319
|
+
}
|
|
320
|
+
this._throttle();
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
dispose(): void {
|
|
325
|
+
this._disposable.dispose();
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
}
|
package/src/browser/saveable.ts
CHANGED
|
@@ -20,14 +20,23 @@ import { Emitter, Event } from '../common/event';
|
|
|
20
20
|
import { MaybePromise } from '../common/types';
|
|
21
21
|
import { Key } from './keyboard/keys';
|
|
22
22
|
import { AbstractDialog } from './dialogs';
|
|
23
|
-
import { waitForClosed } from './widgets';
|
|
24
23
|
import { nls } from '../common/nls';
|
|
25
|
-
import {
|
|
24
|
+
import { DisposableCollection, isObject } from '../common';
|
|
25
|
+
|
|
26
|
+
export type AutoSaveMode = 'off' | 'afterDelay' | 'onFocusChange' | 'onWindowChange';
|
|
26
27
|
|
|
27
28
|
export interface Saveable {
|
|
28
29
|
readonly dirty: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* This event is fired when the content of the `dirty` variable changes.
|
|
32
|
+
*/
|
|
29
33
|
readonly onDirtyChanged: Event<void>;
|
|
30
|
-
|
|
34
|
+
/**
|
|
35
|
+
* This event is fired when the content of the saveable changes.
|
|
36
|
+
* While `onDirtyChanged` is fired to notify the UI that the widget is dirty,
|
|
37
|
+
* `onContentChanged` is used for the auto save throttling.
|
|
38
|
+
*/
|
|
39
|
+
readonly onContentChanged: Event<void>;
|
|
31
40
|
/**
|
|
32
41
|
* Saves dirty changes.
|
|
33
42
|
*/
|
|
@@ -53,11 +62,15 @@ export interface SaveableSource {
|
|
|
53
62
|
export class DelegatingSaveable implements Saveable {
|
|
54
63
|
dirty = false;
|
|
55
64
|
protected readonly onDirtyChangedEmitter = new Emitter<void>();
|
|
65
|
+
protected readonly onContentChangedEmitter = new Emitter<void>();
|
|
56
66
|
|
|
57
67
|
get onDirtyChanged(): Event<void> {
|
|
58
68
|
return this.onDirtyChangedEmitter.event;
|
|
59
69
|
}
|
|
60
|
-
|
|
70
|
+
|
|
71
|
+
get onContentChanged(): Event<void> {
|
|
72
|
+
return this.onContentChangedEmitter.event;
|
|
73
|
+
}
|
|
61
74
|
|
|
62
75
|
async save(options?: SaveOptions): Promise<void> {
|
|
63
76
|
await this._delegate?.save(options);
|
|
@@ -68,16 +81,19 @@ export class DelegatingSaveable implements Saveable {
|
|
|
68
81
|
applySnapshot?(snapshot: object): void;
|
|
69
82
|
|
|
70
83
|
protected _delegate?: Saveable;
|
|
71
|
-
protected toDispose
|
|
84
|
+
protected toDispose = new DisposableCollection();
|
|
72
85
|
|
|
73
86
|
set delegate(delegate: Saveable) {
|
|
74
|
-
this.toDispose
|
|
87
|
+
this.toDispose.dispose();
|
|
88
|
+
this.toDispose = new DisposableCollection();
|
|
75
89
|
this._delegate = delegate;
|
|
76
|
-
this.toDispose
|
|
90
|
+
this.toDispose.push(delegate.onDirtyChanged(() => {
|
|
77
91
|
this.dirty = delegate.dirty;
|
|
78
92
|
this.onDirtyChangedEmitter.fire();
|
|
79
|
-
});
|
|
80
|
-
this.
|
|
93
|
+
}));
|
|
94
|
+
this.toDispose.push(delegate.onContentChanged(() => {
|
|
95
|
+
this.onContentChangedEmitter.fire();
|
|
96
|
+
}));
|
|
81
97
|
if (this.dirty !== delegate.dirty) {
|
|
82
98
|
this.dirty = delegate.dirty;
|
|
83
99
|
this.onDirtyChangedEmitter.fire();
|
|
@@ -131,52 +147,6 @@ export namespace Saveable {
|
|
|
131
147
|
}
|
|
132
148
|
}
|
|
133
149
|
|
|
134
|
-
async function closeWithoutSaving(this: PostCreationSaveableWidget, doRevert: boolean = true): Promise<void> {
|
|
135
|
-
const saveable = get(this);
|
|
136
|
-
if (saveable && doRevert && saveable.dirty && saveable.revert) {
|
|
137
|
-
await saveable.revert();
|
|
138
|
-
}
|
|
139
|
-
this[close]();
|
|
140
|
-
return waitForClosed(this);
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
function createCloseWithSaving(
|
|
144
|
-
getOtherSaveables?: () => Array<Widget | SaveableWidget>,
|
|
145
|
-
doSave?: (widget: Widget, options?: SaveOptions) => Promise<void>
|
|
146
|
-
): (this: SaveableWidget, options?: SaveableWidget.CloseOptions) => Promise<void> {
|
|
147
|
-
let closing = false;
|
|
148
|
-
return async function (this: SaveableWidget, options: SaveableWidget.CloseOptions): Promise<void> {
|
|
149
|
-
if (closing) { return; }
|
|
150
|
-
const saveable = get(this);
|
|
151
|
-
if (!saveable) { return; }
|
|
152
|
-
closing = true;
|
|
153
|
-
try {
|
|
154
|
-
const result = await shouldSave(saveable, () => {
|
|
155
|
-
const notLastWithDocument = !closingWidgetWouldLoseSaveable(this, getOtherSaveables?.() ?? []);
|
|
156
|
-
if (notLastWithDocument) {
|
|
157
|
-
return this.closeWithoutSaving(false).then(() => undefined);
|
|
158
|
-
}
|
|
159
|
-
if (options && options.shouldSave) {
|
|
160
|
-
return options.shouldSave();
|
|
161
|
-
}
|
|
162
|
-
return new ShouldSaveDialog(this).open();
|
|
163
|
-
});
|
|
164
|
-
if (typeof result === 'boolean') {
|
|
165
|
-
if (result) {
|
|
166
|
-
await (doSave?.(this) ?? Saveable.save(this));
|
|
167
|
-
if (!isDirty(this)) {
|
|
168
|
-
await this.closeWithoutSaving();
|
|
169
|
-
}
|
|
170
|
-
} else {
|
|
171
|
-
await this.closeWithoutSaving();
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
} finally {
|
|
175
|
-
closing = false;
|
|
176
|
-
}
|
|
177
|
-
};
|
|
178
|
-
}
|
|
179
|
-
|
|
180
150
|
export async function confirmSaveBeforeClose(toClose: Iterable<Widget>, others: Widget[]): Promise<boolean | undefined> {
|
|
181
151
|
for (const widget of toClose) {
|
|
182
152
|
const saveable = Saveable.get(widget);
|
|
@@ -197,49 +167,9 @@ export namespace Saveable {
|
|
|
197
167
|
return true;
|
|
198
168
|
}
|
|
199
169
|
|
|
200
|
-
|
|
201
|
-
* @param widget the widget that may be closed
|
|
202
|
-
* @param others widgets that will not be closed.
|
|
203
|
-
* @returns `true` if widget is saveable and no widget among the `others` refers to the same saveable. `false` otherwise.
|
|
204
|
-
*/
|
|
205
|
-
function closingWidgetWouldLoseSaveable(widget: Widget, others: Widget[]): boolean {
|
|
206
|
-
const saveable = get(widget);
|
|
207
|
-
return !!saveable && !others.some(otherWidget => otherWidget !== widget && get(otherWidget) === saveable);
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
export function apply(
|
|
211
|
-
widget: Widget,
|
|
212
|
-
getOtherSaveables?: () => Array<Widget | SaveableWidget>,
|
|
213
|
-
doSave?: (widget: Widget, options?: SaveOptions) => Promise<void>,
|
|
214
|
-
): SaveableWidget | undefined {
|
|
215
|
-
if (SaveableWidget.is(widget)) {
|
|
216
|
-
return widget;
|
|
217
|
-
}
|
|
170
|
+
export function closingWidgetWouldLoseSaveable(widget: Widget, others: Widget[]): boolean {
|
|
218
171
|
const saveable = Saveable.get(widget);
|
|
219
|
-
|
|
220
|
-
return undefined;
|
|
221
|
-
}
|
|
222
|
-
const saveableWidget = widget as SaveableWidget;
|
|
223
|
-
setDirty(saveableWidget, saveable.dirty);
|
|
224
|
-
saveable.onDirtyChanged(() => setDirty(saveableWidget, saveable.dirty));
|
|
225
|
-
const closeWithSaving = createCloseWithSaving(getOtherSaveables, doSave);
|
|
226
|
-
return Object.assign(saveableWidget, {
|
|
227
|
-
closeWithoutSaving,
|
|
228
|
-
closeWithSaving,
|
|
229
|
-
close: closeWithSaving,
|
|
230
|
-
[close]: saveableWidget.close,
|
|
231
|
-
});
|
|
232
|
-
}
|
|
233
|
-
export async function shouldSave(saveable: Saveable, cb: () => MaybePromise<boolean | undefined>): Promise<boolean | undefined> {
|
|
234
|
-
if (!saveable.dirty) {
|
|
235
|
-
return false;
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
if (saveable.autoSave !== 'off') {
|
|
239
|
-
return true;
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
return cb();
|
|
172
|
+
return !!saveable && !others.some(otherWidget => otherWidget !== widget && Saveable.get(otherWidget) === saveable);
|
|
243
173
|
}
|
|
244
174
|
}
|
|
245
175
|
|
|
@@ -302,11 +232,27 @@ export const enum FormatType {
|
|
|
302
232
|
DIRTY
|
|
303
233
|
};
|
|
304
234
|
|
|
235
|
+
export enum SaveReason {
|
|
236
|
+
Manual = 1,
|
|
237
|
+
AfterDelay = 2,
|
|
238
|
+
FocusChange = 3
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
export namespace SaveReason {
|
|
242
|
+
export function isManual(reason?: number): reason is typeof SaveReason.Manual {
|
|
243
|
+
return reason === SaveReason.Manual;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
|
|
305
247
|
export interface SaveOptions {
|
|
306
248
|
/**
|
|
307
249
|
* Formatting type to apply when saving.
|
|
308
250
|
*/
|
|
309
251
|
readonly formatType?: FormatType;
|
|
252
|
+
/**
|
|
253
|
+
* The reason for saving the resource.
|
|
254
|
+
*/
|
|
255
|
+
readonly saveReason?: SaveReason;
|
|
310
256
|
}
|
|
311
257
|
|
|
312
258
|
/**
|
|
@@ -23,13 +23,13 @@ import { SideTabBar } from './tab-bars';
|
|
|
23
23
|
export const AdditionalViewsMenuWidgetFactory = Symbol('AdditionalViewsMenuWidgetFactory');
|
|
24
24
|
export type AdditionalViewsMenuWidgetFactory = (side: 'left' | 'right') => AdditionalViewsMenuWidget;
|
|
25
25
|
|
|
26
|
-
export const
|
|
27
|
-
|
|
26
|
+
export const AdditionalViewsMenuPath = Symbol('AdditionalViewsMenuPath');
|
|
28
27
|
@injectable()
|
|
29
28
|
export class AdditionalViewsMenuWidget extends SidebarMenuWidget {
|
|
30
29
|
static readonly ID = 'sidebar.additional.views';
|
|
31
30
|
|
|
32
|
-
|
|
31
|
+
@inject(AdditionalViewsMenuPath)
|
|
32
|
+
protected menuPath: MenuPath;
|
|
33
33
|
|
|
34
34
|
@inject(CommandRegistry)
|
|
35
35
|
protected readonly commandRegistry: CommandRegistry;
|
|
@@ -47,7 +47,7 @@ export class AdditionalViewsMenuWidget extends SidebarMenuWidget {
|
|
|
47
47
|
title: nls.localizeByDefault('Additional Views'),
|
|
48
48
|
iconClass: codicon('ellipsis'),
|
|
49
49
|
id: AdditionalViewsMenuWidget.ID,
|
|
50
|
-
menuPath:
|
|
50
|
+
menuPath: this.menuPath,
|
|
51
51
|
order: 0
|
|
52
52
|
});
|
|
53
53
|
}
|
|
@@ -66,6 +66,6 @@ export class AdditionalViewsMenuWidget extends SidebarMenuWidget {
|
|
|
66
66
|
});
|
|
67
67
|
}
|
|
68
68
|
}));
|
|
69
|
-
this.menuDisposables.push(this.menuModelRegistry.registerMenuAction(
|
|
69
|
+
this.menuDisposables.push(this.menuModelRegistry.registerMenuAction(this.menuPath, { commandId: command.id, order: index.toString() }));
|
|
70
70
|
}
|
|
71
71
|
}
|
|
@@ -24,7 +24,7 @@ import { Message } from '@phosphor/messaging';
|
|
|
24
24
|
import { IDragEvent } from '@phosphor/dragdrop';
|
|
25
25
|
import { RecursivePartial, Event as CommonEvent, DisposableCollection, Disposable, environment, isObject } from '../../common';
|
|
26
26
|
import { animationFrame } from '../browser';
|
|
27
|
-
import { Saveable, SaveableWidget, SaveOptions
|
|
27
|
+
import { Saveable, SaveableWidget, SaveOptions } from '../saveable';
|
|
28
28
|
import { StatusBarImpl, StatusBarEntry, StatusBarAlignment } from '../status-bar/status-bar';
|
|
29
29
|
import { TheiaDockPanel, BOTTOM_AREA_ID, MAIN_AREA_ID } from './theia-dock-panel';
|
|
30
30
|
import { SidePanelHandler, SidePanel, SidePanelHandlerFactory } from './side-panel-handler';
|
|
@@ -38,7 +38,7 @@ import { waitForRevealed, waitForClosed, PINNED_CLASS } from '../widgets';
|
|
|
38
38
|
import { CorePreferences } from '../core-preferences';
|
|
39
39
|
import { BreadcrumbsRendererFactory } from '../breadcrumbs/breadcrumbs-renderer';
|
|
40
40
|
import { Deferred } from '../../common/promise-util';
|
|
41
|
-
import {
|
|
41
|
+
import { SaveableService } from '../saveable-service';
|
|
42
42
|
import { nls } from '../../common/nls';
|
|
43
43
|
import { SecondaryWindowHandler } from '../secondary-window-handler';
|
|
44
44
|
import URI from '../../common/uri';
|
|
@@ -272,7 +272,7 @@ export class ApplicationShell extends Widget {
|
|
|
272
272
|
@inject(FrontendApplicationStateService) protected readonly applicationStateService: FrontendApplicationStateService,
|
|
273
273
|
@inject(ApplicationShellOptions) @optional() options: RecursivePartial<ApplicationShell.Options> = {},
|
|
274
274
|
@inject(CorePreferences) protected readonly corePreferences: CorePreferences,
|
|
275
|
-
@inject(
|
|
275
|
+
@inject(SaveableService) protected readonly saveableService: SaveableService,
|
|
276
276
|
@inject(SecondaryWindowHandler) protected readonly secondaryWindowHandler: SecondaryWindowHandler,
|
|
277
277
|
@inject(WindowService) protected readonly windowService: WindowService
|
|
278
278
|
) {
|
|
@@ -1231,13 +1231,6 @@ export class ApplicationShell extends Widget {
|
|
|
1231
1231
|
}
|
|
1232
1232
|
this.tracker.add(widget);
|
|
1233
1233
|
this.checkActivation(widget);
|
|
1234
|
-
Saveable.apply(
|
|
1235
|
-
widget,
|
|
1236
|
-
() => this.widgets.filter((maybeSaveable): maybeSaveable is Widget & SaveableSource => !!Saveable.get(maybeSaveable)),
|
|
1237
|
-
async (toSave, options) => {
|
|
1238
|
-
await this.saveResourceService.save(toSave, options);
|
|
1239
|
-
},
|
|
1240
|
-
);
|
|
1241
1234
|
if (ApplicationShell.TrackableWidgetProvider.is(widget)) {
|
|
1242
1235
|
for (const toTrack of widget.getTrackableWidgets()) {
|
|
1243
1236
|
this.track(toTrack);
|
|
@@ -2043,21 +2036,21 @@ export class ApplicationShell extends Widget {
|
|
|
2043
2036
|
* Test whether the current widget is dirty.
|
|
2044
2037
|
*/
|
|
2045
2038
|
canSave(): boolean {
|
|
2046
|
-
return this.
|
|
2039
|
+
return this.saveableService.canSave(this.currentWidget);
|
|
2047
2040
|
}
|
|
2048
2041
|
|
|
2049
2042
|
/**
|
|
2050
2043
|
* Save the current widget if it is dirty.
|
|
2051
2044
|
*/
|
|
2052
2045
|
async save(options?: SaveOptions): Promise<void> {
|
|
2053
|
-
await this.
|
|
2046
|
+
await this.saveableService.save(this.currentWidget, options);
|
|
2054
2047
|
}
|
|
2055
2048
|
|
|
2056
2049
|
/**
|
|
2057
2050
|
* Test whether there is a dirty widget.
|
|
2058
2051
|
*/
|
|
2059
2052
|
canSaveAll(): boolean {
|
|
2060
|
-
return this.tracker.widgets.some(widget => this.
|
|
2053
|
+
return this.tracker.widgets.some(widget => this.saveableService.canSave(widget));
|
|
2061
2054
|
}
|
|
2062
2055
|
|
|
2063
2056
|
/**
|
|
@@ -2065,8 +2058,8 @@ export class ApplicationShell extends Widget {
|
|
|
2065
2058
|
*/
|
|
2066
2059
|
async saveAll(options?: SaveOptions): Promise<void> {
|
|
2067
2060
|
for (const widget of this.widgets) {
|
|
2068
|
-
if (this.
|
|
2069
|
-
await this.
|
|
2061
|
+
if (this.saveableService.canSaveNotSaveAs(widget)) {
|
|
2062
|
+
await this.saveableService.save(widget, options);
|
|
2070
2063
|
}
|
|
2071
2064
|
}
|
|
2072
2065
|
}
|
|
@@ -211,6 +211,7 @@ export class SidePanelHandler {
|
|
|
211
211
|
protected createAdditionalViewsWidget(): AdditionalViewsMenuWidget {
|
|
212
212
|
const widget = this.additionalViewsMenuFactory(this.side);
|
|
213
213
|
widget.addClass('theia-sidebar-menu');
|
|
214
|
+
widget.addClass('theia-additional-views-menu');
|
|
214
215
|
return widget;
|
|
215
216
|
}
|
|
216
217
|
|
|
@@ -653,7 +654,7 @@ export class SidePanelHandler {
|
|
|
653
654
|
}
|
|
654
655
|
|
|
655
656
|
protected onTabsOverflowChanged(sender: SideTabBar, event: { titles: Title<Widget>[], startIndex: number }): void {
|
|
656
|
-
if (event.startIndex
|
|
657
|
+
if (event.startIndex > 0 && event.startIndex <= sender.currentIndex) {
|
|
657
658
|
sender.revealTab(sender.currentIndex);
|
|
658
659
|
} else {
|
|
659
660
|
this.additionalViewsMenu.updateAdditionalViews(sender, event);
|