@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,209 +1,209 @@
|
|
|
1
|
-
// *****************************************************************************
|
|
2
|
-
// Copyright (C) 2020 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 } from 'inversify';
|
|
18
|
-
import { isThenable } from '../common/promise-util';
|
|
19
|
-
import { CancellationToken, CancellationTokenSource, Disposable, Emitter, Event } from '../common';
|
|
20
|
-
import { TernarySearchTree } from '../common/ternary-search-tree';
|
|
21
|
-
import URI from '../common/uri';
|
|
22
|
-
|
|
23
|
-
/*---------------------------------------------------------------------------------------------
|
|
24
|
-
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
25
|
-
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
26
|
-
*--------------------------------------------------------------------------------------------*/
|
|
27
|
-
// some code copied and modified from https://github.com/microsoft/vscode/blob/1.52.1/src/vs/workbench/services/decorations/browser/decorationsService.ts#L24-L23
|
|
28
|
-
|
|
29
|
-
export interface DecorationsProvider {
|
|
30
|
-
readonly onDidChange: Event<URI[]>;
|
|
31
|
-
provideDecorations(uri: URI, token: CancellationToken): Decoration | Promise<Decoration | undefined> | undefined;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export interface Decoration {
|
|
35
|
-
readonly weight?: number;
|
|
36
|
-
readonly colorId?: string;
|
|
37
|
-
readonly letter?: string;
|
|
38
|
-
readonly tooltip?: string;
|
|
39
|
-
readonly bubble?: boolean;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
export interface ResourceDecorationChangeEvent {
|
|
43
|
-
affectsResource(uri: URI): boolean;
|
|
44
|
-
}
|
|
45
|
-
export const DecorationsService = Symbol('DecorationsService');
|
|
46
|
-
export interface DecorationsService {
|
|
47
|
-
|
|
48
|
-
readonly onDidChangeDecorations: Event<Map<string, Decoration>>;
|
|
49
|
-
|
|
50
|
-
registerDecorationsProvider(provider: DecorationsProvider): Disposable;
|
|
51
|
-
|
|
52
|
-
getDecoration(uri: URI, includeChildren: boolean): Decoration[];
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
class DecorationDataRequest {
|
|
56
|
-
constructor(
|
|
57
|
-
readonly source: CancellationTokenSource,
|
|
58
|
-
readonly thenable: Promise<void>,
|
|
59
|
-
) { }
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
class DecorationProviderWrapper {
|
|
63
|
-
|
|
64
|
-
readonly data: TernarySearchTree<URI, DecorationDataRequest | Decoration | undefined>;
|
|
65
|
-
readonly decorations: Map<string, Decoration> = new Map();
|
|
66
|
-
private readonly disposable: Disposable;
|
|
67
|
-
|
|
68
|
-
constructor(
|
|
69
|
-
readonly provider: DecorationsProvider,
|
|
70
|
-
readonly onDidChangeDecorationsEmitter: Emitter<Map<string, Decoration>>
|
|
71
|
-
) {
|
|
72
|
-
|
|
73
|
-
this.data = TernarySearchTree.forUris<DecorationDataRequest | Decoration | undefined>(true);
|
|
74
|
-
|
|
75
|
-
this.disposable = this.provider.onDidChange(async uris => {
|
|
76
|
-
this.decorations.clear();
|
|
77
|
-
if (!uris) {
|
|
78
|
-
this.data.clear();
|
|
79
|
-
} else {
|
|
80
|
-
for (const uri of uris) {
|
|
81
|
-
this.fetchData(uri);
|
|
82
|
-
const decoration = await provider.provideDecorations(uri, CancellationToken.None);
|
|
83
|
-
if (decoration) {
|
|
84
|
-
this.decorations.set(uri.toString(), decoration);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
this.onDidChangeDecorationsEmitter.fire(this.decorations);
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
dispose(): void {
|
|
93
|
-
this.disposable.dispose();
|
|
94
|
-
this.data.clear();
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
knowsAbout(uri: URI): boolean {
|
|
98
|
-
return !!this.data.get(uri) || Boolean(this.data.findSuperstr(uri));
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
getOrRetrieve(uri: URI, includeChildren: boolean, callback: (data: Decoration, isChild: boolean) => void): void {
|
|
102
|
-
|
|
103
|
-
let item = this.data.get(uri);
|
|
104
|
-
|
|
105
|
-
if (item === undefined) {
|
|
106
|
-
// unknown -> trigger request
|
|
107
|
-
item = this.fetchData(uri);
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
if (item && !(item instanceof DecorationDataRequest)) {
|
|
111
|
-
// found something (which isn't pending anymore)
|
|
112
|
-
callback(item, false);
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
if (includeChildren) {
|
|
116
|
-
// (resolved) children
|
|
117
|
-
const iter = this.data.findSuperstr(uri);
|
|
118
|
-
if (iter) {
|
|
119
|
-
let next = iter.next();
|
|
120
|
-
while (!next.done) {
|
|
121
|
-
const value = next.value;
|
|
122
|
-
if (value && !(value instanceof DecorationDataRequest)) {
|
|
123
|
-
callback(value, true);
|
|
124
|
-
}
|
|
125
|
-
next = iter.next();
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
private fetchData(uri: URI): Decoration | undefined {
|
|
132
|
-
|
|
133
|
-
// check for pending request and cancel it
|
|
134
|
-
const pendingRequest = this.data.get(uri);
|
|
135
|
-
if (pendingRequest instanceof DecorationDataRequest) {
|
|
136
|
-
pendingRequest.source.cancel();
|
|
137
|
-
this.data.delete(uri);
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
const source = new CancellationTokenSource();
|
|
141
|
-
const dataOrThenable = this.provider.provideDecorations(uri, source.token);
|
|
142
|
-
if (!isThenable<Decoration | Promise<Decoration | undefined> | undefined>(dataOrThenable)) {
|
|
143
|
-
// sync -> we have a result now
|
|
144
|
-
return this.keepItem(uri, dataOrThenable);
|
|
145
|
-
|
|
146
|
-
} else {
|
|
147
|
-
// async -> we have a result soon
|
|
148
|
-
const request = new DecorationDataRequest(source, Promise.resolve(dataOrThenable).then(data => {
|
|
149
|
-
if (this.data.get(uri) === request) {
|
|
150
|
-
this.keepItem(uri, data);
|
|
151
|
-
}
|
|
152
|
-
}).catch(err => {
|
|
153
|
-
if (!(err instanceof Error && err.name === 'Canceled' && err.message === 'Canceled') && this.data.get(uri) === request) {
|
|
154
|
-
this.data.delete(uri);
|
|
155
|
-
}
|
|
156
|
-
}));
|
|
157
|
-
|
|
158
|
-
this.data.set(uri, request);
|
|
159
|
-
return undefined;
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
private keepItem(uri: URI, data: Decoration | undefined): Decoration | undefined {
|
|
164
|
-
const deco = data ? data : undefined;
|
|
165
|
-
this.data.set(uri, deco);
|
|
166
|
-
return deco;
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
@injectable()
|
|
171
|
-
export class DecorationsServiceImpl implements DecorationsService {
|
|
172
|
-
|
|
173
|
-
private readonly data: DecorationProviderWrapper[] = [];
|
|
174
|
-
private readonly onDidChangeDecorationsEmitter = new Emitter<Map<string, Decoration>>();
|
|
175
|
-
|
|
176
|
-
readonly onDidChangeDecorations = this.onDidChangeDecorationsEmitter.event;
|
|
177
|
-
|
|
178
|
-
dispose(): void {
|
|
179
|
-
this.onDidChangeDecorationsEmitter.dispose();
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
registerDecorationsProvider(provider: DecorationsProvider): Disposable {
|
|
183
|
-
|
|
184
|
-
const wrapper = new DecorationProviderWrapper(provider, this.onDidChangeDecorationsEmitter);
|
|
185
|
-
this.data.push(wrapper);
|
|
186
|
-
|
|
187
|
-
return Disposable.create(() => {
|
|
188
|
-
// fire event that says 'yes' for any resource
|
|
189
|
-
// known to this provider. then dispose and remove it.
|
|
190
|
-
this.data.splice(this.data.indexOf(wrapper), 1);
|
|
191
|
-
this.onDidChangeDecorationsEmitter.fire(new Map<string, Decoration>());
|
|
192
|
-
wrapper.dispose();
|
|
193
|
-
});
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
getDecoration(uri: URI, includeChildren: boolean): Decoration[] {
|
|
197
|
-
const data: Decoration[] = [];
|
|
198
|
-
let containsChildren: boolean = false;
|
|
199
|
-
for (const wrapper of this.data) {
|
|
200
|
-
wrapper.getOrRetrieve(uri, includeChildren, (deco, isChild) => {
|
|
201
|
-
if (!isChild || deco.bubble) {
|
|
202
|
-
data.push(deco);
|
|
203
|
-
containsChildren = isChild || containsChildren;
|
|
204
|
-
}
|
|
205
|
-
});
|
|
206
|
-
}
|
|
207
|
-
return data;
|
|
208
|
-
}
|
|
209
|
-
}
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2020 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 } from 'inversify';
|
|
18
|
+
import { isThenable } from '../common/promise-util';
|
|
19
|
+
import { CancellationToken, CancellationTokenSource, Disposable, Emitter, Event } from '../common';
|
|
20
|
+
import { TernarySearchTree } from '../common/ternary-search-tree';
|
|
21
|
+
import URI from '../common/uri';
|
|
22
|
+
|
|
23
|
+
/*---------------------------------------------------------------------------------------------
|
|
24
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
25
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
26
|
+
*--------------------------------------------------------------------------------------------*/
|
|
27
|
+
// some code copied and modified from https://github.com/microsoft/vscode/blob/1.52.1/src/vs/workbench/services/decorations/browser/decorationsService.ts#L24-L23
|
|
28
|
+
|
|
29
|
+
export interface DecorationsProvider {
|
|
30
|
+
readonly onDidChange: Event<URI[]>;
|
|
31
|
+
provideDecorations(uri: URI, token: CancellationToken): Decoration | Promise<Decoration | undefined> | undefined;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export interface Decoration {
|
|
35
|
+
readonly weight?: number;
|
|
36
|
+
readonly colorId?: string;
|
|
37
|
+
readonly letter?: string;
|
|
38
|
+
readonly tooltip?: string;
|
|
39
|
+
readonly bubble?: boolean;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export interface ResourceDecorationChangeEvent {
|
|
43
|
+
affectsResource(uri: URI): boolean;
|
|
44
|
+
}
|
|
45
|
+
export const DecorationsService = Symbol('DecorationsService');
|
|
46
|
+
export interface DecorationsService {
|
|
47
|
+
|
|
48
|
+
readonly onDidChangeDecorations: Event<Map<string, Decoration>>;
|
|
49
|
+
|
|
50
|
+
registerDecorationsProvider(provider: DecorationsProvider): Disposable;
|
|
51
|
+
|
|
52
|
+
getDecoration(uri: URI, includeChildren: boolean): Decoration[];
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
class DecorationDataRequest {
|
|
56
|
+
constructor(
|
|
57
|
+
readonly source: CancellationTokenSource,
|
|
58
|
+
readonly thenable: Promise<void>,
|
|
59
|
+
) { }
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
class DecorationProviderWrapper {
|
|
63
|
+
|
|
64
|
+
readonly data: TernarySearchTree<URI, DecorationDataRequest | Decoration | undefined>;
|
|
65
|
+
readonly decorations: Map<string, Decoration> = new Map();
|
|
66
|
+
private readonly disposable: Disposable;
|
|
67
|
+
|
|
68
|
+
constructor(
|
|
69
|
+
readonly provider: DecorationsProvider,
|
|
70
|
+
readonly onDidChangeDecorationsEmitter: Emitter<Map<string, Decoration>>
|
|
71
|
+
) {
|
|
72
|
+
|
|
73
|
+
this.data = TernarySearchTree.forUris<DecorationDataRequest | Decoration | undefined>(true);
|
|
74
|
+
|
|
75
|
+
this.disposable = this.provider.onDidChange(async uris => {
|
|
76
|
+
this.decorations.clear();
|
|
77
|
+
if (!uris) {
|
|
78
|
+
this.data.clear();
|
|
79
|
+
} else {
|
|
80
|
+
for (const uri of uris) {
|
|
81
|
+
this.fetchData(uri);
|
|
82
|
+
const decoration = await provider.provideDecorations(uri, CancellationToken.None);
|
|
83
|
+
if (decoration) {
|
|
84
|
+
this.decorations.set(uri.toString(), decoration);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
this.onDidChangeDecorationsEmitter.fire(this.decorations);
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
dispose(): void {
|
|
93
|
+
this.disposable.dispose();
|
|
94
|
+
this.data.clear();
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
knowsAbout(uri: URI): boolean {
|
|
98
|
+
return !!this.data.get(uri) || Boolean(this.data.findSuperstr(uri));
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
getOrRetrieve(uri: URI, includeChildren: boolean, callback: (data: Decoration, isChild: boolean) => void): void {
|
|
102
|
+
|
|
103
|
+
let item = this.data.get(uri);
|
|
104
|
+
|
|
105
|
+
if (item === undefined) {
|
|
106
|
+
// unknown -> trigger request
|
|
107
|
+
item = this.fetchData(uri);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
if (item && !(item instanceof DecorationDataRequest)) {
|
|
111
|
+
// found something (which isn't pending anymore)
|
|
112
|
+
callback(item, false);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
if (includeChildren) {
|
|
116
|
+
// (resolved) children
|
|
117
|
+
const iter = this.data.findSuperstr(uri);
|
|
118
|
+
if (iter) {
|
|
119
|
+
let next = iter.next();
|
|
120
|
+
while (!next.done) {
|
|
121
|
+
const value = next.value;
|
|
122
|
+
if (value && !(value instanceof DecorationDataRequest)) {
|
|
123
|
+
callback(value, true);
|
|
124
|
+
}
|
|
125
|
+
next = iter.next();
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
private fetchData(uri: URI): Decoration | undefined {
|
|
132
|
+
|
|
133
|
+
// check for pending request and cancel it
|
|
134
|
+
const pendingRequest = this.data.get(uri);
|
|
135
|
+
if (pendingRequest instanceof DecorationDataRequest) {
|
|
136
|
+
pendingRequest.source.cancel();
|
|
137
|
+
this.data.delete(uri);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
const source = new CancellationTokenSource();
|
|
141
|
+
const dataOrThenable = this.provider.provideDecorations(uri, source.token);
|
|
142
|
+
if (!isThenable<Decoration | Promise<Decoration | undefined> | undefined>(dataOrThenable)) {
|
|
143
|
+
// sync -> we have a result now
|
|
144
|
+
return this.keepItem(uri, dataOrThenable);
|
|
145
|
+
|
|
146
|
+
} else {
|
|
147
|
+
// async -> we have a result soon
|
|
148
|
+
const request = new DecorationDataRequest(source, Promise.resolve(dataOrThenable).then(data => {
|
|
149
|
+
if (this.data.get(uri) === request) {
|
|
150
|
+
this.keepItem(uri, data);
|
|
151
|
+
}
|
|
152
|
+
}).catch(err => {
|
|
153
|
+
if (!(err instanceof Error && err.name === 'Canceled' && err.message === 'Canceled') && this.data.get(uri) === request) {
|
|
154
|
+
this.data.delete(uri);
|
|
155
|
+
}
|
|
156
|
+
}));
|
|
157
|
+
|
|
158
|
+
this.data.set(uri, request);
|
|
159
|
+
return undefined;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
private keepItem(uri: URI, data: Decoration | undefined): Decoration | undefined {
|
|
164
|
+
const deco = data ? data : undefined;
|
|
165
|
+
this.data.set(uri, deco);
|
|
166
|
+
return deco;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
@injectable()
|
|
171
|
+
export class DecorationsServiceImpl implements DecorationsService {
|
|
172
|
+
|
|
173
|
+
private readonly data: DecorationProviderWrapper[] = [];
|
|
174
|
+
private readonly onDidChangeDecorationsEmitter = new Emitter<Map<string, Decoration>>();
|
|
175
|
+
|
|
176
|
+
readonly onDidChangeDecorations = this.onDidChangeDecorationsEmitter.event;
|
|
177
|
+
|
|
178
|
+
dispose(): void {
|
|
179
|
+
this.onDidChangeDecorationsEmitter.dispose();
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
registerDecorationsProvider(provider: DecorationsProvider): Disposable {
|
|
183
|
+
|
|
184
|
+
const wrapper = new DecorationProviderWrapper(provider, this.onDidChangeDecorationsEmitter);
|
|
185
|
+
this.data.push(wrapper);
|
|
186
|
+
|
|
187
|
+
return Disposable.create(() => {
|
|
188
|
+
// fire event that says 'yes' for any resource
|
|
189
|
+
// known to this provider. then dispose and remove it.
|
|
190
|
+
this.data.splice(this.data.indexOf(wrapper), 1);
|
|
191
|
+
this.onDidChangeDecorationsEmitter.fire(new Map<string, Decoration>());
|
|
192
|
+
wrapper.dispose();
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
getDecoration(uri: URI, includeChildren: boolean): Decoration[] {
|
|
197
|
+
const data: Decoration[] = [];
|
|
198
|
+
let containsChildren: boolean = false;
|
|
199
|
+
for (const wrapper of this.data) {
|
|
200
|
+
wrapper.getOrRetrieve(uri, includeChildren, (deco, isChild) => {
|
|
201
|
+
if (!isChild || deco.bubble) {
|
|
202
|
+
data.push(deco);
|
|
203
|
+
containsChildren = isChild || containsChildren;
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
return data;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
@@ -1,56 +1,56 @@
|
|
|
1
|
-
// *****************************************************************************
|
|
2
|
-
// Copyright (C) 2019 Ericsson and others.
|
|
3
|
-
//
|
|
4
|
-
// This program and the accompanying materials are made available under the
|
|
5
|
-
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
-
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
-
//
|
|
8
|
-
// This Source Code may also be made available under the following Secondary
|
|
9
|
-
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
-
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
-
// with the GNU Classpath Exception which is available at
|
|
12
|
-
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
-
//
|
|
14
|
-
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
-
// *****************************************************************************
|
|
16
|
-
|
|
17
|
-
import * as React from 'react';
|
|
18
|
-
import { injectable, inject } from 'inversify';
|
|
19
|
-
import { Disposable } from '../../common';
|
|
20
|
-
import { Message } from '../widgets';
|
|
21
|
-
import { AbstractDialog, DialogProps } from '../dialogs';
|
|
22
|
-
import { createRoot, Root } from 'react-dom/client';
|
|
23
|
-
|
|
24
|
-
@injectable()
|
|
25
|
-
export abstract class ReactDialog<T> extends AbstractDialog<T> {
|
|
26
|
-
protected contentNodeRoot: Root;
|
|
27
|
-
protected isMounted: boolean;
|
|
28
|
-
|
|
29
|
-
constructor(
|
|
30
|
-
@inject(DialogProps) props: DialogProps
|
|
31
|
-
) {
|
|
32
|
-
super(props);
|
|
33
|
-
this.contentNodeRoot = createRoot(this.contentNode);
|
|
34
|
-
this.isMounted = true;
|
|
35
|
-
this.toDispose.push(Disposable.create(() => {
|
|
36
|
-
this.contentNodeRoot.unmount();
|
|
37
|
-
this.isMounted = false;
|
|
38
|
-
}));
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
protected override onUpdateRequest(msg: Message): void {
|
|
42
|
-
super.onUpdateRequest(msg);
|
|
43
|
-
if (!this.isMounted) {
|
|
44
|
-
this.contentNodeRoot = createRoot(this.contentNode);
|
|
45
|
-
}
|
|
46
|
-
this.contentNodeRoot?.render(<>{this.render()}</>);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Render the React widget in the DOM.
|
|
51
|
-
* - If the widget has been previously rendered,
|
|
52
|
-
* any subsequent calls will perform an update and only
|
|
53
|
-
* change the DOM if absolutely necessary.
|
|
54
|
-
*/
|
|
55
|
-
protected abstract render(): React.ReactNode;
|
|
56
|
-
}
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2019 Ericsson and others.
|
|
3
|
+
//
|
|
4
|
+
// This program and the accompanying materials are made available under the
|
|
5
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
//
|
|
8
|
+
// This Source Code may also be made available under the following Secondary
|
|
9
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
// with the GNU Classpath Exception which is available at
|
|
12
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
//
|
|
14
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
+
// *****************************************************************************
|
|
16
|
+
|
|
17
|
+
import * as React from 'react';
|
|
18
|
+
import { injectable, inject } from 'inversify';
|
|
19
|
+
import { Disposable } from '../../common';
|
|
20
|
+
import { Message } from '../widgets';
|
|
21
|
+
import { AbstractDialog, DialogProps } from '../dialogs';
|
|
22
|
+
import { createRoot, Root } from 'react-dom/client';
|
|
23
|
+
|
|
24
|
+
@injectable()
|
|
25
|
+
export abstract class ReactDialog<T> extends AbstractDialog<T> {
|
|
26
|
+
protected contentNodeRoot: Root;
|
|
27
|
+
protected isMounted: boolean;
|
|
28
|
+
|
|
29
|
+
constructor(
|
|
30
|
+
@inject(DialogProps) props: DialogProps
|
|
31
|
+
) {
|
|
32
|
+
super(props);
|
|
33
|
+
this.contentNodeRoot = createRoot(this.contentNode);
|
|
34
|
+
this.isMounted = true;
|
|
35
|
+
this.toDispose.push(Disposable.create(() => {
|
|
36
|
+
this.contentNodeRoot.unmount();
|
|
37
|
+
this.isMounted = false;
|
|
38
|
+
}));
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
protected override onUpdateRequest(msg: Message): void {
|
|
42
|
+
super.onUpdateRequest(msg);
|
|
43
|
+
if (!this.isMounted) {
|
|
44
|
+
this.contentNodeRoot = createRoot(this.contentNode);
|
|
45
|
+
}
|
|
46
|
+
this.contentNodeRoot?.render(<>{this.render()}</>);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Render the React widget in the DOM.
|
|
51
|
+
* - If the widget has been previously rendered,
|
|
52
|
+
* any subsequent calls will perform an update and only
|
|
53
|
+
* change the DOM if absolutely necessary.
|
|
54
|
+
*/
|
|
55
|
+
protected abstract render(): React.ReactNode;
|
|
56
|
+
}
|