@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
package/src/node/cli.spec.ts
CHANGED
|
@@ -1,94 +1,94 @@
|
|
|
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
|
-
|
|
17
|
-
import * as yargs from 'yargs';
|
|
18
|
-
import * as chai from 'chai';
|
|
19
|
-
import { CliManager, CliContribution } from './cli';
|
|
20
|
-
import { Deferred } from '../common/promise-util';
|
|
21
|
-
import { MaybePromise } from '../common/types';
|
|
22
|
-
|
|
23
|
-
class TestCliManager extends CliManager {
|
|
24
|
-
constructor(...contribs: CliContribution[]) {
|
|
25
|
-
super({
|
|
26
|
-
getContributions(): CliContribution[] { return contribs; }
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
beforeEach(() => {
|
|
32
|
-
yargs.global([]);
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
describe('CliManager', () => {
|
|
36
|
-
it('Parses simple option', async () => {
|
|
37
|
-
const value = new Deferred<string>();
|
|
38
|
-
const manager = new TestCliManager({
|
|
39
|
-
configure(conf: yargs.Argv): void {
|
|
40
|
-
conf.option('foo', { alias: 'f', description: 'Some foo.' });
|
|
41
|
-
conf.option('bar', { alias: 'b', description: 'Some bla.', default: 'my-default', type: 'string' });
|
|
42
|
-
},
|
|
43
|
-
setArguments(args: yargs.Arguments): void {
|
|
44
|
-
value.resolve(args['foo'] as string);
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
await manager.initializeCli(['-f', 'bla'], () => Promise.resolve(), () => Promise.resolve());
|
|
48
|
-
chai.assert.equal(await value.promise, 'bla');
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
it('resolves with default', async () => {
|
|
52
|
-
const value = new Deferred<string>();
|
|
53
|
-
const manager = new TestCliManager({
|
|
54
|
-
configure(conf: yargs.Argv): void {
|
|
55
|
-
conf.option('foo', { alias: 'f', description: 'Some foo.' });
|
|
56
|
-
conf.option('bar', { alias: 'b', description: 'Some bla.', default: 'my-default', type: 'string' });
|
|
57
|
-
},
|
|
58
|
-
setArguments(args: yargs.Arguments): MaybePromise<void> {
|
|
59
|
-
value.resolve(args['bar'] as string);
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
|
-
await manager.initializeCli(['--foo'], () => Promise.resolve(), () => Promise.resolve());
|
|
63
|
-
chai.assert.equal(await value.promise, 'my-default');
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
it('prints help and exits', async () =>
|
|
67
|
-
assertExits(async () => {
|
|
68
|
-
const manager = new TestCliManager();
|
|
69
|
-
await manager.initializeCli(['--help'], () => Promise.resolve(), () => Promise.resolve());
|
|
70
|
-
})
|
|
71
|
-
);
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
async function assertExits(code: () => Promise<void>): Promise<void> {
|
|
75
|
-
const oldExit = process.exit;
|
|
76
|
-
const exitCalled = new Deferred<void>();
|
|
77
|
-
const exitError = new Error();
|
|
78
|
-
process.exit = () => {
|
|
79
|
-
throw exitError;
|
|
80
|
-
};
|
|
81
|
-
try {
|
|
82
|
-
await code();
|
|
83
|
-
exitCalled.reject();
|
|
84
|
-
} catch (err) {
|
|
85
|
-
if (err === exitError) {
|
|
86
|
-
exitCalled.resolve();
|
|
87
|
-
} else {
|
|
88
|
-
exitCalled.reject();
|
|
89
|
-
}
|
|
90
|
-
} finally {
|
|
91
|
-
process.exit = oldExit;
|
|
92
|
-
}
|
|
93
|
-
return exitCalled.promise;
|
|
94
|
-
}
|
|
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
|
+
|
|
17
|
+
import * as yargs from 'yargs';
|
|
18
|
+
import * as chai from 'chai';
|
|
19
|
+
import { CliManager, CliContribution } from './cli';
|
|
20
|
+
import { Deferred } from '../common/promise-util';
|
|
21
|
+
import { MaybePromise } from '../common/types';
|
|
22
|
+
|
|
23
|
+
class TestCliManager extends CliManager {
|
|
24
|
+
constructor(...contribs: CliContribution[]) {
|
|
25
|
+
super({
|
|
26
|
+
getContributions(): CliContribution[] { return contribs; }
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
beforeEach(() => {
|
|
32
|
+
yargs.global([]);
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
describe('CliManager', () => {
|
|
36
|
+
it('Parses simple option', async () => {
|
|
37
|
+
const value = new Deferred<string>();
|
|
38
|
+
const manager = new TestCliManager({
|
|
39
|
+
configure(conf: yargs.Argv): void {
|
|
40
|
+
conf.option('foo', { alias: 'f', description: 'Some foo.' });
|
|
41
|
+
conf.option('bar', { alias: 'b', description: 'Some bla.', default: 'my-default', type: 'string' });
|
|
42
|
+
},
|
|
43
|
+
setArguments(args: yargs.Arguments): void {
|
|
44
|
+
value.resolve(args['foo'] as string);
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
await manager.initializeCli(['-f', 'bla'], () => Promise.resolve(), () => Promise.resolve());
|
|
48
|
+
chai.assert.equal(await value.promise, 'bla');
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
it('resolves with default', async () => {
|
|
52
|
+
const value = new Deferred<string>();
|
|
53
|
+
const manager = new TestCliManager({
|
|
54
|
+
configure(conf: yargs.Argv): void {
|
|
55
|
+
conf.option('foo', { alias: 'f', description: 'Some foo.' });
|
|
56
|
+
conf.option('bar', { alias: 'b', description: 'Some bla.', default: 'my-default', type: 'string' });
|
|
57
|
+
},
|
|
58
|
+
setArguments(args: yargs.Arguments): MaybePromise<void> {
|
|
59
|
+
value.resolve(args['bar'] as string);
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
await manager.initializeCli(['--foo'], () => Promise.resolve(), () => Promise.resolve());
|
|
63
|
+
chai.assert.equal(await value.promise, 'my-default');
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
it('prints help and exits', async () =>
|
|
67
|
+
assertExits(async () => {
|
|
68
|
+
const manager = new TestCliManager();
|
|
69
|
+
await manager.initializeCli(['--help'], () => Promise.resolve(), () => Promise.resolve());
|
|
70
|
+
})
|
|
71
|
+
);
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
async function assertExits(code: () => Promise<void>): Promise<void> {
|
|
75
|
+
const oldExit = process.exit;
|
|
76
|
+
const exitCalled = new Deferred<void>();
|
|
77
|
+
const exitError = new Error();
|
|
78
|
+
process.exit = () => {
|
|
79
|
+
throw exitError;
|
|
80
|
+
};
|
|
81
|
+
try {
|
|
82
|
+
await code();
|
|
83
|
+
exitCalled.reject();
|
|
84
|
+
} catch (err) {
|
|
85
|
+
if (err === exitError) {
|
|
86
|
+
exitCalled.resolve();
|
|
87
|
+
} else {
|
|
88
|
+
exitCalled.reject();
|
|
89
|
+
}
|
|
90
|
+
} finally {
|
|
91
|
+
process.exit = oldExit;
|
|
92
|
+
}
|
|
93
|
+
return exitCalled.promise;
|
|
94
|
+
}
|
package/src/node/cli.ts
CHANGED
|
@@ -1,63 +1,63 @@
|
|
|
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
|
-
|
|
17
|
-
import * as yargs from 'yargs';
|
|
18
|
-
import { inject, named, injectable } from 'inversify';
|
|
19
|
-
import { ContributionProvider } from '../common/contribution-provider';
|
|
20
|
-
import { MaybePromise } from '../common/types';
|
|
21
|
-
|
|
22
|
-
export const CliContribution = Symbol('CliContribution');
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Call back for extension to contribute options to the cli.
|
|
26
|
-
*/
|
|
27
|
-
export interface CliContribution {
|
|
28
|
-
configure(conf: yargs.Argv): void;
|
|
29
|
-
setArguments(args: yargs.Arguments): MaybePromise<void>;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
@injectable()
|
|
33
|
-
export class CliManager {
|
|
34
|
-
|
|
35
|
-
constructor(@inject(ContributionProvider) @named(CliContribution)
|
|
36
|
-
protected readonly contributionsProvider: ContributionProvider<CliContribution>) { }
|
|
37
|
-
|
|
38
|
-
async initializeCli<T>(argv: string[], postSetArguments: () => Promise<void>, defaultCommand: () => Promise<void>): Promise<void> {
|
|
39
|
-
const pack = require('../../package.json');
|
|
40
|
-
const version = pack.version;
|
|
41
|
-
const command = yargs(argv, process.cwd()).version(version);
|
|
42
|
-
command.exitProcess(this.isExit());
|
|
43
|
-
for (const contrib of this.contributionsProvider.getContributions()) {
|
|
44
|
-
contrib.configure(command);
|
|
45
|
-
}
|
|
46
|
-
await command
|
|
47
|
-
.detectLocale(false)
|
|
48
|
-
.showHelpOnFail(false, 'Specify --help for available options')
|
|
49
|
-
.help('help')
|
|
50
|
-
.middleware(async args => {
|
|
51
|
-
for (const contrib of this.contributionsProvider.getContributions()) {
|
|
52
|
-
await contrib.setArguments(args);
|
|
53
|
-
}
|
|
54
|
-
await postSetArguments();
|
|
55
|
-
})
|
|
56
|
-
.command('$0', false, () => { }, defaultCommand)
|
|
57
|
-
.parse();
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
protected isExit(): boolean {
|
|
61
|
-
return true;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
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
|
+
|
|
17
|
+
import * as yargs from 'yargs';
|
|
18
|
+
import { inject, named, injectable } from 'inversify';
|
|
19
|
+
import { ContributionProvider } from '../common/contribution-provider';
|
|
20
|
+
import { MaybePromise } from '../common/types';
|
|
21
|
+
|
|
22
|
+
export const CliContribution = Symbol('CliContribution');
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Call back for extension to contribute options to the cli.
|
|
26
|
+
*/
|
|
27
|
+
export interface CliContribution {
|
|
28
|
+
configure(conf: yargs.Argv): void;
|
|
29
|
+
setArguments(args: yargs.Arguments): MaybePromise<void>;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
@injectable()
|
|
33
|
+
export class CliManager {
|
|
34
|
+
|
|
35
|
+
constructor(@inject(ContributionProvider) @named(CliContribution)
|
|
36
|
+
protected readonly contributionsProvider: ContributionProvider<CliContribution>) { }
|
|
37
|
+
|
|
38
|
+
async initializeCli<T>(argv: string[], postSetArguments: () => Promise<void>, defaultCommand: () => Promise<void>): Promise<void> {
|
|
39
|
+
const pack = require('../../package.json');
|
|
40
|
+
const version = pack.version;
|
|
41
|
+
const command = yargs(argv, process.cwd()).version(version);
|
|
42
|
+
command.exitProcess(this.isExit());
|
|
43
|
+
for (const contrib of this.contributionsProvider.getContributions()) {
|
|
44
|
+
contrib.configure(command);
|
|
45
|
+
}
|
|
46
|
+
await command
|
|
47
|
+
.detectLocale(false)
|
|
48
|
+
.showHelpOnFail(false, 'Specify --help for available options')
|
|
49
|
+
.help('help')
|
|
50
|
+
.middleware(async args => {
|
|
51
|
+
for (const contrib of this.contributionsProvider.getContributions()) {
|
|
52
|
+
await contrib.setArguments(args);
|
|
53
|
+
}
|
|
54
|
+
await postSetArguments();
|
|
55
|
+
})
|
|
56
|
+
.command('$0', false, () => { }, defaultCommand)
|
|
57
|
+
.parse();
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
protected isExit(): boolean {
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -1,59 +1,59 @@
|
|
|
1
|
-
// *****************************************************************************
|
|
2
|
-
// Copyright (C) 2018 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 { Container, injectable, postConstruct } from 'inversify';
|
|
18
|
-
import { ConsoleLoggerServer } from './console-logger-server';
|
|
19
|
-
import { LogLevel } from '../common/logger-protocol';
|
|
20
|
-
import { LoggerWatcher } from '../common/logger-watcher';
|
|
21
|
-
import { LogLevelCliContribution } from './logger-cli-contribution';
|
|
22
|
-
import { expect } from 'chai';
|
|
23
|
-
|
|
24
|
-
let server: ConsoleLoggerServer;
|
|
25
|
-
let logLevelCliContribution: MockLogLevelCliContribution;
|
|
26
|
-
|
|
27
|
-
@injectable()
|
|
28
|
-
class MockLogLevelCliContribution extends LogLevelCliContribution {
|
|
29
|
-
|
|
30
|
-
@postConstruct()
|
|
31
|
-
init(): void {
|
|
32
|
-
this._logLevels['test-logger'] = LogLevel.DEBUG;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
changeLogLevel(newLevel: LogLevel): void {
|
|
36
|
-
this._logLevels['test-logger'] = newLevel;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
beforeEach(() => {
|
|
41
|
-
const container = new Container;
|
|
42
|
-
container.bind(ConsoleLoggerServer).toSelf().inSingletonScope();
|
|
43
|
-
container.bind(LoggerWatcher).toSelf().inSingletonScope();
|
|
44
|
-
container.bind(MockLogLevelCliContribution).toSelf().inSingletonScope();
|
|
45
|
-
container.bind(LogLevelCliContribution).toService(MockLogLevelCliContribution);
|
|
46
|
-
|
|
47
|
-
logLevelCliContribution = container.get<MockLogLevelCliContribution>(MockLogLevelCliContribution);
|
|
48
|
-
server = container.get<ConsoleLoggerServer>(ConsoleLoggerServer);
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
describe('ConsoleLoggerServer', function (): void {
|
|
52
|
-
it('should respect log level config', async function (): Promise<void> {
|
|
53
|
-
expect(await server.getLogLevel('test-logger')).eq(LogLevel.DEBUG);
|
|
54
|
-
await server.child('test-logger');
|
|
55
|
-
expect(await server.getLogLevel('test-logger')).eq(LogLevel.DEBUG);
|
|
56
|
-
logLevelCliContribution.changeLogLevel(LogLevel.WARN);
|
|
57
|
-
expect(await server.getLogLevel('test-logger')).eq(LogLevel.WARN);
|
|
58
|
-
});
|
|
59
|
-
});
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2018 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 { Container, injectable, postConstruct } from 'inversify';
|
|
18
|
+
import { ConsoleLoggerServer } from './console-logger-server';
|
|
19
|
+
import { LogLevel } from '../common/logger-protocol';
|
|
20
|
+
import { LoggerWatcher } from '../common/logger-watcher';
|
|
21
|
+
import { LogLevelCliContribution } from './logger-cli-contribution';
|
|
22
|
+
import { expect } from 'chai';
|
|
23
|
+
|
|
24
|
+
let server: ConsoleLoggerServer;
|
|
25
|
+
let logLevelCliContribution: MockLogLevelCliContribution;
|
|
26
|
+
|
|
27
|
+
@injectable()
|
|
28
|
+
class MockLogLevelCliContribution extends LogLevelCliContribution {
|
|
29
|
+
|
|
30
|
+
@postConstruct()
|
|
31
|
+
init(): void {
|
|
32
|
+
this._logLevels['test-logger'] = LogLevel.DEBUG;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
changeLogLevel(newLevel: LogLevel): void {
|
|
36
|
+
this._logLevels['test-logger'] = newLevel;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
beforeEach(() => {
|
|
41
|
+
const container = new Container;
|
|
42
|
+
container.bind(ConsoleLoggerServer).toSelf().inSingletonScope();
|
|
43
|
+
container.bind(LoggerWatcher).toSelf().inSingletonScope();
|
|
44
|
+
container.bind(MockLogLevelCliContribution).toSelf().inSingletonScope();
|
|
45
|
+
container.bind(LogLevelCliContribution).toService(MockLogLevelCliContribution);
|
|
46
|
+
|
|
47
|
+
logLevelCliContribution = container.get<MockLogLevelCliContribution>(MockLogLevelCliContribution);
|
|
48
|
+
server = container.get<ConsoleLoggerServer>(ConsoleLoggerServer);
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
describe('ConsoleLoggerServer', function (): void {
|
|
52
|
+
it('should respect log level config', async function (): Promise<void> {
|
|
53
|
+
expect(await server.getLogLevel('test-logger')).eq(LogLevel.DEBUG);
|
|
54
|
+
await server.child('test-logger');
|
|
55
|
+
expect(await server.getLogLevel('test-logger')).eq(LogLevel.DEBUG);
|
|
56
|
+
logLevelCliContribution.changeLogLevel(LogLevel.WARN);
|
|
57
|
+
expect(await server.getLogLevel('test-logger')).eq(LogLevel.WARN);
|
|
58
|
+
});
|
|
59
|
+
});
|
|
@@ -1,76 +1,76 @@
|
|
|
1
|
-
// *****************************************************************************
|
|
2
|
-
// Copyright (C) 2017 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 { inject, injectable, postConstruct } from 'inversify';
|
|
18
|
-
import { LoggerWatcher } from '../common/logger-watcher';
|
|
19
|
-
import { LogLevelCliContribution } from './logger-cli-contribution';
|
|
20
|
-
import { ILoggerServer, ILoggerClient, ConsoleLogger, rootLoggerName } from '../common/logger-protocol';
|
|
21
|
-
|
|
22
|
-
@injectable()
|
|
23
|
-
export class ConsoleLoggerServer implements ILoggerServer {
|
|
24
|
-
|
|
25
|
-
protected client: ILoggerClient | undefined = undefined;
|
|
26
|
-
|
|
27
|
-
@inject(LoggerWatcher)
|
|
28
|
-
protected watcher: LoggerWatcher;
|
|
29
|
-
|
|
30
|
-
@inject(LogLevelCliContribution)
|
|
31
|
-
protected cli: LogLevelCliContribution;
|
|
32
|
-
|
|
33
|
-
@postConstruct()
|
|
34
|
-
protected init(): void {
|
|
35
|
-
this.setLogLevel(rootLoggerName, this.cli.defaultLogLevel);
|
|
36
|
-
for (const name of Object.keys(this.cli.logLevels)) {
|
|
37
|
-
this.setLogLevel(name, this.cli.logLevels[name]);
|
|
38
|
-
}
|
|
39
|
-
this.cli.onLogConfigChanged(() => {
|
|
40
|
-
this.client?.onLogConfigChanged();
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
async setLogLevel(name: string, newLogLevel: number): Promise<void> {
|
|
45
|
-
const event = {
|
|
46
|
-
loggerName: name,
|
|
47
|
-
newLogLevel
|
|
48
|
-
};
|
|
49
|
-
if (this.client !== undefined) {
|
|
50
|
-
this.client.onLogLevelChanged(event);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
async getLogLevel(name: string): Promise<number> {
|
|
55
|
-
return this.cli.logLevelFor(name);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
59
|
-
async log(name: string, logLevel: number, message: string, params: any[]): Promise<void> {
|
|
60
|
-
const configuredLogLevel = await this.getLogLevel(name);
|
|
61
|
-
if (logLevel >= configuredLogLevel) {
|
|
62
|
-
ConsoleLogger.log(name, logLevel, message, params);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
async child(name: string): Promise<void> {
|
|
67
|
-
this.setLogLevel(name, this.cli.logLevelFor(name));
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
dispose(): void { }
|
|
71
|
-
|
|
72
|
-
setClient(client: ILoggerClient | undefined): void {
|
|
73
|
-
this.client = client;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
}
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2017 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 { inject, injectable, postConstruct } from 'inversify';
|
|
18
|
+
import { LoggerWatcher } from '../common/logger-watcher';
|
|
19
|
+
import { LogLevelCliContribution } from './logger-cli-contribution';
|
|
20
|
+
import { ILoggerServer, ILoggerClient, ConsoleLogger, rootLoggerName } from '../common/logger-protocol';
|
|
21
|
+
|
|
22
|
+
@injectable()
|
|
23
|
+
export class ConsoleLoggerServer implements ILoggerServer {
|
|
24
|
+
|
|
25
|
+
protected client: ILoggerClient | undefined = undefined;
|
|
26
|
+
|
|
27
|
+
@inject(LoggerWatcher)
|
|
28
|
+
protected watcher: LoggerWatcher;
|
|
29
|
+
|
|
30
|
+
@inject(LogLevelCliContribution)
|
|
31
|
+
protected cli: LogLevelCliContribution;
|
|
32
|
+
|
|
33
|
+
@postConstruct()
|
|
34
|
+
protected init(): void {
|
|
35
|
+
this.setLogLevel(rootLoggerName, this.cli.defaultLogLevel);
|
|
36
|
+
for (const name of Object.keys(this.cli.logLevels)) {
|
|
37
|
+
this.setLogLevel(name, this.cli.logLevels[name]);
|
|
38
|
+
}
|
|
39
|
+
this.cli.onLogConfigChanged(() => {
|
|
40
|
+
this.client?.onLogConfigChanged();
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
async setLogLevel(name: string, newLogLevel: number): Promise<void> {
|
|
45
|
+
const event = {
|
|
46
|
+
loggerName: name,
|
|
47
|
+
newLogLevel
|
|
48
|
+
};
|
|
49
|
+
if (this.client !== undefined) {
|
|
50
|
+
this.client.onLogLevelChanged(event);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
async getLogLevel(name: string): Promise<number> {
|
|
55
|
+
return this.cli.logLevelFor(name);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
59
|
+
async log(name: string, logLevel: number, message: string, params: any[]): Promise<void> {
|
|
60
|
+
const configuredLogLevel = await this.getLogLevel(name);
|
|
61
|
+
if (logLevel >= configuredLogLevel) {
|
|
62
|
+
ConsoleLogger.log(name, logLevel, message, params);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
async child(name: string): Promise<void> {
|
|
67
|
+
this.setLogLevel(name, this.cli.logLevelFor(name));
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
dispose(): void { }
|
|
71
|
+
|
|
72
|
+
setClient(client: ILoggerClient | undefined): void {
|
|
73
|
+
this.client = client;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
}
|
package/src/node/debug.ts
CHANGED
|
@@ -1,30 +1,30 @@
|
|
|
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
|
-
|
|
17
|
-
// eslint-disable-next-line no-var, @typescript-eslint/no-explicit-any
|
|
18
|
-
declare var v8debug: any;
|
|
19
|
-
function isInDebugMode(): boolean {
|
|
20
|
-
if (typeof v8debug === 'object') {
|
|
21
|
-
return true;
|
|
22
|
-
}
|
|
23
|
-
if (process && process.execArgv) {
|
|
24
|
-
return process.execArgv.some(arg =>
|
|
25
|
-
/^--(debug|inspect)(-brk)?=?/.test(arg)
|
|
26
|
-
);
|
|
27
|
-
}
|
|
28
|
-
return false;
|
|
29
|
-
}
|
|
30
|
-
export const DEBUG_MODE = isInDebugMode();
|
|
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
|
+
|
|
17
|
+
// eslint-disable-next-line no-var, @typescript-eslint/no-explicit-any
|
|
18
|
+
declare var v8debug: any;
|
|
19
|
+
function isInDebugMode(): boolean {
|
|
20
|
+
if (typeof v8debug === 'object') {
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
if (process && process.execArgv) {
|
|
24
|
+
return process.execArgv.some(arg =>
|
|
25
|
+
/^--(debug|inspect)(-brk)?=?/.test(arg)
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
export const DEBUG_MODE = isInDebugMode();
|