@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,165 +1,165 @@
|
|
|
1
|
-
// *****************************************************************************
|
|
2
|
-
// Copyright (C) 2017 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
|
-
import { LabelParser, LabelPart, LabelIcon } from './label-parser';
|
|
17
|
-
import { CommandService } from './../common';
|
|
18
|
-
import { Container } from 'inversify';
|
|
19
|
-
import { expect } from 'chai';
|
|
20
|
-
|
|
21
|
-
let statusBarEntryUtility: LabelParser;
|
|
22
|
-
|
|
23
|
-
before(() => {
|
|
24
|
-
const testContainer = new Container();
|
|
25
|
-
testContainer.bind(LabelParser).toSelf().inSingletonScope();
|
|
26
|
-
testContainer.bind(CommandService).toDynamicValue(ctx => ({
|
|
27
|
-
executeCommand<T>(): Promise<T | undefined> {
|
|
28
|
-
return Promise.resolve(undefined);
|
|
29
|
-
}
|
|
30
|
-
})).inSingletonScope();
|
|
31
|
-
|
|
32
|
-
statusBarEntryUtility = testContainer.get(LabelParser);
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
describe('StatusBarEntryUtility', () => {
|
|
36
|
-
|
|
37
|
-
let text: string;
|
|
38
|
-
|
|
39
|
-
it('should create an empty array.', () => {
|
|
40
|
-
text = '';
|
|
41
|
-
const iconArr: LabelPart[] = statusBarEntryUtility.parse(text);
|
|
42
|
-
expect(iconArr).to.have.lengthOf(0);
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
it('should create a string array with one entry.', () => {
|
|
46
|
-
text = 'foo bar';
|
|
47
|
-
const iconArr: LabelPart[] = statusBarEntryUtility.parse(text);
|
|
48
|
-
expect(iconArr).to.have.lengthOf(1);
|
|
49
|
-
expect(iconArr[0]).equals('foo bar');
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
it('should create a string array with one entry - text contains an $.', () => {
|
|
53
|
-
text = 'foo $ bar';
|
|
54
|
-
const iconArr: LabelPart[] = statusBarEntryUtility.parse(text);
|
|
55
|
-
expect(iconArr).to.have.lengthOf(1);
|
|
56
|
-
expect(iconArr[0]).equals('foo $ bar');
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
it('should create a string array with one entry - text contains an $( which does not close.', () => {
|
|
60
|
-
text = 'foo $(bar';
|
|
61
|
-
const iconArr: LabelPart[] = statusBarEntryUtility.parse(text);
|
|
62
|
-
expect(iconArr).to.have.lengthOf(1);
|
|
63
|
-
expect(iconArr[0]).equals('foo $(bar');
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
it('should create a string array with two entries. Second is a simple StatusBarIcon.', () => {
|
|
67
|
-
text = 'foo $(bar)';
|
|
68
|
-
const iconArr: LabelPart[] = statusBarEntryUtility.parse(text);
|
|
69
|
-
expect(iconArr).to.have.lengthOf(2);
|
|
70
|
-
expect(iconArr[0]).equals('foo ');
|
|
71
|
-
expect(iconArr[1]).has.property('name');
|
|
72
|
-
expect(iconArr[1]).has.property('animation');
|
|
73
|
-
expect((iconArr[1] as LabelIcon).name).equals('bar');
|
|
74
|
-
expect((iconArr[1] as LabelIcon).animation).to.be.undefined;
|
|
75
|
-
});
|
|
76
|
-
|
|
77
|
-
it('should create a string array with two entries. Second is a StatusBarIcon with an animation.', () => {
|
|
78
|
-
text = 'foo $(bar~baz)';
|
|
79
|
-
const iconArr: LabelPart[] = statusBarEntryUtility.parse(text);
|
|
80
|
-
expect(iconArr).to.have.lengthOf(2);
|
|
81
|
-
expect(iconArr[0]).equals('foo ');
|
|
82
|
-
expect(iconArr[1]).has.property('name');
|
|
83
|
-
expect(iconArr[1]).has.property('animation');
|
|
84
|
-
expect((iconArr[1] as LabelIcon).name).equals('bar');
|
|
85
|
-
expect((iconArr[1] as LabelIcon).animation).equals('baz');
|
|
86
|
-
});
|
|
87
|
-
|
|
88
|
-
it("should create string array of 'foo $(icon1) bar $(icon2) baz $(icon3)'", () => {
|
|
89
|
-
text = 'foo $(icon1) bar $(icon2) baz $(icon3)';
|
|
90
|
-
const iconArr: LabelPart[] = statusBarEntryUtility.parse(text);
|
|
91
|
-
expect(iconArr).to.have.lengthOf(6);
|
|
92
|
-
expect(iconArr[0]).equals('foo ');
|
|
93
|
-
expect(iconArr[2]).equals(' bar ');
|
|
94
|
-
});
|
|
95
|
-
|
|
96
|
-
it("should create string array of '$(icon1) foo bar $(icon2) baz $(icon3)'", () => {
|
|
97
|
-
text = '$(icon1) foo bar $(icon2~ani1) baz $(icon3)';
|
|
98
|
-
const iconArr: LabelPart[] = statusBarEntryUtility.parse(text);
|
|
99
|
-
expect(iconArr).to.have.lengthOf(5);
|
|
100
|
-
expect(iconArr[0]).has.property('name');
|
|
101
|
-
expect((iconArr[0] as LabelIcon).name).equals('icon1');
|
|
102
|
-
expect(iconArr[2]).has.property('animation');
|
|
103
|
-
expect((iconArr[2] as LabelIcon).animation).equals('ani1');
|
|
104
|
-
});
|
|
105
|
-
|
|
106
|
-
it("should create an array with one element of '$(icon1)'", () => {
|
|
107
|
-
text = '$(icon1)';
|
|
108
|
-
const iconArr: LabelPart[] = statusBarEntryUtility.parse(text);
|
|
109
|
-
expect(iconArr).to.have.lengthOf(1);
|
|
110
|
-
expect(iconArr[0]).has.property('name');
|
|
111
|
-
expect((iconArr[0] as LabelIcon).name).equals('icon1');
|
|
112
|
-
});
|
|
113
|
-
|
|
114
|
-
it("should create an array of '$(icon1)$(icon2) (icon3)'", () => {
|
|
115
|
-
text = '$(icon1)$(icon2) $(icon3)';
|
|
116
|
-
const iconArr: LabelPart[] = statusBarEntryUtility.parse(text);
|
|
117
|
-
expect(iconArr).to.have.lengthOf(4);
|
|
118
|
-
expect(iconArr[0]).has.property('name');
|
|
119
|
-
expect((iconArr[0] as LabelIcon).name).equals('icon1');
|
|
120
|
-
expect(iconArr[1]).has.property('name');
|
|
121
|
-
expect((iconArr[1] as LabelIcon).name).equals('icon2');
|
|
122
|
-
expect(iconArr[2]).equals(' ');
|
|
123
|
-
expect(iconArr[3]).has.property('name');
|
|
124
|
-
expect((iconArr[3] as LabelIcon).name).equals('icon3');
|
|
125
|
-
});
|
|
126
|
-
|
|
127
|
-
it('should strip nothing from an empty string', () => {
|
|
128
|
-
text = '';
|
|
129
|
-
const stripped: string = statusBarEntryUtility.stripIcons(text);
|
|
130
|
-
expect(stripped).to.be.equal(text);
|
|
131
|
-
});
|
|
132
|
-
|
|
133
|
-
it('should strip nothing from an string containing no icons', () => {
|
|
134
|
-
// Deliberate double space to verify not concatenating these words
|
|
135
|
-
text = 'foo bar';
|
|
136
|
-
const stripped: string = statusBarEntryUtility.stripIcons(text);
|
|
137
|
-
expect(stripped).to.be.equal(text);
|
|
138
|
-
});
|
|
139
|
-
|
|
140
|
-
it("should strip a medial '$(icon)' from a string", () => {
|
|
141
|
-
text = 'foo $(icon) bar';
|
|
142
|
-
const stripped: string = statusBarEntryUtility.stripIcons(text);
|
|
143
|
-
expect(stripped).to.be.equal('foo bar');
|
|
144
|
-
});
|
|
145
|
-
|
|
146
|
-
it("should strip a terminal '$(icon)' from a string", () => {
|
|
147
|
-
// Deliberate double space to verify not concatenating these words
|
|
148
|
-
text = 'foo bar $(icon)';
|
|
149
|
-
const stripped: string = statusBarEntryUtility.stripIcons(text);
|
|
150
|
-
expect(stripped).to.be.equal('foo bar');
|
|
151
|
-
});
|
|
152
|
-
|
|
153
|
-
it("should strip an initial '$(icon)' from a string", () => {
|
|
154
|
-
// Deliberate double space to verify not concatenating these words
|
|
155
|
-
text = '$(icon) foo bar';
|
|
156
|
-
const stripped: string = statusBarEntryUtility.stripIcons(text);
|
|
157
|
-
expect(stripped).to.be.equal('foo bar');
|
|
158
|
-
});
|
|
159
|
-
|
|
160
|
-
it("should strip multiple '$(icon)' specifiers from a string", () => {
|
|
161
|
-
text = '$(icon1) foo $(icon2)$(icon3) bar $(icon4) $(icon5)';
|
|
162
|
-
const stripped: string = statusBarEntryUtility.stripIcons(text);
|
|
163
|
-
expect(stripped).to.be.equal('foo bar');
|
|
164
|
-
});
|
|
165
|
-
});
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2017 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
|
+
import { LabelParser, LabelPart, LabelIcon } from './label-parser';
|
|
17
|
+
import { CommandService } from './../common';
|
|
18
|
+
import { Container } from 'inversify';
|
|
19
|
+
import { expect } from 'chai';
|
|
20
|
+
|
|
21
|
+
let statusBarEntryUtility: LabelParser;
|
|
22
|
+
|
|
23
|
+
before(() => {
|
|
24
|
+
const testContainer = new Container();
|
|
25
|
+
testContainer.bind(LabelParser).toSelf().inSingletonScope();
|
|
26
|
+
testContainer.bind(CommandService).toDynamicValue(ctx => ({
|
|
27
|
+
executeCommand<T>(): Promise<T | undefined> {
|
|
28
|
+
return Promise.resolve(undefined);
|
|
29
|
+
}
|
|
30
|
+
})).inSingletonScope();
|
|
31
|
+
|
|
32
|
+
statusBarEntryUtility = testContainer.get(LabelParser);
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
describe('StatusBarEntryUtility', () => {
|
|
36
|
+
|
|
37
|
+
let text: string;
|
|
38
|
+
|
|
39
|
+
it('should create an empty array.', () => {
|
|
40
|
+
text = '';
|
|
41
|
+
const iconArr: LabelPart[] = statusBarEntryUtility.parse(text);
|
|
42
|
+
expect(iconArr).to.have.lengthOf(0);
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
it('should create a string array with one entry.', () => {
|
|
46
|
+
text = 'foo bar';
|
|
47
|
+
const iconArr: LabelPart[] = statusBarEntryUtility.parse(text);
|
|
48
|
+
expect(iconArr).to.have.lengthOf(1);
|
|
49
|
+
expect(iconArr[0]).equals('foo bar');
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
it('should create a string array with one entry - text contains an $.', () => {
|
|
53
|
+
text = 'foo $ bar';
|
|
54
|
+
const iconArr: LabelPart[] = statusBarEntryUtility.parse(text);
|
|
55
|
+
expect(iconArr).to.have.lengthOf(1);
|
|
56
|
+
expect(iconArr[0]).equals('foo $ bar');
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
it('should create a string array with one entry - text contains an $( which does not close.', () => {
|
|
60
|
+
text = 'foo $(bar';
|
|
61
|
+
const iconArr: LabelPart[] = statusBarEntryUtility.parse(text);
|
|
62
|
+
expect(iconArr).to.have.lengthOf(1);
|
|
63
|
+
expect(iconArr[0]).equals('foo $(bar');
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
it('should create a string array with two entries. Second is a simple StatusBarIcon.', () => {
|
|
67
|
+
text = 'foo $(bar)';
|
|
68
|
+
const iconArr: LabelPart[] = statusBarEntryUtility.parse(text);
|
|
69
|
+
expect(iconArr).to.have.lengthOf(2);
|
|
70
|
+
expect(iconArr[0]).equals('foo ');
|
|
71
|
+
expect(iconArr[1]).has.property('name');
|
|
72
|
+
expect(iconArr[1]).has.property('animation');
|
|
73
|
+
expect((iconArr[1] as LabelIcon).name).equals('bar');
|
|
74
|
+
expect((iconArr[1] as LabelIcon).animation).to.be.undefined;
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
it('should create a string array with two entries. Second is a StatusBarIcon with an animation.', () => {
|
|
78
|
+
text = 'foo $(bar~baz)';
|
|
79
|
+
const iconArr: LabelPart[] = statusBarEntryUtility.parse(text);
|
|
80
|
+
expect(iconArr).to.have.lengthOf(2);
|
|
81
|
+
expect(iconArr[0]).equals('foo ');
|
|
82
|
+
expect(iconArr[1]).has.property('name');
|
|
83
|
+
expect(iconArr[1]).has.property('animation');
|
|
84
|
+
expect((iconArr[1] as LabelIcon).name).equals('bar');
|
|
85
|
+
expect((iconArr[1] as LabelIcon).animation).equals('baz');
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
it("should create string array of 'foo $(icon1) bar $(icon2) baz $(icon3)'", () => {
|
|
89
|
+
text = 'foo $(icon1) bar $(icon2) baz $(icon3)';
|
|
90
|
+
const iconArr: LabelPart[] = statusBarEntryUtility.parse(text);
|
|
91
|
+
expect(iconArr).to.have.lengthOf(6);
|
|
92
|
+
expect(iconArr[0]).equals('foo ');
|
|
93
|
+
expect(iconArr[2]).equals(' bar ');
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
it("should create string array of '$(icon1) foo bar $(icon2) baz $(icon3)'", () => {
|
|
97
|
+
text = '$(icon1) foo bar $(icon2~ani1) baz $(icon3)';
|
|
98
|
+
const iconArr: LabelPart[] = statusBarEntryUtility.parse(text);
|
|
99
|
+
expect(iconArr).to.have.lengthOf(5);
|
|
100
|
+
expect(iconArr[0]).has.property('name');
|
|
101
|
+
expect((iconArr[0] as LabelIcon).name).equals('icon1');
|
|
102
|
+
expect(iconArr[2]).has.property('animation');
|
|
103
|
+
expect((iconArr[2] as LabelIcon).animation).equals('ani1');
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
it("should create an array with one element of '$(icon1)'", () => {
|
|
107
|
+
text = '$(icon1)';
|
|
108
|
+
const iconArr: LabelPart[] = statusBarEntryUtility.parse(text);
|
|
109
|
+
expect(iconArr).to.have.lengthOf(1);
|
|
110
|
+
expect(iconArr[0]).has.property('name');
|
|
111
|
+
expect((iconArr[0] as LabelIcon).name).equals('icon1');
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
it("should create an array of '$(icon1)$(icon2) (icon3)'", () => {
|
|
115
|
+
text = '$(icon1)$(icon2) $(icon3)';
|
|
116
|
+
const iconArr: LabelPart[] = statusBarEntryUtility.parse(text);
|
|
117
|
+
expect(iconArr).to.have.lengthOf(4);
|
|
118
|
+
expect(iconArr[0]).has.property('name');
|
|
119
|
+
expect((iconArr[0] as LabelIcon).name).equals('icon1');
|
|
120
|
+
expect(iconArr[1]).has.property('name');
|
|
121
|
+
expect((iconArr[1] as LabelIcon).name).equals('icon2');
|
|
122
|
+
expect(iconArr[2]).equals(' ');
|
|
123
|
+
expect(iconArr[3]).has.property('name');
|
|
124
|
+
expect((iconArr[3] as LabelIcon).name).equals('icon3');
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
it('should strip nothing from an empty string', () => {
|
|
128
|
+
text = '';
|
|
129
|
+
const stripped: string = statusBarEntryUtility.stripIcons(text);
|
|
130
|
+
expect(stripped).to.be.equal(text);
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
it('should strip nothing from an string containing no icons', () => {
|
|
134
|
+
// Deliberate double space to verify not concatenating these words
|
|
135
|
+
text = 'foo bar';
|
|
136
|
+
const stripped: string = statusBarEntryUtility.stripIcons(text);
|
|
137
|
+
expect(stripped).to.be.equal(text);
|
|
138
|
+
});
|
|
139
|
+
|
|
140
|
+
it("should strip a medial '$(icon)' from a string", () => {
|
|
141
|
+
text = 'foo $(icon) bar';
|
|
142
|
+
const stripped: string = statusBarEntryUtility.stripIcons(text);
|
|
143
|
+
expect(stripped).to.be.equal('foo bar');
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
it("should strip a terminal '$(icon)' from a string", () => {
|
|
147
|
+
// Deliberate double space to verify not concatenating these words
|
|
148
|
+
text = 'foo bar $(icon)';
|
|
149
|
+
const stripped: string = statusBarEntryUtility.stripIcons(text);
|
|
150
|
+
expect(stripped).to.be.equal('foo bar');
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
it("should strip an initial '$(icon)' from a string", () => {
|
|
154
|
+
// Deliberate double space to verify not concatenating these words
|
|
155
|
+
text = '$(icon) foo bar';
|
|
156
|
+
const stripped: string = statusBarEntryUtility.stripIcons(text);
|
|
157
|
+
expect(stripped).to.be.equal('foo bar');
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
it("should strip multiple '$(icon)' specifiers from a string", () => {
|
|
161
|
+
text = '$(icon1) foo $(icon2)$(icon3) bar $(icon4) $(icon5)';
|
|
162
|
+
const stripped: string = statusBarEntryUtility.stripIcons(text);
|
|
163
|
+
expect(stripped).to.be.equal('foo bar');
|
|
164
|
+
});
|
|
165
|
+
});
|
|
@@ -1,108 +1,108 @@
|
|
|
1
|
-
// *****************************************************************************
|
|
2
|
-
// Copyright (C) 2017 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
|
-
import { injectable } from 'inversify';
|
|
17
|
-
import { isObject, isString } from '../common';
|
|
18
|
-
|
|
19
|
-
export interface LabelIcon {
|
|
20
|
-
name: string;
|
|
21
|
-
animation?: string;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export namespace LabelIcon {
|
|
25
|
-
export function is(val: unknown): val is LabelIcon {
|
|
26
|
-
return isObject<LabelIcon>(val) && isString(val.name);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
export type LabelPart = string | LabelIcon;
|
|
31
|
-
|
|
32
|
-
@injectable()
|
|
33
|
-
export class LabelParser {
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Returns an array with parts of the given text.
|
|
37
|
-
* These parts are of type LabelPart which can be either a string or a LabelIcon.
|
|
38
|
-
* For splitting up the giving text the parser follows this rule:
|
|
39
|
-
* The text gets parsed for the following pattern: $(iconName~iconAnimation).
|
|
40
|
-
* If the parser finds such pattern a new LabelIcon object
|
|
41
|
-
* { name: 'iconName', animation: 'iconAnimation'} is added to the returned array.
|
|
42
|
-
* iconName can be for instance the name of an icon of e.g. FontAwesome and the (optional) iconAnimation
|
|
43
|
-
* the name of an animation class which must be supported by the particular icon toolkit.
|
|
44
|
-
*
|
|
45
|
-
* Every string before, between or after such icon patterns gets also added to the array
|
|
46
|
-
* before, between or after the related LabelIcon.
|
|
47
|
-
*
|
|
48
|
-
* @param text - the label text to parse
|
|
49
|
-
*/
|
|
50
|
-
parse(text: string): LabelPart[] {
|
|
51
|
-
const parserArray: LabelPart[] = [];
|
|
52
|
-
let arrPointer = 0;
|
|
53
|
-
let potentialIcon = '';
|
|
54
|
-
|
|
55
|
-
for (let idx = 0; idx < text.length; idx++) {
|
|
56
|
-
const char = text.charAt(idx);
|
|
57
|
-
parserArray[arrPointer] = parserArray[arrPointer] || '';
|
|
58
|
-
if (potentialIcon === '') {
|
|
59
|
-
if (char === '$') {
|
|
60
|
-
potentialIcon += char;
|
|
61
|
-
} else {
|
|
62
|
-
parserArray[arrPointer] += char;
|
|
63
|
-
}
|
|
64
|
-
} else if (potentialIcon === '$') {
|
|
65
|
-
if (char === '(') {
|
|
66
|
-
potentialIcon += char;
|
|
67
|
-
} else {
|
|
68
|
-
parserArray[arrPointer] += potentialIcon + char;
|
|
69
|
-
potentialIcon = '';
|
|
70
|
-
}
|
|
71
|
-
} else {
|
|
72
|
-
if (char === ')') {
|
|
73
|
-
const iconClassArr = potentialIcon.substring(2, potentialIcon.length).split('~');
|
|
74
|
-
if (parserArray[arrPointer] !== '') {
|
|
75
|
-
arrPointer++;
|
|
76
|
-
}
|
|
77
|
-
parserArray[arrPointer] = { name: iconClassArr[0], animation: iconClassArr[1] };
|
|
78
|
-
arrPointer++;
|
|
79
|
-
potentialIcon = '';
|
|
80
|
-
} else {
|
|
81
|
-
potentialIcon += char;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
if (potentialIcon !== '') {
|
|
87
|
-
parserArray[arrPointer] += potentialIcon;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
return parserArray;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
/**
|
|
94
|
-
* Strips icon specifiers from the given `text`, leaving only a
|
|
95
|
-
* space-separated concatenation of the non-icon segments.
|
|
96
|
-
*
|
|
97
|
-
* @param text text to be stripped of icon specifiers
|
|
98
|
-
* @returns the `text` with icon specifiers stripped out
|
|
99
|
-
*/
|
|
100
|
-
stripIcons(text: string): string {
|
|
101
|
-
return this.parse(text)
|
|
102
|
-
.filter(item => !LabelIcon.is(item))
|
|
103
|
-
.map(s => (s as string).trim())
|
|
104
|
-
.filter(s => s.length)
|
|
105
|
-
.join(' ');
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
}
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2017 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
|
+
import { injectable } from 'inversify';
|
|
17
|
+
import { isObject, isString } from '../common';
|
|
18
|
+
|
|
19
|
+
export interface LabelIcon {
|
|
20
|
+
name: string;
|
|
21
|
+
animation?: string;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export namespace LabelIcon {
|
|
25
|
+
export function is(val: unknown): val is LabelIcon {
|
|
26
|
+
return isObject<LabelIcon>(val) && isString(val.name);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export type LabelPart = string | LabelIcon;
|
|
31
|
+
|
|
32
|
+
@injectable()
|
|
33
|
+
export class LabelParser {
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Returns an array with parts of the given text.
|
|
37
|
+
* These parts are of type LabelPart which can be either a string or a LabelIcon.
|
|
38
|
+
* For splitting up the giving text the parser follows this rule:
|
|
39
|
+
* The text gets parsed for the following pattern: $(iconName~iconAnimation).
|
|
40
|
+
* If the parser finds such pattern a new LabelIcon object
|
|
41
|
+
* { name: 'iconName', animation: 'iconAnimation'} is added to the returned array.
|
|
42
|
+
* iconName can be for instance the name of an icon of e.g. FontAwesome and the (optional) iconAnimation
|
|
43
|
+
* the name of an animation class which must be supported by the particular icon toolkit.
|
|
44
|
+
*
|
|
45
|
+
* Every string before, between or after such icon patterns gets also added to the array
|
|
46
|
+
* before, between or after the related LabelIcon.
|
|
47
|
+
*
|
|
48
|
+
* @param text - the label text to parse
|
|
49
|
+
*/
|
|
50
|
+
parse(text: string): LabelPart[] {
|
|
51
|
+
const parserArray: LabelPart[] = [];
|
|
52
|
+
let arrPointer = 0;
|
|
53
|
+
let potentialIcon = '';
|
|
54
|
+
|
|
55
|
+
for (let idx = 0; idx < text.length; idx++) {
|
|
56
|
+
const char = text.charAt(idx);
|
|
57
|
+
parserArray[arrPointer] = parserArray[arrPointer] || '';
|
|
58
|
+
if (potentialIcon === '') {
|
|
59
|
+
if (char === '$') {
|
|
60
|
+
potentialIcon += char;
|
|
61
|
+
} else {
|
|
62
|
+
parserArray[arrPointer] += char;
|
|
63
|
+
}
|
|
64
|
+
} else if (potentialIcon === '$') {
|
|
65
|
+
if (char === '(') {
|
|
66
|
+
potentialIcon += char;
|
|
67
|
+
} else {
|
|
68
|
+
parserArray[arrPointer] += potentialIcon + char;
|
|
69
|
+
potentialIcon = '';
|
|
70
|
+
}
|
|
71
|
+
} else {
|
|
72
|
+
if (char === ')') {
|
|
73
|
+
const iconClassArr = potentialIcon.substring(2, potentialIcon.length).split('~');
|
|
74
|
+
if (parserArray[arrPointer] !== '') {
|
|
75
|
+
arrPointer++;
|
|
76
|
+
}
|
|
77
|
+
parserArray[arrPointer] = { name: iconClassArr[0], animation: iconClassArr[1] };
|
|
78
|
+
arrPointer++;
|
|
79
|
+
potentialIcon = '';
|
|
80
|
+
} else {
|
|
81
|
+
potentialIcon += char;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
if (potentialIcon !== '') {
|
|
87
|
+
parserArray[arrPointer] += potentialIcon;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
return parserArray;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Strips icon specifiers from the given `text`, leaving only a
|
|
95
|
+
* space-separated concatenation of the non-icon segments.
|
|
96
|
+
*
|
|
97
|
+
* @param text text to be stripped of icon specifiers
|
|
98
|
+
* @returns the `text` with icon specifiers stripped out
|
|
99
|
+
*/
|
|
100
|
+
stripIcons(text: string): string {
|
|
101
|
+
return this.parse(text)
|
|
102
|
+
.filter(item => !LabelIcon.is(item))
|
|
103
|
+
.map(s => (s as string).trim())
|
|
104
|
+
.filter(s => s.length)
|
|
105
|
+
.join(' ');
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
}
|