@theia/core 1.53.0-next.55 → 1.53.0-next.64
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 +582 -582
- package/i18n/nls.de.json +582 -582
- package/i18n/nls.es.json +582 -582
- package/i18n/nls.fr.json +582 -582
- package/i18n/nls.hu.json +582 -582
- package/i18n/nls.it.json +582 -582
- package/i18n/nls.ja.json +582 -582
- package/i18n/nls.json +582 -582
- package/i18n/nls.ko.json +582 -582
- package/i18n/nls.pl.json +582 -582
- package/i18n/nls.pt-br.json +582 -582
- package/i18n/nls.ru.json +582 -582
- package/i18n/nls.tr.json +582 -582
- package/i18n/nls.zh-cn.json +582 -582
- package/i18n/nls.zh-tw.json +582 -582
- package/lib/browser/catalog.json +54 -6
- package/lib/browser/common-frontend-contribution.js +3 -3
- package/lib/browser/common-styling-participants.js +166 -166
- package/lib/browser/progress-location-service.spec.js +7 -7
- package/lib/browser/storage-service.js +3 -3
- package/lib/browser/tree/tree.spec.js +75 -75
- package/lib/node/process-utils.spec.js +8 -8
- package/package.json +4 -4
- package/shared/ajv/index.d.ts +2 -2
- package/shared/markdown-it.d.ts +2 -2
- package/shared/markdown-it.js +1 -1
- package/shared/reflect-metadata/index.d.ts +1 -1
- package/shared/reflect-metadata/index.js +1 -1
- package/shared/vscode-languageserver-types/index.d.ts +1 -1
- package/src/browser/about-dialog.tsx +137 -137
- package/src/browser/authentication-service.ts +467 -467
- package/src/browser/breadcrumbs/breadcrumb-popup-container.ts +101 -101
- package/src/browser/breadcrumbs/breadcrumb-renderer.tsx +41 -41
- package/src/browser/breadcrumbs/breadcrumbs-constants.ts +79 -79
- package/src/browser/breadcrumbs/breadcrumbs-renderer.tsx +185 -185
- package/src/browser/breadcrumbs/breadcrumbs-service.ts +108 -108
- package/src/browser/breadcrumbs/index.ts +21 -21
- package/src/browser/browser-clipboard-service.ts +122 -122
- package/src/browser/browser.ts +239 -239
- package/src/browser/clipboard-service.ts +23 -23
- package/src/browser/color-application-contribution.ts +110 -110
- package/src/browser/color-registry.ts +60 -60
- package/src/browser/command-open-handler.ts +54 -54
- package/src/browser/common-frontend-contribution.ts +2680 -2680
- package/src/browser/common-styling-participants.ts +361 -361
- package/src/browser/connection-status-service.spec.ts +200 -200
- package/src/browser/connection-status-service.ts +216 -216
- package/src/browser/context-key-service.ts +142 -142
- package/src/browser/context-menu-renderer.ts +124 -124
- package/src/browser/core-preferences.ts +343 -343
- package/src/browser/credentials-service.ts +106 -106
- package/src/browser/decoration-style.ts +65 -65
- package/src/browser/decorations-service.ts +209 -209
- package/src/browser/dialogs/react-dialog.tsx +56 -56
- package/src/browser/dialogs.ts +534 -534
- package/src/browser/diff-uris.ts +117 -117
- package/src/browser/encoding-registry.ts +97 -97
- package/src/browser/endpoint.spec.ts +148 -148
- package/src/browser/endpoint.ts +136 -136
- package/src/browser/external-uri-service.ts +79 -79
- package/src/browser/file-icons-js.d.ts +20 -20
- package/src/browser/frontend-application-bindings.ts +62 -62
- package/src/browser/frontend-application-config-provider.spec.ts +45 -45
- package/src/browser/frontend-application-config-provider.ts +50 -50
- package/src/browser/frontend-application-contribution.ts +110 -110
- package/src/browser/frontend-application-module.ts +474 -474
- package/src/browser/frontend-application-state.ts +74 -74
- package/src/browser/frontend-application.ts +326 -326
- package/src/browser/hover-service.ts +218 -218
- package/src/browser/http-open-handler.ts +49 -49
- package/src/browser/i18n/i18n-frontend-module.ts +27 -27
- package/src/browser/i18n/language-quick-pick-service.ts +130 -130
- package/src/browser/icon-registry.ts +87 -87
- package/src/browser/icon-theme-contribution.ts +64 -64
- package/src/browser/icon-theme-service.ts +217 -217
- package/src/browser/icons/CollapseAll.svg +7 -7
- package/src/browser/icons/CollapseAll_inverse.svg +7 -7
- package/src/browser/icons/Refresh.svg +7 -7
- package/src/browser/icons/Refresh_inverse.svg +7 -7
- package/src/browser/icons/add-inverse.svg +4 -4
- package/src/browser/icons/add.svg +4 -4
- package/src/browser/icons/arrow-down-bright.svg +6 -6
- package/src/browser/icons/arrow-down-dark.svg +6 -6
- package/src/browser/icons/arrow-up-bright.svg +6 -6
- package/src/browser/icons/arrow-up-dark.svg +6 -6
- package/src/browser/icons/case-sensitive-dark.svg +16 -16
- package/src/browser/icons/case-sensitive.svg +16 -16
- package/src/browser/icons/chevron-right-dark.svg +5 -5
- package/src/browser/icons/chevron-right-light.svg +6 -6
- package/src/browser/icons/circle-bright.svg +7 -7
- package/src/browser/icons/circle-dark.svg +7 -7
- package/src/browser/icons/clear-search-results-dark.svg +7 -7
- package/src/browser/icons/clear-search-results.svg +7 -7
- package/src/browser/icons/close-all-bright.svg +7 -7
- package/src/browser/icons/close-all-dark.svg +7 -7
- package/src/browser/icons/close-bright.svg +7 -7
- package/src/browser/icons/close-dark.svg +7 -7
- package/src/browser/icons/collapse.svg +4 -4
- package/src/browser/icons/edit-json-dark.svg +6 -6
- package/src/browser/icons/edit-json.svg +6 -6
- package/src/browser/icons/expand.svg +4 -4
- package/src/browser/icons/loading-dark.svg +6 -6
- package/src/browser/icons/loading-light.svg +6 -6
- package/src/browser/icons/open-change-bright.svg +3 -3
- package/src/browser/icons/open-change-dark.svg +4 -4
- package/src/browser/icons/open-file-bright.svg +4 -4
- package/src/browser/icons/open-file-dark.svg +4 -4
- package/src/browser/icons/preview-bright.svg +3 -3
- package/src/browser/icons/preview-dark.svg +3 -3
- package/src/browser/icons/regex-dark.svg +10 -10
- package/src/browser/icons/regex.svg +10 -10
- package/src/browser/icons/remove-all-inverse.svg +4 -4
- package/src/browser/icons/remove-all.svg +4 -4
- package/src/browser/icons/replace-all-inverse.svg +13 -13
- package/src/browser/icons/replace-all.svg +13 -13
- package/src/browser/icons/replace-inverse.svg +15 -15
- package/src/browser/icons/replace.svg +15 -15
- package/src/browser/icons/whole-word-dark.svg +19 -19
- package/src/browser/icons/whole-word.svg +19 -19
- package/src/browser/index.ts +50 -50
- package/src/browser/json-schema-store.ts +118 -118
- package/src/browser/keybinding.spec.ts +554 -554
- package/src/browser/keybinding.ts +759 -759
- package/src/browser/keyboard/browser-keyboard-frontend-contribution.ts +108 -108
- package/src/browser/keyboard/browser-keyboard-layout-provider.spec.ts +171 -171
- package/src/browser/keyboard/browser-keyboard-layout-provider.ts +469 -469
- package/src/browser/keyboard/browser-keyboard-module.ts +30 -30
- package/src/browser/keyboard/index.ts +20 -20
- package/src/browser/keyboard/keyboard-layout-service.spec.ts +121 -121
- package/src/browser/keyboard/keyboard-layout-service.ts +455 -455
- package/src/browser/keyboard/keys.spec.ts +258 -258
- package/src/browser/keyboard/keys.ts +20 -20
- package/src/browser/keys.ts +21 -21
- package/src/browser/label-parser.spec.ts +165 -165
- package/src/browser/label-parser.ts +108 -108
- package/src/browser/label-provider.spec.ts +62 -62
- package/src/browser/label-provider.ts +385 -385
- package/src/browser/language-icon-provider.ts +55 -55
- package/src/browser/language-service.ts +77 -77
- package/src/browser/logger-frontend-module.ts +65 -65
- package/src/browser/markdown-rendering/markdown-renderer.ts +98 -98
- package/src/browser/menu/browser-context-menu-renderer.ts +48 -48
- package/src/browser/menu/browser-menu-module.ts +28 -28
- package/src/browser/menu/browser-menu-plugin.ts +491 -491
- package/src/browser/menu/context-menu-context.ts +41 -41
- package/src/browser/messaging/connection-source.ts +26 -26
- package/src/browser/messaging/frontend-id-provider.ts +37 -37
- package/src/browser/messaging/index.ts +18 -18
- package/src/browser/messaging/messaging-frontend-module.ts +41 -41
- package/src/browser/messaging/service-connection-provider.ts +140 -140
- package/src/browser/messaging/ws-connection-provider.ts +49 -49
- package/src/browser/messaging/ws-connection-source.ts +230 -230
- package/src/browser/mime-service.ts +30 -30
- package/src/browser/navigatable-types.ts +81 -81
- package/src/browser/navigatable.ts +39 -39
- package/src/browser/open-with-service.ts +140 -140
- package/src/browser/opener-service.spec.ts +49 -49
- package/src/browser/opener-service.ts +169 -169
- package/src/browser/performance/frontend-stopwatch.ts +65 -65
- package/src/browser/performance/index.ts +18 -18
- package/src/browser/performance/measurement-frontend-bindings.ts +31 -31
- package/src/browser/preferences/index.ts +23 -23
- package/src/browser/preferences/injectable-preference-proxy.ts +283 -283
- package/src/browser/preferences/preference-configurations.ts +82 -82
- package/src/browser/preferences/preference-contribution.ts +436 -436
- package/src/browser/preferences/preference-language-override-service.ts +111 -111
- package/src/browser/preferences/preference-provider.spec.ts +36 -36
- package/src/browser/preferences/preference-provider.ts +277 -277
- package/src/browser/preferences/preference-proxy.spec.ts +367 -367
- package/src/browser/preferences/preference-proxy.ts +367 -367
- package/src/browser/preferences/preference-schema-provider.spec.ts +130 -130
- package/src/browser/preferences/preference-scope.ts +18 -18
- package/src/browser/preferences/preference-service.spec.ts +613 -613
- package/src/browser/preferences/preference-service.ts +594 -594
- package/src/browser/preferences/preference-validation-service.spec.ts +334 -334
- package/src/browser/preferences/preference-validation-service.ts +358 -358
- package/src/browser/preferences/test/index.ts +19 -19
- package/src/browser/preferences/test/mock-preference-provider.ts +50 -50
- package/src/browser/preferences/test/mock-preference-proxy.ts +48 -48
- package/src/browser/preferences/test/mock-preference-service.ts +63 -63
- package/src/browser/preload/i18n-preload-contribution.ts +50 -50
- package/src/browser/preload/os-preload-contribution.ts +37 -37
- package/src/browser/preload/preload-module.ts +45 -45
- package/src/browser/preload/preloader.ts +37 -37
- package/src/browser/preload/theme-preload-contribution.ts +31 -31
- package/src/browser/progress-bar-factory.ts +29 -29
- package/src/browser/progress-bar.ts +76 -76
- package/src/browser/progress-client.ts +53 -53
- package/src/browser/progress-location-service.spec.ts +50 -50
- package/src/browser/progress-location-service.ts +96 -96
- package/src/browser/progress-status-bar-item.ts +83 -83
- package/src/browser/quick-input/index.ts +23 -23
- package/src/browser/quick-input/quick-access.ts +75 -75
- package/src/browser/quick-input/quick-command-frontend-contribution.ts +89 -89
- package/src/browser/quick-input/quick-command-service.ts +246 -246
- package/src/browser/quick-input/quick-help-service.ts +87 -87
- package/src/browser/quick-input/quick-input-frontend-contribution.ts +33 -33
- package/src/browser/quick-input/quick-input-service.spec.ts +176 -176
- package/src/browser/quick-input/quick-input-service.ts +17 -17
- package/src/browser/quick-input/quick-pick-service-impl.ts +69 -69
- package/src/browser/quick-input/quick-view-service.ts +83 -83
- package/src/browser/request/browser-request-module.ts +23 -23
- package/src/browser/request/browser-request-service.ts +172 -172
- package/src/browser/resource-context-key.ts +77 -77
- package/src/browser/saveable-service.ts +332 -332
- package/src/browser/saveable.ts +395 -395
- package/src/browser/secondary-window-handler.ts +211 -211
- package/src/browser/shell/additional-views-menu-widget.tsx +71 -71
- package/src/browser/shell/application-shell-mouse-tracker.ts +103 -103
- package/src/browser/shell/application-shell.ts +2271 -2271
- package/src/browser/shell/current-widget-command-adapter.ts +57 -57
- package/src/browser/shell/index.ts +23 -23
- package/src/browser/shell/shell-layout-restorer.ts +399 -399
- package/src/browser/shell/side-panel-handler.ts +794 -794
- package/src/browser/shell/side-panel-toolbar.ts +111 -111
- package/src/browser/shell/sidebar-bottom-menu-widget.tsx +39 -39
- package/src/browser/shell/sidebar-menu-widget.tsx +183 -183
- package/src/browser/shell/sidebar-top-menu-widget.tsx +26 -26
- package/src/browser/shell/split-panels.ts +191 -191
- package/src/browser/shell/tab-bar-decorator.ts +106 -106
- package/src/browser/shell/tab-bar-toolbar/index.ts +19 -19
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-menu-adapters.ts +31 -31
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-registry.ts +242 -242
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar-types.ts +149 -149
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar.spec.ts +62 -62
- package/src/browser/shell/tab-bar-toolbar/tab-bar-toolbar.tsx +443 -443
- package/src/browser/shell/tab-bars.spec.ts +63 -63
- package/src/browser/shell/tab-bars.ts +1468 -1468
- package/src/browser/shell/theia-dock-panel.ts +265 -265
- package/src/browser/shell/view-column-service.ts +125 -125
- package/src/browser/shell/view-contribution.ts +178 -178
- package/src/browser/source-tree/index.ts +19 -19
- package/src/browser/source-tree/source-tree-widget.tsx +107 -107
- package/src/browser/source-tree/source-tree.ts +146 -146
- package/src/browser/source-tree/tree-source.ts +73 -73
- package/src/browser/status-bar/index.ts +29 -29
- package/src/browser/status-bar/status-bar-types.ts +97 -97
- package/src/browser/status-bar/status-bar-view-model.ts +209 -209
- package/src/browser/status-bar/status-bar.tsx +189 -189
- package/src/browser/storage-service.spec.ts +76 -76
- package/src/browser/storage-service.ts +129 -129
- package/src/browser/style/about.css +36 -36
- package/src/browser/style/alert-messages.css +62 -62
- package/src/browser/style/ansi.css +88 -88
- package/src/browser/style/breadcrumbs.css +130 -130
- package/src/browser/style/dialog.css +126 -126
- package/src/browser/style/dockpanel.css +76 -76
- package/src/browser/style/hover-service.css +101 -101
- package/src/browser/style/icons.css +61 -61
- package/src/browser/style/index.css +353 -353
- package/src/browser/style/materialcolors.css +278 -278
- package/src/browser/style/menus.css +230 -230
- package/src/browser/style/notification.css +39 -39
- package/src/browser/style/os.css +87 -87
- package/src/browser/style/progress-bar.css +43 -43
- package/src/browser/style/quick-title-bar.css +45 -45
- package/src/browser/style/scrollbars.css +172 -172
- package/src/browser/style/search-box.css +123 -123
- package/src/browser/style/select-component.css +107 -107
- package/src/browser/style/sidepanel.css +367 -367
- package/src/browser/style/split-widget.css +38 -38
- package/src/browser/style/status-bar.css +127 -127
- package/src/browser/style/tabs.css +647 -647
- package/src/browser/style/tooltip.css +28 -28
- package/src/browser/style/tree-decorators.css +81 -81
- package/src/browser/style/tree.css +232 -232
- package/src/browser/style/view-container.css +187 -187
- package/src/browser/style/widget.css +19 -19
- package/src/browser/styling-service.ts +96 -96
- package/src/browser/supported-encodings.ts +262 -262
- package/src/browser/test/jsdom.ts +69 -69
- package/src/browser/test/mock-connection-status-service.ts +33 -33
- package/src/browser/test/mock-env-variables-server.ts +47 -47
- package/src/browser/test/mock-opener-service.ts +34 -34
- package/src/browser/test/mock-storage-service.ts +49 -49
- package/src/browser/theming.ts +206 -206
- package/src/browser/tooltip-service.tsx +96 -96
- package/src/browser/tree/fuzzy-search.spec.ts +99 -99
- package/src/browser/tree/fuzzy-search.ts +136 -136
- package/src/browser/tree/index.ts +29 -29
- package/src/browser/tree/search-box-debounce.ts +96 -96
- package/src/browser/tree/search-box.ts +355 -355
- package/src/browser/tree/test/mock-selectable-tree-model.ts +109 -109
- package/src/browser/tree/test/mock-tree-model.ts +136 -136
- package/src/browser/tree/test/tree-test-container.ts +50 -50
- package/src/browser/tree/tree-compression/compressed-tree-expansion-service.ts +46 -46
- package/src/browser/tree/tree-compression/compressed-tree-model.ts +88 -88
- package/src/browser/tree/tree-compression/compressed-tree-widget.tsx +203 -203
- package/src/browser/tree/tree-compression/index.ts +20 -20
- package/src/browser/tree/tree-compression/tree-compression-service.ts +125 -125
- package/src/browser/tree/tree-compression/tree-compression.css +28 -28
- package/src/browser/tree/tree-consistency.spec.ts +105 -105
- package/src/browser/tree/tree-container.spec.ts +45 -45
- package/src/browser/tree/tree-container.ts +155 -155
- package/src/browser/tree/tree-decorator.spec.ts +162 -162
- package/src/browser/tree/tree-decorator.ts +238 -238
- package/src/browser/tree/tree-expansion.spec.ts +173 -173
- package/src/browser/tree/tree-expansion.ts +165 -165
- package/src/browser/tree/tree-focus-service.ts +55 -55
- package/src/browser/tree/tree-iterator.spec.ts +170 -170
- package/src/browser/tree/tree-iterator.ts +256 -256
- package/src/browser/tree/tree-label-provider.ts +40 -40
- package/src/browser/tree/tree-model.ts +562 -562
- package/src/browser/tree/tree-navigation.ts +58 -58
- package/src/browser/tree/tree-preference.ts +50 -50
- package/src/browser/tree/tree-search.ts +128 -128
- package/src/browser/tree/tree-selectable.spec.ts +152 -152
- package/src/browser/tree/tree-selection-impl.ts +176 -176
- package/src/browser/tree/tree-selection-state.spec.ts +462 -462
- package/src/browser/tree/tree-selection-state.ts +245 -245
- package/src/browser/tree/tree-selection.ts +159 -159
- package/src/browser/tree/tree-view-welcome-widget.tsx +263 -263
- package/src/browser/tree/tree-widget-selection.ts +45 -45
- package/src/browser/tree/tree-widget.tsx +1591 -1591
- package/src/browser/tree/tree.spec.ts +241 -241
- package/src/browser/tree/tree.ts +425 -425
- package/src/browser/undo-redo-handler.ts +85 -85
- package/src/browser/user-working-directory-provider.ts +77 -77
- package/src/browser/view-container.ts +1640 -1640
- package/src/browser/widget-decoration.ts +358 -358
- package/src/browser/widget-manager.spec.ts +102 -102
- package/src/browser/widget-manager.ts +318 -318
- package/src/browser/widget-open-handler.ts +168 -168
- package/src/browser/widgets/alert-message.tsx +56 -56
- package/src/browser/widgets/enhanced-preview-widget.ts +27 -27
- package/src/browser/widgets/extractable-widget.ts +33 -33
- package/src/browser/widgets/index.ts +21 -21
- package/src/browser/widgets/previewable-widget.ts +31 -31
- package/src/browser/widgets/react-renderer.tsx +53 -53
- package/src/browser/widgets/react-widget.tsx +51 -51
- package/src/browser/widgets/select-component.tsx +367 -367
- package/src/browser/widgets/split-widget.ts +163 -163
- package/src/browser/widgets/widget.ts +406 -406
- package/src/browser/window/browser-window-module.ts +32 -32
- package/src/browser/window/default-secondary-window-service.ts +189 -189
- package/src/browser/window/default-window-service.spec.ts +78 -78
- package/src/browser/window/default-window-service.ts +171 -171
- package/src/browser/window/secondary-window-service.ts +39 -39
- package/src/browser/window/test/mock-window-service.ts +29 -29
- package/src/browser/window/window-service.ts +78 -78
- package/src/browser/window/window-title-service.ts +107 -107
- package/src/browser/window/window-title-updater.ts +95 -95
- package/src/browser/window-contribution.ts +64 -64
- package/src/browser-only/frontend-only-application-module.ts +116 -116
- package/src/browser-only/i18n/i18n-frontend-only-module.ts +37 -37
- package/src/browser-only/logger-frontend-only-module.ts +63 -63
- package/src/browser-only/messaging/frontend-only-service-connection-provider.ts +39 -39
- package/src/browser-only/messaging/messaging-frontend-only-module.ts +42 -42
- package/src/browser-only/preload/frontend-only-preload-module.ts +49 -49
- package/src/common/accessibility.ts +33 -33
- package/src/common/application-error.spec.ts +27 -27
- package/src/common/application-error.ts +76 -76
- package/src/common/application-protocol.ts +42 -42
- package/src/common/array-utils.ts +129 -129
- package/src/common/buffer.ts +228 -228
- package/src/common/cancellation.ts +163 -163
- package/src/common/char-code.ts +438 -438
- package/src/common/collections.ts +125 -125
- package/src/common/color.ts +103 -103
- package/src/common/command.spec.ts +208 -208
- package/src/common/command.ts +489 -489
- package/src/common/contribution-filter/contribution-filter-registry.ts +79 -79
- package/src/common/contribution-filter/contribution-filter.ts +64 -64
- package/src/common/contribution-filter/filter.ts +23 -23
- package/src/common/contribution-filter/index.ts +19 -19
- package/src/common/contribution-provider.ts +96 -96
- package/src/common/disposable.spec.ts +94 -94
- package/src/common/disposable.ts +188 -188
- package/src/common/encoding-service.ts +380 -380
- package/src/common/encodings.ts +24 -24
- package/src/common/env-variables/env-variables-protocol.ts +38 -38
- package/src/common/env-variables/index.ts +17 -17
- package/src/common/event.spec.ts +32 -32
- package/src/common/event.ts +493 -493
- package/src/common/file-uri.ts +61 -61
- package/src/common/frontend-application-state.ts +38 -38
- package/src/common/glob.ts +741 -741
- package/src/common/hash.ts +85 -85
- package/src/common/i18n/localization-server.ts +25 -25
- package/src/common/i18n/localization.ts +80 -80
- package/src/common/i18n/nls.metadata.json +34112 -34112
- package/src/common/index.ts +51 -51
- package/src/common/json-schema.ts +108 -108
- package/src/common/key-store.ts +26 -26
- package/src/common/keybinding.ts +152 -152
- package/src/common/keyboard/keyboard-layout-provider.ts +51 -51
- package/src/common/keys.ts +694 -694
- package/src/common/label-protocol.ts +35 -35
- package/src/common/logger-protocol.ts +119 -119
- package/src/common/logger-watcher.ts +48 -48
- package/src/common/logger.spec.ts +46 -46
- package/src/common/logger.ts +389 -389
- package/src/common/lsp-types.ts +34 -34
- package/src/common/markdown-rendering/icon-utilities.ts +30 -30
- package/src/common/markdown-rendering/index.ts +18 -18
- package/src/common/markdown-rendering/markdown-string.ts +152 -152
- package/src/common/menu/action-menu-node.ts +65 -65
- package/src/common/menu/composite-menu-node.spec.ts +67 -67
- package/src/common/menu/composite-menu-node.ts +114 -114
- package/src/common/menu/index.ts +21 -21
- package/src/common/menu/menu-adapter.ts +103 -103
- package/src/common/menu/menu-model-registry.ts +374 -374
- package/src/common/menu/menu-types.ts +220 -220
- package/src/common/menu/menu.spec.ts +101 -101
- package/src/common/message-rpc/channel.spec.ts +88 -88
- package/src/common/message-rpc/channel.ts +300 -300
- package/src/common/message-rpc/index.ts +22 -22
- package/src/common/message-rpc/message-buffer.ts +105 -105
- package/src/common/message-rpc/msg-pack-extension-manager.ts +70 -70
- package/src/common/message-rpc/rpc-message-encoder.spec.ts +65 -65
- package/src/common/message-rpc/rpc-message-encoder.ts +190 -190
- package/src/common/message-rpc/rpc-protocol.ts +255 -255
- package/src/common/message-rpc/uint8-array-message-buffer.spec.ts +41 -41
- package/src/common/message-rpc/uint8-array-message-buffer.ts +213 -213
- package/src/common/message-service-protocol.ts +148 -148
- package/src/common/message-service.ts +226 -226
- package/src/common/messaging/connection-error-handler.ts +73 -73
- package/src/common/messaging/connection-management.ts +43 -43
- package/src/common/messaging/handler.ts +26 -26
- package/src/common/messaging/index.ts +19 -19
- package/src/common/messaging/proxy-factory.spec.ts +108 -108
- package/src/common/messaging/proxy-factory.ts +336 -336
- package/src/common/messaging/socket-write-buffer.ts +52 -52
- package/src/common/messaging/web-socket-channel.ts +76 -76
- package/src/common/nls.ts +151 -151
- package/src/common/numbers.ts +21 -21
- package/src/common/objects.spec.ts +112 -112
- package/src/common/objects.ts +123 -123
- package/src/common/os.ts +82 -82
- package/src/common/path.spec.ts +415 -415
- package/src/common/path.ts +334 -334
- package/src/common/paths.ts +250 -250
- package/src/common/performance/index.ts +19 -19
- package/src/common/performance/measurement-protocol.ts +104 -104
- package/src/common/performance/measurement.ts +130 -130
- package/src/common/performance/stopwatch.ts +183 -183
- package/src/common/preferences/preference-schema.ts +101 -101
- package/src/common/preferences/preference-scope.spec.ts +48 -48
- package/src/common/preferences/preference-scope.ts +68 -68
- package/src/common/prioritizeable.ts +58 -58
- package/src/common/progress-service-protocol.ts +35 -35
- package/src/common/progress-service.ts +82 -82
- package/src/common/promise-util.spec.ts +102 -102
- package/src/common/promise-util.ts +143 -143
- package/src/common/quick-pick-service.ts +353 -353
- package/src/common/reference.spec.ts +145 -145
- package/src/common/reference.ts +230 -230
- package/src/common/resource.ts +430 -430
- package/src/common/selection-command-handler.ts +101 -101
- package/src/common/selection-service.spec.ts +43 -43
- package/src/common/selection-service.ts +49 -49
- package/src/common/selection.ts +50 -50
- package/src/common/severity.ts +111 -111
- package/src/common/stream.ts +718 -718
- package/src/common/strings.ts +231 -231
- package/src/common/telemetry.ts +45 -45
- package/src/common/ternary-search-tree.ts +417 -417
- package/src/common/test/expect.ts +34 -34
- package/src/common/test/mock-logger.ts +118 -118
- package/src/common/test/mock-menu.ts +35 -35
- package/src/common/test/mock-resource-provider.ts +33 -33
- package/src/common/theme.ts +68 -68
- package/src/common/types.spec.ts +86 -86
- package/src/common/types.ts +140 -140
- package/src/common/uri-command-handler.spec.ts +90 -90
- package/src/common/uri-command-handler.ts +148 -148
- package/src/common/uri.spec.ts +278 -278
- package/src/common/uri.ts +279 -279
- package/src/common/uuid.ts +45 -45
- package/src/common/version.ts +17 -17
- package/src/common/view-column.ts +33 -33
- package/src/common/window.ts +34 -34
- package/src/electron-browser/electron-clipboard-service.ts +32 -32
- package/src/electron-browser/electron-uri-handler.ts +42 -42
- package/src/electron-browser/keyboard/electron-keyboard-layout-change-notifier.ts +39 -39
- package/src/electron-browser/keyboard/electron-keyboard-module.ts +28 -28
- package/src/electron-browser/menu/electron-context-menu-renderer.ts +122 -122
- package/src/electron-browser/menu/electron-main-menu-factory.ts +339 -339
- package/src/electron-browser/menu/electron-menu-contribution.ts +506 -506
- package/src/electron-browser/menu/electron-menu-module.ts +40 -40
- package/src/electron-browser/menu/electron-menu-style.css +110 -110
- package/src/electron-browser/messaging/electron-frontend-id-provider.ts +25 -25
- package/src/electron-browser/messaging/electron-ipc-connection-source.ts +65 -65
- package/src/electron-browser/messaging/electron-local-ws-connection-source.ts +45 -45
- package/src/electron-browser/messaging/electron-messaging-frontend-module.ts +78 -78
- package/src/electron-browser/messaging/electron-ws-connection-source.ts +38 -38
- package/src/electron-browser/preload.ts +264 -264
- package/src/electron-browser/request/electron-browser-request-module.ts +26 -26
- package/src/electron-browser/token/electron-token-frontend-module.ts +22 -22
- package/src/electron-browser/window/electron-frontend-application-state.ts +26 -26
- package/src/electron-browser/window/electron-secondary-window-service.ts +35 -35
- package/src/electron-browser/window/electron-window-module.ts +48 -48
- package/src/electron-browser/window/electron-window-preferences.ts +76 -76
- package/src/electron-browser/window/electron-window-service.ts +109 -109
- package/src/electron-browser/window/external-app-open-handler.ts +42 -42
- package/src/electron-common/electron-api.ts +157 -157
- package/src/electron-common/electron-main-window-service.ts +24 -24
- package/src/electron-common/electron-token.ts +27 -27
- package/src/electron-main/electron-api-main.ts +373 -373
- package/src/electron-main/electron-main-application-module.ts +65 -65
- package/src/electron-main/electron-main-application.ts +860 -860
- package/src/electron-main/electron-main-constants.ts +23 -23
- package/src/electron-main/electron-main-window-service-impl.ts +44 -44
- package/src/electron-main/electron-security-token-service.ts +36 -36
- package/src/electron-main/event-utils.ts +36 -36
- package/src/electron-main/messaging/electron-connection-handler.ts +21 -21
- package/src/electron-main/messaging/electron-messaging-contribution.ts +143 -143
- package/src/electron-main/messaging/electron-messaging-service.ts +35 -35
- package/src/electron-main/theia-electron-window.ts +219 -219
- package/src/electron-node/cli/electron-backend-cli-module.ts +24 -24
- package/src/electron-node/cli/electron-cli-contribution.ts +35 -35
- package/src/electron-node/hosting/electron-backend-hosting-module.ts +24 -24
- package/src/electron-node/hosting/electron-ws-origin-validator.ts +37 -37
- package/src/electron-node/keyboard/electron-backend-keyboard-module.ts +30 -30
- package/src/electron-node/keyboard/electron-keyboard-layout-provider.ts +35 -35
- package/src/electron-node/request/electron-backend-request-module.ts +23 -23
- package/src/electron-node/request/electron-backend-request-service.ts +78 -78
- package/src/electron-node/token/electron-token-backend-contribution.ts +48 -48
- package/src/electron-node/token/electron-token-backend-module.ts +28 -28
- package/src/electron-node/token/electron-token-validator.ts +93 -93
- package/src/node/application-server.ts +59 -59
- package/src/node/backend-application-config-provider.spec.ts +29 -29
- package/src/node/backend-application-config-provider.ts +48 -48
- package/src/node/backend-application-module.ts +139 -139
- package/src/node/backend-application.ts +374 -374
- package/src/node/cli.spec.ts +94 -94
- package/src/node/cli.ts +63 -63
- package/src/node/console-logger-server.spec.ts +59 -59
- package/src/node/console-logger-server.ts +76 -76
- package/src/node/debug.ts +30 -30
- package/src/node/dynamic-require.ts +56 -56
- package/src/node/env-variables/env-variables-server.ts +123 -123
- package/src/node/env-variables/index.ts +17 -17
- package/src/node/environment-utils.spec.ts +92 -92
- package/src/node/environment-utils.ts +66 -66
- package/src/node/file-uri.spec.ts +76 -76
- package/src/node/filesystem-locking.ts +77 -77
- package/src/node/hosting/backend-application-hosts.ts +60 -60
- package/src/node/hosting/backend-hosting-module.ts +26 -26
- package/src/node/hosting/ws-origin-validator.ts +36 -36
- package/src/node/i18n/i18n-backend-module.ts +42 -42
- package/src/node/i18n/localization-contribution.ts +112 -112
- package/src/node/i18n/localization-provider.ts +125 -125
- package/src/node/i18n/localization-server.ts +52 -52
- package/src/node/i18n/theia-localization-contribution.ts +40 -40
- package/src/node/index.ts +22 -22
- package/src/node/key-store-server.ts +162 -162
- package/src/node/logger-backend-module.ts +88 -88
- package/src/node/logger-cli-contribution.spec.ts +245 -245
- package/src/node/logger-cli-contribution.ts +168 -168
- package/src/node/main.ts +33 -33
- package/src/node/messaging/binary-message-pipe.ts +168 -168
- package/src/node/messaging/connection-container-module.ts +96 -96
- package/src/node/messaging/default-messaging-service.ts +129 -129
- package/src/node/messaging/frontend-connection-service.ts +24 -24
- package/src/node/messaging/index.ts +19 -19
- package/src/node/messaging/ipc-bootstrap.ts +27 -27
- package/src/node/messaging/ipc-channel.ts +77 -77
- package/src/node/messaging/ipc-connection-provider.ts +107 -107
- package/src/node/messaging/ipc-protocol.ts +76 -76
- package/src/node/messaging/messaging-backend-module.ts +52 -52
- package/src/node/messaging/messaging-listeners.ts +52 -52
- package/src/node/messaging/messaging-service.ts +46 -46
- package/src/node/messaging/test/test-web-socket-channel.ts +61 -61
- package/src/node/messaging/websocket-endpoint.ts +79 -79
- package/src/node/messaging/websocket-frontend-connection-service.ts +186 -186
- package/src/node/os-backend-provider.ts +25 -25
- package/src/node/performance/index.ts +18 -18
- package/src/node/performance/measurement-backend-bindings.ts +35 -35
- package/src/node/performance/node-stopwatch.ts +40 -40
- package/src/node/process-utils.spec.ts +48 -48
- package/src/node/process-utils.ts +102 -102
- package/src/node/remote/backend-remote-service.ts +25 -25
- package/src/node/remote/remote-cli-contribution.ts +34 -34
- package/src/node/remote/remote-copy-contribution.ts +45 -45
- package/src/node/request/backend-request-facade.ts +39 -39
- package/src/node/request/backend-request-module.ts +25 -25
- package/src/node/request/proxy-cli-contribution.ts +65 -65
- package/src/node/ws-request-validators.ts +56 -56
- package/src/typings/native-keymap.d.ts +108 -108
|
@@ -1,125 +1,125 @@
|
|
|
1
|
-
// *****************************************************************************
|
|
2
|
-
// Copyright (C) 2019 Red Hat, Inc. 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 { injectable, inject } from 'inversify';
|
|
18
|
-
import { Emitter, Event } from '../../common/event';
|
|
19
|
-
import { ApplicationShell } from './application-shell';
|
|
20
|
-
import { toArray } from '@phosphor/algorithm';
|
|
21
|
-
import { TabBar, Widget } from '@phosphor/widgets';
|
|
22
|
-
|
|
23
|
-
@injectable()
|
|
24
|
-
export class ViewColumnService {
|
|
25
|
-
private readonly columnValues = new Map<string, number>();
|
|
26
|
-
private readonly viewColumnIds = new Map<number, string[]>();
|
|
27
|
-
|
|
28
|
-
protected readonly onViewColumnChangedEmitter = new Emitter<{ id: string, viewColumn: number }>();
|
|
29
|
-
|
|
30
|
-
constructor(
|
|
31
|
-
@inject(ApplicationShell) private readonly shell: ApplicationShell,
|
|
32
|
-
) {
|
|
33
|
-
let oldColumnValues = new Map<string, number>();
|
|
34
|
-
const update = async () => {
|
|
35
|
-
await new Promise<void>((resolve => setTimeout(resolve)));
|
|
36
|
-
this.updateViewColumns();
|
|
37
|
-
this.viewColumnIds.forEach((ids: string[], viewColumn: number) => {
|
|
38
|
-
ids.forEach((id: string) => {
|
|
39
|
-
if (!oldColumnValues.has(id) || oldColumnValues.get(id) !== viewColumn) {
|
|
40
|
-
this.onViewColumnChangedEmitter.fire({ id, viewColumn });
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
});
|
|
44
|
-
oldColumnValues = new Map(this.columnValues.entries());
|
|
45
|
-
};
|
|
46
|
-
this.shell.mainPanel.widgetAdded.connect(() => update());
|
|
47
|
-
this.shell.mainPanel.widgetRemoved.connect(() => update());
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
get onViewColumnChanged(): Event<{ id: string, viewColumn: number }> {
|
|
51
|
-
return this.onViewColumnChangedEmitter.event;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
updateViewColumns(): void {
|
|
55
|
-
this.columnValues.clear();
|
|
56
|
-
this.viewColumnIds.clear();
|
|
57
|
-
|
|
58
|
-
const rows = new Map<number, Set<number>>();
|
|
59
|
-
const columns = new Map<number, Map<number, TabBar<Widget>>>();
|
|
60
|
-
for (const tabBar of toArray(this.shell.mainPanel.tabBars())) {
|
|
61
|
-
if (!tabBar.node.style.top || !tabBar.node.style.left) {
|
|
62
|
-
continue;
|
|
63
|
-
}
|
|
64
|
-
const top = parseInt(tabBar.node.style.top);
|
|
65
|
-
const left = parseInt(tabBar.node.style.left);
|
|
66
|
-
|
|
67
|
-
const row = rows.get(top) || new Set<number>();
|
|
68
|
-
row.add(left);
|
|
69
|
-
rows.set(top, row);
|
|
70
|
-
|
|
71
|
-
const column = columns.get(left) || new Map<number, TabBar<Widget>>();
|
|
72
|
-
column.set(top, tabBar);
|
|
73
|
-
columns.set(left, column);
|
|
74
|
-
}
|
|
75
|
-
const firstRow = rows.get([...rows.keys()].sort()[0]);
|
|
76
|
-
if (!firstRow) {
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
|
-
const lefts = [...firstRow.keys()].sort();
|
|
80
|
-
for (let i = 0; i < lefts.length; i++) {
|
|
81
|
-
const column = columns.get(lefts[i]);
|
|
82
|
-
if (!column) {
|
|
83
|
-
break;
|
|
84
|
-
}
|
|
85
|
-
const cellIndexes = [...column.keys()].sort();
|
|
86
|
-
let viewColumn = Math.min(i, 2);
|
|
87
|
-
for (let j = 0; j < cellIndexes.length; j++) {
|
|
88
|
-
const cell = column.get(cellIndexes[j]);
|
|
89
|
-
if (!cell) {
|
|
90
|
-
break;
|
|
91
|
-
}
|
|
92
|
-
this.setViewColumn(cell, viewColumn);
|
|
93
|
-
if (viewColumn < 7) {
|
|
94
|
-
viewColumn += 3;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
protected setViewColumn(tabBar: TabBar<Widget>, viewColumn: number): void {
|
|
101
|
-
const ids = [];
|
|
102
|
-
for (const title of tabBar.titles) {
|
|
103
|
-
const id = title.owner.id;
|
|
104
|
-
ids.push(id);
|
|
105
|
-
this.columnValues.set(id, viewColumn);
|
|
106
|
-
}
|
|
107
|
-
this.viewColumnIds.set(viewColumn, ids);
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
getViewColumnIds(viewColumn: number): string[] {
|
|
111
|
-
return this.viewColumnIds.get(viewColumn) || [];
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
getViewColumn(id: string): number | undefined {
|
|
115
|
-
return this.columnValues.get(id);
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
hasViewColumn(id: string): boolean {
|
|
119
|
-
return this.columnValues.has(id);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
viewColumnsSize(): number {
|
|
123
|
-
return this.viewColumnIds.size;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2019 Red Hat, Inc. 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 { injectable, inject } from 'inversify';
|
|
18
|
+
import { Emitter, Event } from '../../common/event';
|
|
19
|
+
import { ApplicationShell } from './application-shell';
|
|
20
|
+
import { toArray } from '@phosphor/algorithm';
|
|
21
|
+
import { TabBar, Widget } from '@phosphor/widgets';
|
|
22
|
+
|
|
23
|
+
@injectable()
|
|
24
|
+
export class ViewColumnService {
|
|
25
|
+
private readonly columnValues = new Map<string, number>();
|
|
26
|
+
private readonly viewColumnIds = new Map<number, string[]>();
|
|
27
|
+
|
|
28
|
+
protected readonly onViewColumnChangedEmitter = new Emitter<{ id: string, viewColumn: number }>();
|
|
29
|
+
|
|
30
|
+
constructor(
|
|
31
|
+
@inject(ApplicationShell) private readonly shell: ApplicationShell,
|
|
32
|
+
) {
|
|
33
|
+
let oldColumnValues = new Map<string, number>();
|
|
34
|
+
const update = async () => {
|
|
35
|
+
await new Promise<void>((resolve => setTimeout(resolve)));
|
|
36
|
+
this.updateViewColumns();
|
|
37
|
+
this.viewColumnIds.forEach((ids: string[], viewColumn: number) => {
|
|
38
|
+
ids.forEach((id: string) => {
|
|
39
|
+
if (!oldColumnValues.has(id) || oldColumnValues.get(id) !== viewColumn) {
|
|
40
|
+
this.onViewColumnChangedEmitter.fire({ id, viewColumn });
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
oldColumnValues = new Map(this.columnValues.entries());
|
|
45
|
+
};
|
|
46
|
+
this.shell.mainPanel.widgetAdded.connect(() => update());
|
|
47
|
+
this.shell.mainPanel.widgetRemoved.connect(() => update());
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
get onViewColumnChanged(): Event<{ id: string, viewColumn: number }> {
|
|
51
|
+
return this.onViewColumnChangedEmitter.event;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
updateViewColumns(): void {
|
|
55
|
+
this.columnValues.clear();
|
|
56
|
+
this.viewColumnIds.clear();
|
|
57
|
+
|
|
58
|
+
const rows = new Map<number, Set<number>>();
|
|
59
|
+
const columns = new Map<number, Map<number, TabBar<Widget>>>();
|
|
60
|
+
for (const tabBar of toArray(this.shell.mainPanel.tabBars())) {
|
|
61
|
+
if (!tabBar.node.style.top || !tabBar.node.style.left) {
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
const top = parseInt(tabBar.node.style.top);
|
|
65
|
+
const left = parseInt(tabBar.node.style.left);
|
|
66
|
+
|
|
67
|
+
const row = rows.get(top) || new Set<number>();
|
|
68
|
+
row.add(left);
|
|
69
|
+
rows.set(top, row);
|
|
70
|
+
|
|
71
|
+
const column = columns.get(left) || new Map<number, TabBar<Widget>>();
|
|
72
|
+
column.set(top, tabBar);
|
|
73
|
+
columns.set(left, column);
|
|
74
|
+
}
|
|
75
|
+
const firstRow = rows.get([...rows.keys()].sort()[0]);
|
|
76
|
+
if (!firstRow) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
const lefts = [...firstRow.keys()].sort();
|
|
80
|
+
for (let i = 0; i < lefts.length; i++) {
|
|
81
|
+
const column = columns.get(lefts[i]);
|
|
82
|
+
if (!column) {
|
|
83
|
+
break;
|
|
84
|
+
}
|
|
85
|
+
const cellIndexes = [...column.keys()].sort();
|
|
86
|
+
let viewColumn = Math.min(i, 2);
|
|
87
|
+
for (let j = 0; j < cellIndexes.length; j++) {
|
|
88
|
+
const cell = column.get(cellIndexes[j]);
|
|
89
|
+
if (!cell) {
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
this.setViewColumn(cell, viewColumn);
|
|
93
|
+
if (viewColumn < 7) {
|
|
94
|
+
viewColumn += 3;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
protected setViewColumn(tabBar: TabBar<Widget>, viewColumn: number): void {
|
|
101
|
+
const ids = [];
|
|
102
|
+
for (const title of tabBar.titles) {
|
|
103
|
+
const id = title.owner.id;
|
|
104
|
+
ids.push(id);
|
|
105
|
+
this.columnValues.set(id, viewColumn);
|
|
106
|
+
}
|
|
107
|
+
this.viewColumnIds.set(viewColumn, ids);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
getViewColumnIds(viewColumn: number): string[] {
|
|
111
|
+
return this.viewColumnIds.get(viewColumn) || [];
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
getViewColumn(id: string): number | undefined {
|
|
115
|
+
return this.columnValues.get(id);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
hasViewColumn(id: string): boolean {
|
|
119
|
+
return this.columnValues.has(id);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
viewColumnsSize(): number {
|
|
123
|
+
return this.viewColumnIds.size;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
@@ -1,178 +1,178 @@
|
|
|
1
|
-
// *****************************************************************************
|
|
2
|
-
// Copyright (C) 2018 TypeFox 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 { injectable, inject, interfaces, optional } from 'inversify';
|
|
18
|
-
import { Widget } from '@phosphor/widgets';
|
|
19
|
-
import {
|
|
20
|
-
MenuModelRegistry, Command, CommandContribution,
|
|
21
|
-
MenuContribution, CommandRegistry, nls
|
|
22
|
-
} from '../../common';
|
|
23
|
-
import { KeybindingContribution, KeybindingRegistry } from '../keybinding';
|
|
24
|
-
import { WidgetManager } from '../widget-manager';
|
|
25
|
-
import { CommonMenus } from '../common-frontend-contribution';
|
|
26
|
-
import { ApplicationShell } from './application-shell';
|
|
27
|
-
import { QuickViewService } from '../quick-input';
|
|
28
|
-
|
|
29
|
-
export interface OpenViewArguments extends ApplicationShell.WidgetOptions {
|
|
30
|
-
toggle?: boolean
|
|
31
|
-
activate?: boolean;
|
|
32
|
-
reveal?: boolean;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
export interface ViewContributionOptions {
|
|
36
|
-
widgetId: string;
|
|
37
|
-
viewContainerId?: string;
|
|
38
|
-
widgetName: string;
|
|
39
|
-
defaultWidgetOptions: ApplicationShell.WidgetOptions;
|
|
40
|
-
toggleCommandId?: string;
|
|
41
|
-
toggleKeybinding?: string;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
export function bindViewContribution<T extends AbstractViewContribution<Widget>>(bind: interfaces.Bind, identifier: interfaces.Newable<T>): interfaces.BindingWhenOnSyntax<T> {
|
|
45
|
-
const syntax = bind<T>(identifier).toSelf().inSingletonScope();
|
|
46
|
-
bind(CommandContribution).toService(identifier);
|
|
47
|
-
bind(KeybindingContribution).toService(identifier);
|
|
48
|
-
bind(MenuContribution).toService(identifier);
|
|
49
|
-
return syntax;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* An abstract superclass for frontend contributions that add a view to the application shell.
|
|
54
|
-
*/
|
|
55
|
-
@injectable()
|
|
56
|
-
export abstract class AbstractViewContribution<T extends Widget> implements CommandContribution, MenuContribution, KeybindingContribution {
|
|
57
|
-
|
|
58
|
-
@inject(WidgetManager) protected readonly widgetManager: WidgetManager;
|
|
59
|
-
@inject(ApplicationShell) protected readonly shell: ApplicationShell;
|
|
60
|
-
|
|
61
|
-
@inject(QuickViewService) @optional()
|
|
62
|
-
protected readonly quickView: QuickViewService;
|
|
63
|
-
|
|
64
|
-
readonly toggleCommand?: Command;
|
|
65
|
-
|
|
66
|
-
constructor(
|
|
67
|
-
protected readonly options: ViewContributionOptions
|
|
68
|
-
) {
|
|
69
|
-
if (options.toggleCommandId) {
|
|
70
|
-
this.toggleCommand = {
|
|
71
|
-
id: options.toggleCommandId,
|
|
72
|
-
category: nls.localizeByDefault('View'),
|
|
73
|
-
label: nls.localizeByDefault('Toggle {0}', this.viewLabel)
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
get viewId(): string {
|
|
79
|
-
return this.options.widgetId;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
get viewLabel(): string {
|
|
83
|
-
return this.options.widgetName;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
get defaultViewOptions(): ApplicationShell.WidgetOptions {
|
|
87
|
-
return this.options.defaultWidgetOptions;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
get widget(): Promise<T> {
|
|
91
|
-
return this.widgetManager.getOrCreateWidget(this.viewId);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
tryGetWidget(): T | undefined {
|
|
95
|
-
return this.widgetManager.tryGetWidget(this.viewId);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
async openView(args: Partial<OpenViewArguments> = {}): Promise<T> {
|
|
99
|
-
const shell = this.shell;
|
|
100
|
-
const widget = await this.widgetManager.getOrCreateWidget(this.options.viewContainerId || this.viewId);
|
|
101
|
-
const tabBar = shell.getTabBarFor(widget);
|
|
102
|
-
const area = shell.getAreaFor(widget);
|
|
103
|
-
if (!tabBar) {
|
|
104
|
-
// The widget is not attached yet, so add it to the shell
|
|
105
|
-
const widgetArgs: OpenViewArguments = {
|
|
106
|
-
...this.defaultViewOptions,
|
|
107
|
-
...args
|
|
108
|
-
};
|
|
109
|
-
await shell.addWidget(widget, widgetArgs);
|
|
110
|
-
} else if (args.toggle && area && shell.isExpanded(area) && tabBar.currentTitle === widget.title) {
|
|
111
|
-
// The widget is attached and visible, so collapse the containing panel (toggle)
|
|
112
|
-
switch (area) {
|
|
113
|
-
case 'left':
|
|
114
|
-
case 'right':
|
|
115
|
-
await shell.collapsePanel(area);
|
|
116
|
-
break;
|
|
117
|
-
case 'bottom':
|
|
118
|
-
// Don't collapse the bottom panel if it's currently split
|
|
119
|
-
if (shell.bottomAreaTabBars.length === 1) {
|
|
120
|
-
await shell.collapsePanel('bottom');
|
|
121
|
-
}
|
|
122
|
-
break;
|
|
123
|
-
default:
|
|
124
|
-
// The main area cannot be collapsed, so close the widget
|
|
125
|
-
await this.closeView();
|
|
126
|
-
}
|
|
127
|
-
return this.widget;
|
|
128
|
-
}
|
|
129
|
-
if (widget.isAttached && args.activate) {
|
|
130
|
-
await shell.activateWidget(this.viewId);
|
|
131
|
-
} else if (widget.isAttached && args.reveal) {
|
|
132
|
-
await shell.revealWidget(this.viewId);
|
|
133
|
-
}
|
|
134
|
-
return this.widget;
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
registerCommands(commands: CommandRegistry): void {
|
|
138
|
-
if (this.toggleCommand) {
|
|
139
|
-
commands.registerCommand(this.toggleCommand, {
|
|
140
|
-
execute: () => this.toggleView()
|
|
141
|
-
});
|
|
142
|
-
}
|
|
143
|
-
this.quickView?.registerItem({
|
|
144
|
-
label: this.viewLabel,
|
|
145
|
-
open: () => this.openView({ activate: true })
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
async closeView(): Promise<T | undefined> {
|
|
150
|
-
const widget = await this.shell.closeWidget(this.viewId);
|
|
151
|
-
return widget as T | undefined;
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
toggleView(): Promise<T> {
|
|
155
|
-
return this.openView({
|
|
156
|
-
toggle: true,
|
|
157
|
-
activate: true
|
|
158
|
-
});
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
registerMenus(menus: MenuModelRegistry): void {
|
|
162
|
-
if (this.toggleCommand) {
|
|
163
|
-
menus.registerMenuAction(CommonMenus.VIEW_VIEWS, {
|
|
164
|
-
commandId: this.toggleCommand.id,
|
|
165
|
-
label: this.viewLabel
|
|
166
|
-
});
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
registerKeybindings(keybindings: KeybindingRegistry): void {
|
|
171
|
-
if (this.toggleCommand && this.options.toggleKeybinding) {
|
|
172
|
-
keybindings.registerKeybinding({
|
|
173
|
-
command: this.toggleCommand.id,
|
|
174
|
-
keybinding: this.options.toggleKeybinding
|
|
175
|
-
});
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
}
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2018 TypeFox 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 { injectable, inject, interfaces, optional } from 'inversify';
|
|
18
|
+
import { Widget } from '@phosphor/widgets';
|
|
19
|
+
import {
|
|
20
|
+
MenuModelRegistry, Command, CommandContribution,
|
|
21
|
+
MenuContribution, CommandRegistry, nls
|
|
22
|
+
} from '../../common';
|
|
23
|
+
import { KeybindingContribution, KeybindingRegistry } from '../keybinding';
|
|
24
|
+
import { WidgetManager } from '../widget-manager';
|
|
25
|
+
import { CommonMenus } from '../common-frontend-contribution';
|
|
26
|
+
import { ApplicationShell } from './application-shell';
|
|
27
|
+
import { QuickViewService } from '../quick-input';
|
|
28
|
+
|
|
29
|
+
export interface OpenViewArguments extends ApplicationShell.WidgetOptions {
|
|
30
|
+
toggle?: boolean
|
|
31
|
+
activate?: boolean;
|
|
32
|
+
reveal?: boolean;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export interface ViewContributionOptions {
|
|
36
|
+
widgetId: string;
|
|
37
|
+
viewContainerId?: string;
|
|
38
|
+
widgetName: string;
|
|
39
|
+
defaultWidgetOptions: ApplicationShell.WidgetOptions;
|
|
40
|
+
toggleCommandId?: string;
|
|
41
|
+
toggleKeybinding?: string;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export function bindViewContribution<T extends AbstractViewContribution<Widget>>(bind: interfaces.Bind, identifier: interfaces.Newable<T>): interfaces.BindingWhenOnSyntax<T> {
|
|
45
|
+
const syntax = bind<T>(identifier).toSelf().inSingletonScope();
|
|
46
|
+
bind(CommandContribution).toService(identifier);
|
|
47
|
+
bind(KeybindingContribution).toService(identifier);
|
|
48
|
+
bind(MenuContribution).toService(identifier);
|
|
49
|
+
return syntax;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* An abstract superclass for frontend contributions that add a view to the application shell.
|
|
54
|
+
*/
|
|
55
|
+
@injectable()
|
|
56
|
+
export abstract class AbstractViewContribution<T extends Widget> implements CommandContribution, MenuContribution, KeybindingContribution {
|
|
57
|
+
|
|
58
|
+
@inject(WidgetManager) protected readonly widgetManager: WidgetManager;
|
|
59
|
+
@inject(ApplicationShell) protected readonly shell: ApplicationShell;
|
|
60
|
+
|
|
61
|
+
@inject(QuickViewService) @optional()
|
|
62
|
+
protected readonly quickView: QuickViewService;
|
|
63
|
+
|
|
64
|
+
readonly toggleCommand?: Command;
|
|
65
|
+
|
|
66
|
+
constructor(
|
|
67
|
+
protected readonly options: ViewContributionOptions
|
|
68
|
+
) {
|
|
69
|
+
if (options.toggleCommandId) {
|
|
70
|
+
this.toggleCommand = {
|
|
71
|
+
id: options.toggleCommandId,
|
|
72
|
+
category: nls.localizeByDefault('View'),
|
|
73
|
+
label: nls.localizeByDefault('Toggle {0}', this.viewLabel)
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
get viewId(): string {
|
|
79
|
+
return this.options.widgetId;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
get viewLabel(): string {
|
|
83
|
+
return this.options.widgetName;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
get defaultViewOptions(): ApplicationShell.WidgetOptions {
|
|
87
|
+
return this.options.defaultWidgetOptions;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
get widget(): Promise<T> {
|
|
91
|
+
return this.widgetManager.getOrCreateWidget(this.viewId);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
tryGetWidget(): T | undefined {
|
|
95
|
+
return this.widgetManager.tryGetWidget(this.viewId);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
async openView(args: Partial<OpenViewArguments> = {}): Promise<T> {
|
|
99
|
+
const shell = this.shell;
|
|
100
|
+
const widget = await this.widgetManager.getOrCreateWidget(this.options.viewContainerId || this.viewId);
|
|
101
|
+
const tabBar = shell.getTabBarFor(widget);
|
|
102
|
+
const area = shell.getAreaFor(widget);
|
|
103
|
+
if (!tabBar) {
|
|
104
|
+
// The widget is not attached yet, so add it to the shell
|
|
105
|
+
const widgetArgs: OpenViewArguments = {
|
|
106
|
+
...this.defaultViewOptions,
|
|
107
|
+
...args
|
|
108
|
+
};
|
|
109
|
+
await shell.addWidget(widget, widgetArgs);
|
|
110
|
+
} else if (args.toggle && area && shell.isExpanded(area) && tabBar.currentTitle === widget.title) {
|
|
111
|
+
// The widget is attached and visible, so collapse the containing panel (toggle)
|
|
112
|
+
switch (area) {
|
|
113
|
+
case 'left':
|
|
114
|
+
case 'right':
|
|
115
|
+
await shell.collapsePanel(area);
|
|
116
|
+
break;
|
|
117
|
+
case 'bottom':
|
|
118
|
+
// Don't collapse the bottom panel if it's currently split
|
|
119
|
+
if (shell.bottomAreaTabBars.length === 1) {
|
|
120
|
+
await shell.collapsePanel('bottom');
|
|
121
|
+
}
|
|
122
|
+
break;
|
|
123
|
+
default:
|
|
124
|
+
// The main area cannot be collapsed, so close the widget
|
|
125
|
+
await this.closeView();
|
|
126
|
+
}
|
|
127
|
+
return this.widget;
|
|
128
|
+
}
|
|
129
|
+
if (widget.isAttached && args.activate) {
|
|
130
|
+
await shell.activateWidget(this.viewId);
|
|
131
|
+
} else if (widget.isAttached && args.reveal) {
|
|
132
|
+
await shell.revealWidget(this.viewId);
|
|
133
|
+
}
|
|
134
|
+
return this.widget;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
registerCommands(commands: CommandRegistry): void {
|
|
138
|
+
if (this.toggleCommand) {
|
|
139
|
+
commands.registerCommand(this.toggleCommand, {
|
|
140
|
+
execute: () => this.toggleView()
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
this.quickView?.registerItem({
|
|
144
|
+
label: this.viewLabel,
|
|
145
|
+
open: () => this.openView({ activate: true })
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
async closeView(): Promise<T | undefined> {
|
|
150
|
+
const widget = await this.shell.closeWidget(this.viewId);
|
|
151
|
+
return widget as T | undefined;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
toggleView(): Promise<T> {
|
|
155
|
+
return this.openView({
|
|
156
|
+
toggle: true,
|
|
157
|
+
activate: true
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
registerMenus(menus: MenuModelRegistry): void {
|
|
162
|
+
if (this.toggleCommand) {
|
|
163
|
+
menus.registerMenuAction(CommonMenus.VIEW_VIEWS, {
|
|
164
|
+
commandId: this.toggleCommand.id,
|
|
165
|
+
label: this.viewLabel
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
registerKeybindings(keybindings: KeybindingRegistry): void {
|
|
171
|
+
if (this.toggleCommand && this.options.toggleKeybinding) {
|
|
172
|
+
keybindings.registerKeybinding({
|
|
173
|
+
command: this.toggleCommand.id,
|
|
174
|
+
keybinding: this.options.toggleKeybinding
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
// *****************************************************************************
|
|
2
|
-
// Copyright (C) 2018 TypeFox 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
|
-
export * from './tree-source';
|
|
18
|
-
export * from './source-tree';
|
|
19
|
-
export * from './source-tree-widget';
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2018 TypeFox 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
|
+
export * from './tree-source';
|
|
18
|
+
export * from './source-tree';
|
|
19
|
+
export * from './source-tree-widget';
|