@theia/core 1.27.0-next.9 → 1.27.0
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 -7
- package/i18n/nls.cs.json +52 -6
- package/i18n/nls.de.json +52 -6
- package/i18n/nls.es.json +52 -6
- package/i18n/nls.fr.json +52 -6
- package/i18n/nls.hu.json +55 -9
- package/i18n/nls.it.json +52 -6
- package/i18n/nls.ja.json +52 -6
- package/i18n/nls.json +52 -6
- package/i18n/nls.pl.json +52 -6
- package/i18n/nls.pt-br.json +52 -6
- package/i18n/nls.pt-pt.json +52 -6
- package/i18n/nls.ru.json +52 -6
- package/i18n/nls.zh-cn.json +52 -6
- package/lib/browser/color-application-contribution.d.ts +2 -2
- package/lib/browser/color-application-contribution.d.ts.map +1 -1
- package/lib/browser/color-application-contribution.js +15 -16
- package/lib/browser/color-application-contribution.js.map +1 -1
- package/lib/browser/color-registry.d.ts +0 -4
- package/lib/browser/color-registry.d.ts.map +1 -1
- package/lib/browser/color-registry.js +0 -14
- package/lib/browser/color-registry.js.map +1 -1
- package/lib/browser/common-frontend-contribution.d.ts +4 -0
- package/lib/browser/common-frontend-contribution.d.ts.map +1 -1
- package/lib/browser/common-frontend-contribution.js +157 -163
- package/lib/browser/common-frontend-contribution.js.map +1 -1
- package/lib/browser/common-styling-participants.d.ts +28 -0
- package/lib/browser/common-styling-participants.d.ts.map +1 -0
- package/lib/browser/common-styling-participants.js +319 -0
- package/lib/browser/common-styling-participants.js.map +1 -0
- package/lib/browser/connection-status-service.d.ts.map +1 -1
- package/lib/browser/connection-status-service.js +2 -2
- package/lib/browser/connection-status-service.js.map +1 -1
- package/lib/browser/connection-status-service.spec.js +1 -2
- package/lib/browser/connection-status-service.spec.js.map +1 -1
- package/lib/browser/context-menu-renderer.d.ts +1 -5
- package/lib/browser/context-menu-renderer.d.ts.map +1 -1
- package/lib/browser/context-menu-renderer.js +10 -30
- package/lib/browser/context-menu-renderer.js.map +1 -1
- package/lib/browser/core-preferences.d.ts +1 -0
- package/lib/browser/core-preferences.d.ts.map +1 -1
- package/lib/browser/core-preferences.js +5 -0
- package/lib/browser/core-preferences.js.map +1 -1
- package/lib/browser/decoration-style.d.ts +1 -0
- package/lib/browser/decoration-style.d.ts.map +1 -1
- package/lib/browser/decoration-style.js +6 -2
- package/lib/browser/decoration-style.js.map +1 -1
- package/lib/browser/frontend-application-bindings.d.ts.map +1 -1
- package/lib/browser/frontend-application-bindings.js +1 -3
- package/lib/browser/frontend-application-bindings.js.map +1 -1
- package/lib/browser/frontend-application-config-provider.d.ts +1 -0
- package/lib/browser/frontend-application-config-provider.d.ts.map +1 -1
- package/lib/browser/frontend-application-config-provider.js +2 -1
- package/lib/browser/frontend-application-config-provider.js.map +1 -1
- package/lib/browser/frontend-application-module.d.ts.map +1 -1
- package/lib/browser/frontend-application-module.js +9 -3
- package/lib/browser/frontend-application-module.js.map +1 -1
- package/lib/browser/i18n/i18n-frontend-module.d.ts.map +1 -1
- package/lib/browser/i18n/i18n-frontend-module.js +2 -0
- package/lib/browser/i18n/i18n-frontend-module.js.map +1 -1
- package/lib/browser/i18n/language-quick-pick-service.d.ts +17 -0
- package/lib/browser/i18n/language-quick-pick-service.d.ts.map +1 -0
- package/lib/browser/i18n/language-quick-pick-service.js +142 -0
- package/lib/browser/i18n/language-quick-pick-service.js.map +1 -0
- package/lib/browser/index.d.ts +1 -0
- package/lib/browser/index.d.ts.map +1 -1
- package/lib/browser/index.js +1 -0
- package/lib/browser/index.js.map +1 -1
- package/lib/browser/keybinding.d.ts.map +1 -1
- package/lib/browser/keybinding.js +2 -1
- package/lib/browser/keybinding.js.map +1 -1
- package/lib/browser/keybinding.spec.js +18 -21
- package/lib/browser/keybinding.spec.js.map +1 -1
- package/lib/browser/label-provider.d.ts +0 -12
- package/lib/browser/label-provider.d.ts.map +1 -1
- package/lib/browser/label-provider.js +1 -13
- package/lib/browser/label-provider.js.map +1 -1
- package/lib/browser/logger-frontend-module.d.ts.map +1 -1
- package/lib/browser/logger-frontend-module.js +8 -1
- package/lib/browser/logger-frontend-module.js.map +1 -1
- package/lib/browser/messaging/ws-connection-provider.d.ts +5 -4
- package/lib/browser/messaging/ws-connection-provider.d.ts.map +1 -1
- package/lib/browser/messaging/ws-connection-provider.js +30 -23
- package/lib/browser/messaging/ws-connection-provider.js.map +1 -1
- package/lib/browser/preferences/preference-contribution.d.ts +2 -19
- package/lib/browser/preferences/preference-contribution.d.ts.map +1 -1
- package/lib/browser/preferences/preference-contribution.js +1 -24
- package/lib/browser/preferences/preference-contribution.js.map +1 -1
- package/lib/browser/preferences/preference-proxy.d.ts +0 -4
- package/lib/browser/preferences/preference-proxy.d.ts.map +1 -1
- package/lib/browser/preferences/preference-proxy.js.map +1 -1
- package/lib/browser/preferences/preference-proxy.spec.js +3 -102
- package/lib/browser/preferences/preference-proxy.spec.js.map +1 -1
- package/lib/browser/preferences/preference-schema-provider.spec.js +4 -3
- package/lib/browser/preferences/preference-schema-provider.spec.js.map +1 -1
- package/lib/browser/preferences/preference-service.spec.js +1 -2
- package/lib/browser/preferences/preference-service.spec.js.map +1 -1
- package/lib/browser/preferences/preference-validation-service.d.ts +2 -2
- package/lib/browser/preferences/preference-validation-service.d.ts.map +1 -1
- package/lib/browser/preferences/preference-validation-service.spec.js.map +1 -1
- package/lib/browser/preloader.d.ts.map +1 -1
- package/lib/browser/preloader.js +7 -1
- package/lib/browser/preloader.js.map +1 -1
- package/lib/browser/progress-status-bar-item.d.ts +1 -1
- package/lib/browser/progress-status-bar-item.d.ts.map +1 -1
- package/lib/browser/quick-input/quick-command-service.d.ts.map +1 -1
- package/lib/browser/quick-input/quick-command-service.js +2 -2
- package/lib/browser/quick-input/quick-command-service.js.map +1 -1
- package/lib/browser/saveable.d.ts.map +1 -1
- package/lib/browser/saveable.js +5 -4
- package/lib/browser/saveable.js.map +1 -1
- package/lib/browser/shell/application-shell.d.ts +4 -0
- package/lib/browser/shell/application-shell.d.ts.map +1 -1
- package/lib/browser/shell/application-shell.js +42 -36
- package/lib/browser/shell/application-shell.js.map +1 -1
- package/lib/browser/shell/shell-layout-restorer.d.ts +2 -0
- package/lib/browser/shell/shell-layout-restorer.d.ts.map +1 -1
- package/lib/browser/shell/shell-layout-restorer.js +5 -1
- package/lib/browser/shell/shell-layout-restorer.js.map +1 -1
- package/lib/browser/shell/side-panel-handler.d.ts.map +1 -1
- package/lib/browser/shell/side-panel-handler.js +3 -2
- package/lib/browser/shell/side-panel-handler.js.map +1 -1
- package/lib/browser/shell/tab-bars.d.ts +4 -2
- package/lib/browser/shell/tab-bars.d.ts.map +1 -1
- package/lib/browser/shell/tab-bars.js +12 -4
- package/lib/browser/shell/tab-bars.js.map +1 -1
- package/lib/browser/source-tree/source-tree-widget.js +1 -1
- package/lib/browser/source-tree/source-tree-widget.js.map +1 -1
- package/lib/browser/source-tree/tree-source.d.ts +2 -1
- package/lib/browser/source-tree/tree-source.d.ts.map +1 -1
- package/lib/browser/source-tree/tree-source.js.map +1 -1
- package/lib/browser/styling-service.d.ts +26 -0
- package/lib/browser/styling-service.d.ts.map +1 -0
- package/lib/browser/styling-service.js +76 -0
- package/lib/browser/styling-service.js.map +1 -0
- package/lib/browser/theming.d.ts +4 -8
- package/lib/browser/theming.d.ts.map +1 -1
- package/lib/browser/theming.js +38 -53
- package/lib/browser/theming.js.map +1 -1
- package/lib/browser/tree/search-box.d.ts.map +1 -1
- package/lib/browser/tree/search-box.js +5 -4
- package/lib/browser/tree/search-box.js.map +1 -1
- package/lib/browser/tree/test/tree-test-container.d.ts.map +1 -1
- package/lib/browser/tree/test/tree-test-container.js +2 -0
- package/lib/browser/tree/test/tree-test-container.js.map +1 -1
- package/lib/browser/tree/tree-compression/compressed-tree-model.d.ts +1 -1
- package/lib/browser/tree/tree-compression/compressed-tree-model.d.ts.map +1 -1
- package/lib/browser/tree/tree-compression/compressed-tree-model.js +4 -2
- package/lib/browser/tree/tree-compression/compressed-tree-model.js.map +1 -1
- package/lib/browser/tree/tree-compression/compressed-tree-widget.d.ts.map +1 -1
- package/lib/browser/tree/tree-compression/compressed-tree-widget.js +4 -2
- package/lib/browser/tree/tree-compression/compressed-tree-widget.js.map +1 -1
- package/lib/browser/tree/tree-container.d.ts +2 -0
- package/lib/browser/tree/tree-container.d.ts.map +1 -1
- package/lib/browser/tree/tree-container.js +3 -0
- package/lib/browser/tree/tree-container.js.map +1 -1
- package/lib/browser/tree/tree-focus-service.d.ts +20 -0
- package/lib/browser/tree/tree-focus-service.d.ts.map +1 -0
- package/lib/browser/tree/tree-focus-service.js +62 -0
- package/lib/browser/tree/tree-focus-service.js.map +1 -0
- package/lib/browser/tree/tree-model.d.ts +11 -2
- package/lib/browser/tree/tree-model.d.ts.map +1 -1
- package/lib/browser/tree/tree-model.js +29 -8
- package/lib/browser/tree/tree-model.js.map +1 -1
- package/lib/browser/tree/tree-selection-impl.d.ts +4 -1
- package/lib/browser/tree/tree-selection-impl.d.ts.map +1 -1
- package/lib/browser/tree/tree-selection-impl.js +13 -2
- package/lib/browser/tree/tree-selection-impl.js.map +1 -1
- package/lib/browser/tree/tree-selection-state.d.ts +1 -0
- package/lib/browser/tree/tree-selection-state.d.ts.map +1 -1
- package/lib/browser/tree/tree-selection-state.js +8 -2
- package/lib/browser/tree/tree-selection-state.js.map +1 -1
- package/lib/browser/tree/tree-selection.d.ts +9 -0
- package/lib/browser/tree/tree-selection.d.ts.map +1 -1
- package/lib/browser/tree/tree-selection.js +3 -0
- package/lib/browser/tree/tree-selection.js.map +1 -1
- package/lib/browser/tree/tree-widget-selection.d.ts.map +1 -1
- package/lib/browser/tree/tree-widget-selection.js +9 -1
- package/lib/browser/tree/tree-widget-selection.js.map +1 -1
- package/lib/browser/tree/tree-widget.d.ts +14 -0
- package/lib/browser/tree/tree-widget.d.ts.map +1 -1
- package/lib/browser/tree/tree-widget.js +80 -40
- package/lib/browser/tree/tree-widget.js.map +1 -1
- package/lib/browser/tree/tree.d.ts +2 -1
- package/lib/browser/tree/tree.d.ts.map +1 -1
- package/lib/browser/tree/tree.js +12 -2
- package/lib/browser/tree/tree.js.map +1 -1
- package/lib/browser/view-container.d.ts +9 -4
- package/lib/browser/view-container.d.ts.map +1 -1
- package/lib/browser/view-container.js +36 -6
- package/lib/browser/view-container.js.map +1 -1
- package/lib/common/cancellation.d.ts +1 -0
- package/lib/common/cancellation.d.ts.map +1 -1
- package/lib/common/cancellation.js +8 -0
- package/lib/common/cancellation.js.map +1 -1
- package/lib/common/command.d.ts +1 -1
- package/lib/common/command.d.ts.map +1 -1
- package/lib/common/command.js +13 -16
- package/lib/common/command.js.map +1 -1
- package/lib/common/index.d.ts +1 -0
- package/lib/common/index.d.ts.map +1 -1
- package/lib/common/index.js +1 -0
- package/lib/common/index.js.map +1 -1
- package/lib/common/message-rpc/channel.d.ts +106 -0
- package/lib/common/message-rpc/channel.d.ts.map +1 -0
- package/lib/common/message-rpc/channel.js +195 -0
- package/lib/common/message-rpc/channel.js.map +1 -0
- package/lib/common/message-rpc/channel.spec.d.ts +9 -0
- package/lib/common/message-rpc/channel.spec.d.ts.map +1 -0
- package/lib/common/message-rpc/channel.spec.js +80 -0
- package/lib/common/message-rpc/channel.spec.js.map +1 -0
- package/lib/common/message-rpc/index.d.ts +4 -0
- package/lib/common/message-rpc/index.d.ts.map +1 -0
- package/lib/{node/messaging/logger.js → common/message-rpc/index.js} +6 -19
- package/lib/common/message-rpc/index.js.map +1 -0
- package/lib/common/message-rpc/message-buffer.d.ts +50 -0
- package/lib/common/message-rpc/message-buffer.d.ts.map +1 -0
- package/lib/common/message-rpc/message-buffer.js +56 -0
- package/lib/common/message-rpc/message-buffer.js.map +1 -0
- package/lib/common/message-rpc/rpc-message-encoder.d.ts +171 -0
- package/lib/common/message-rpc/rpc-message-encoder.d.ts.map +1 -0
- package/lib/common/message-rpc/rpc-message-encoder.js +409 -0
- package/lib/common/message-rpc/rpc-message-encoder.js.map +1 -0
- package/lib/common/message-rpc/rpc-message-encoder.spec.d.ts +2 -0
- package/lib/common/message-rpc/rpc-message-encoder.spec.d.ts.map +1 -0
- package/lib/common/message-rpc/rpc-message-encoder.spec.js +49 -0
- package/lib/common/message-rpc/rpc-message-encoder.spec.js.map +1 -0
- package/lib/common/message-rpc/rpc-protocol.d.ts +61 -0
- package/lib/common/message-rpc/rpc-protocol.d.ts.map +1 -0
- package/lib/common/message-rpc/rpc-protocol.js +183 -0
- package/lib/common/message-rpc/rpc-protocol.js.map +1 -0
- package/lib/common/message-rpc/uint8-array-message-buffer.d.ts +52 -0
- package/lib/common/message-rpc/uint8-array-message-buffer.d.ts.map +1 -0
- package/lib/common/message-rpc/uint8-array-message-buffer.js +169 -0
- package/lib/common/message-rpc/uint8-array-message-buffer.js.map +1 -0
- package/lib/common/message-rpc/uint8-array-message-buffer.spec.d.ts +2 -0
- package/lib/common/message-rpc/uint8-array-message-buffer.spec.d.ts.map +1 -0
- package/lib/common/message-rpc/uint8-array-message-buffer.spec.js +39 -0
- package/lib/common/message-rpc/uint8-array-message-buffer.spec.js.map +1 -0
- package/lib/common/messaging/abstract-connection-provider.d.ts +9 -8
- package/lib/common/messaging/abstract-connection-provider.d.ts.map +1 -1
- package/lib/common/messaging/abstract-connection-provider.js +20 -35
- package/lib/common/messaging/abstract-connection-provider.js.map +1 -1
- package/lib/common/messaging/connection-error-handler.d.ts +1 -2
- package/lib/common/messaging/connection-error-handler.d.ts.map +1 -1
- package/lib/common/messaging/connection-error-handler.js +1 -1
- package/lib/common/messaging/connection-error-handler.js.map +1 -1
- package/lib/common/messaging/handler.d.ts +2 -2
- package/lib/common/messaging/handler.d.ts.map +1 -1
- package/lib/common/messaging/proxy-factory.d.ts +13 -7
- package/lib/common/messaging/proxy-factory.d.ts.map +1 -1
- package/lib/common/messaging/proxy-factory.js +18 -13
- package/lib/common/messaging/proxy-factory.js.map +1 -1
- package/lib/common/messaging/proxy-factory.spec.js +4 -15
- package/lib/common/messaging/proxy-factory.spec.js.map +1 -1
- package/lib/common/messaging/web-socket-channel.d.ts +54 -48
- package/lib/common/messaging/web-socket-channel.d.ts.map +1 -1
- package/lib/common/messaging/web-socket-channel.js +41 -105
- package/lib/common/messaging/web-socket-channel.js.map +1 -1
- package/lib/common/nls.d.ts +2 -0
- package/lib/common/nls.d.ts.map +1 -1
- package/lib/common/nls.js +11 -0
- package/lib/common/nls.js.map +1 -1
- package/lib/common/preferences/preference-schema.d.ts +1 -5
- package/lib/common/preferences/preference-schema.d.ts.map +1 -1
- package/lib/common/preferences/preference-schema.js.map +1 -1
- package/lib/common/promise-util.d.ts +2 -1
- package/lib/common/promise-util.d.ts.map +1 -1
- package/lib/common/promise-util.js +8 -13
- package/lib/common/promise-util.js.map +1 -1
- package/lib/common/resource.d.ts +5 -0
- package/lib/common/resource.d.ts.map +1 -1
- package/lib/common/resource.js +28 -1
- package/lib/common/resource.js.map +1 -1
- package/lib/common/theme.d.ts +3 -2
- package/lib/common/theme.d.ts.map +1 -1
- package/lib/common/theme.js +5 -0
- package/lib/common/theme.js.map +1 -1
- package/lib/electron-browser/messaging/electron-ipc-connection-provider.d.ts +2 -2
- package/lib/electron-browser/messaging/electron-ipc-connection-provider.d.ts.map +1 -1
- package/lib/electron-browser/messaging/electron-ipc-connection-provider.js +18 -7
- package/lib/electron-browser/messaging/electron-ipc-connection-provider.js.map +1 -1
- package/lib/electron-browser/messaging/electron-ws-connection-provider.d.ts +2 -2
- package/lib/electron-browser/messaging/electron-ws-connection-provider.d.ts.map +1 -1
- package/lib/electron-browser/messaging/electron-ws-connection-provider.js +5 -7
- package/lib/electron-browser/messaging/electron-ws-connection-provider.js.map +1 -1
- package/lib/electron-main/event-utils.d.ts +1 -1
- package/lib/electron-main/messaging/electron-messaging-contribution.d.ts +37 -9
- package/lib/electron-main/messaging/electron-messaging-contribution.d.ts.map +1 -1
- package/lib/electron-main/messaging/electron-messaging-contribution.js +83 -68
- package/lib/electron-main/messaging/electron-messaging-contribution.js.map +1 -1
- package/lib/electron-main/messaging/electron-messaging-service.d.ts +2 -8
- package/lib/electron-main/messaging/electron-messaging-service.d.ts.map +1 -1
- package/lib/electron-main/messaging/electron-messaging-service.js.map +1 -1
- package/lib/node/messaging/binary-message-pipe.d.ts +45 -0
- package/lib/node/messaging/binary-message-pipe.d.ts.map +1 -0
- package/lib/node/messaging/binary-message-pipe.js +152 -0
- package/lib/node/messaging/binary-message-pipe.js.map +1 -0
- package/lib/node/messaging/ipc-bootstrap.js +2 -11
- package/lib/node/messaging/ipc-bootstrap.js.map +1 -1
- package/lib/node/messaging/ipc-channel.d.ts +26 -0
- package/lib/node/messaging/ipc-channel.d.ts.map +1 -0
- package/lib/node/messaging/ipc-channel.js +86 -0
- package/lib/node/messaging/ipc-channel.js.map +1 -0
- package/lib/node/messaging/ipc-connection-provider.d.ts +3 -5
- package/lib/node/messaging/ipc-connection-provider.d.ts.map +1 -1
- package/lib/node/messaging/ipc-connection-provider.js +14 -31
- package/lib/node/messaging/ipc-connection-provider.js.map +1 -1
- package/lib/node/messaging/ipc-protocol.d.ts +2 -2
- package/lib/node/messaging/ipc-protocol.d.ts.map +1 -1
- package/lib/node/messaging/messaging-contribution.d.ts +6 -9
- package/lib/node/messaging/messaging-contribution.d.ts.map +1 -1
- package/lib/node/messaging/messaging-contribution.js +23 -68
- package/lib/node/messaging/messaging-contribution.js.map +1 -1
- package/lib/node/messaging/messaging-service.d.ts +4 -23
- package/lib/node/messaging/messaging-service.d.ts.map +1 -1
- package/lib/node/messaging/messaging-service.js +1 -15
- package/lib/node/messaging/messaging-service.js.map +1 -1
- package/lib/node/messaging/test/test-web-socket-channel.d.ts +4 -2
- package/lib/node/messaging/test/test-web-socket-channel.d.ts.map +1 -1
- package/lib/node/messaging/test/test-web-socket-channel.js +25 -12
- package/lib/node/messaging/test/test-web-socket-channel.js.map +1 -1
- package/lib/node/request/proxy-cli-contribution.js +1 -1
- package/lib/node/request/proxy-cli-contribution.js.map +1 -1
- package/package.json +7 -10
- package/src/browser/color-application-contribution.ts +10 -17
- package/src/browser/color-registry.ts +0 -5
- package/src/browser/common-frontend-contribution.ts +26 -33
- package/src/browser/common-styling-participants.ts +307 -0
- package/src/browser/connection-status-service.spec.ts +1 -4
- package/src/browser/connection-status-service.ts +3 -3
- package/src/browser/context-menu-renderer.ts +13 -29
- package/src/browser/core-preferences.ts +6 -0
- package/src/browser/decoration-style.ts +6 -2
- package/src/browser/frontend-application-bindings.ts +1 -3
- package/src/browser/frontend-application-config-provider.ts +2 -0
- package/src/browser/frontend-application-module.ts +11 -4
- package/src/browser/i18n/i18n-frontend-module.ts +2 -0
- package/src/browser/i18n/language-quick-pick-service.ts +128 -0
- package/src/browser/index.ts +1 -0
- package/src/browser/keybinding.spec.ts +22 -27
- package/src/browser/keybinding.ts +2 -1
- package/src/browser/label-provider.ts +0 -13
- package/src/browser/logger-frontend-module.ts +8 -1
- package/src/browser/messaging/ws-connection-provider.ts +34 -25
- package/src/browser/preferences/preference-contribution.ts +3 -28
- package/src/browser/preferences/preference-proxy.spec.ts +3 -113
- package/src/browser/preferences/preference-proxy.ts +0 -4
- package/src/browser/preferences/preference-schema-provider.spec.ts +1 -4
- package/src/browser/preferences/preference-service.spec.ts +1 -5
- package/src/browser/preferences/preference-validation-service.spec.ts +2 -2
- package/src/browser/preferences/preference-validation-service.ts +2 -2
- package/src/browser/preloader.ts +9 -2
- package/src/browser/progress-status-bar-item.ts +1 -1
- package/src/browser/quick-input/quick-command-service.ts +3 -3
- package/src/browser/saveable.ts +5 -4
- package/src/browser/shell/application-shell.ts +42 -35
- package/src/browser/shell/shell-layout-restorer.ts +4 -6
- package/src/browser/shell/side-panel-handler.ts +3 -2
- package/src/browser/shell/tab-bars.ts +14 -4
- package/src/browser/source-tree/source-tree-widget.tsx +1 -1
- package/src/browser/source-tree/tree-source.ts +2 -1
- package/src/browser/style/breadcrumbs.css +0 -1
- package/src/browser/style/index.css +66 -29
- package/src/browser/style/menus.css +4 -2
- package/src/browser/style/select-component.css +2 -0
- package/src/browser/style/sidepanel.css +11 -25
- package/src/browser/style/status-bar.css +8 -17
- package/src/browser/style/tabs.css +0 -16
- package/src/browser/style/tooltip.css +3 -3
- package/src/browser/style/tree.css +27 -11
- package/src/browser/style/view-container.css +4 -0
- package/src/browser/styling-service.ts +76 -0
- package/src/browser/theming.ts +18 -45
- package/src/browser/tree/search-box.ts +5 -4
- package/src/browser/tree/test/tree-test-container.ts +2 -0
- package/src/browser/tree/tree-compression/compressed-tree-model.ts +8 -2
- package/src/browser/tree/tree-compression/compressed-tree-widget.tsx +4 -2
- package/src/browser/tree/tree-container.ts +4 -0
- package/src/browser/tree/tree-focus-service.ts +55 -0
- package/src/browser/tree/tree-model.ts +32 -8
- package/src/browser/tree/tree-selection-impl.ts +13 -4
- package/src/browser/tree/tree-selection-state.ts +7 -2
- package/src/browser/tree/tree-selection.ts +10 -0
- package/src/browser/tree/tree-widget-selection.ts +10 -1
- package/src/browser/tree/tree-widget.tsx +83 -43
- package/src/browser/tree/tree.ts +8 -2
- package/src/browser/view-container.ts +41 -4
- package/src/common/cancellation.ts +8 -0
- package/src/common/command.ts +14 -16
- package/src/common/index.ts +1 -0
- package/src/common/message-rpc/channel.spec.ts +88 -0
- package/src/common/message-rpc/channel.ts +260 -0
- package/src/{node/messaging/logger.ts → common/message-rpc/index.ts} +4 -23
- package/src/common/message-rpc/message-buffer.ts +99 -0
- package/src/common/message-rpc/rpc-message-encoder.spec.ts +55 -0
- package/src/common/message-rpc/rpc-message-encoder.ts +552 -0
- package/src/common/message-rpc/rpc-protocol.ts +217 -0
- package/src/common/message-rpc/uint8-array-message-buffer.spec.ts +41 -0
- package/src/common/message-rpc/uint8-array-message-buffer.ts +206 -0
- package/src/common/messaging/abstract-connection-provider.ts +28 -37
- package/src/common/messaging/connection-error-handler.ts +1 -2
- package/src/common/messaging/handler.ts +2 -2
- package/src/common/messaging/proxy-factory.spec.ts +4 -17
- package/src/common/messaging/proxy-factory.ts +27 -16
- package/src/common/messaging/web-socket-channel.ts +79 -135
- package/src/common/nls.ts +11 -0
- package/src/common/preferences/preference-schema.ts +1 -6
- package/src/common/promise-util.ts +13 -14
- package/src/common/resource.ts +29 -2
- package/src/common/theme.ts +6 -2
- package/src/electron-browser/messaging/electron-ipc-connection-provider.ts +21 -7
- package/src/electron-browser/messaging/electron-ws-connection-provider.ts +5 -8
- package/src/electron-main/messaging/electron-messaging-contribution.ts +87 -65
- package/src/electron-main/messaging/electron-messaging-service.ts +2 -8
- package/src/node/messaging/binary-message-pipe.ts +168 -0
- package/src/node/messaging/ipc-bootstrap.ts +3 -11
- package/src/node/messaging/ipc-channel.ts +97 -0
- package/src/node/messaging/ipc-connection-provider.ts +18 -35
- package/src/node/messaging/ipc-protocol.ts +2 -2
- package/src/node/messaging/messaging-contribution.ts +29 -74
- package/src/node/messaging/messaging-service.ts +4 -31
- package/src/node/messaging/test/test-web-socket-channel.ts +26 -17
- package/src/node/request/proxy-cli-contribution.ts +1 -1
- package/lib/browser/preferences/validated-preference-proxy.d.ts +0 -21
- package/lib/browser/preferences/validated-preference-proxy.d.ts.map +0 -1
- package/lib/browser/preferences/validated-preference-proxy.js +0 -118
- package/lib/browser/preferences/validated-preference-proxy.js.map +0 -1
- package/lib/node/messaging/logger.d.ts +0 -8
- package/lib/node/messaging/logger.d.ts.map +0 -1
- package/lib/node/messaging/logger.js.map +0 -1
- package/shared/vscode-ws-jsonrpc/index.d.ts +0 -1
- package/shared/vscode-ws-jsonrpc/index.js +0 -1
- package/src/browser/preferences/validated-preference-proxy.ts +0 -111
- package/src/browser/style/variables-bright.useable.css +0 -93
- package/src/browser/style/variables-dark.useable.css +0 -93
|
@@ -19,10 +19,7 @@ import { enableJSDOM } from '../browser/test/jsdom';
|
|
|
19
19
|
let disableJSDOM = enableJSDOM();
|
|
20
20
|
|
|
21
21
|
import { FrontendApplicationConfigProvider } from './frontend-application-config-provider';
|
|
22
|
-
|
|
23
|
-
FrontendApplicationConfigProvider.set({
|
|
24
|
-
...ApplicationProps.DEFAULT.frontend.config
|
|
25
|
-
});
|
|
22
|
+
FrontendApplicationConfigProvider.set({});
|
|
26
23
|
|
|
27
24
|
import { expect } from 'chai';
|
|
28
25
|
import {
|
|
@@ -20,7 +20,7 @@ import { Event, Emitter } from '../common/event';
|
|
|
20
20
|
import { DefaultFrontendApplicationContribution } from './frontend-application';
|
|
21
21
|
import { StatusBar, StatusBarAlignment } from './status-bar/status-bar';
|
|
22
22
|
import { WebSocketConnectionProvider } from './messaging/ws-connection-provider';
|
|
23
|
-
import { Disposable, DisposableCollection } from '../common';
|
|
23
|
+
import { Disposable, DisposableCollection, nls } from '../common';
|
|
24
24
|
|
|
25
25
|
/**
|
|
26
26
|
* Service for listening on backend connection changes.
|
|
@@ -205,8 +205,8 @@ export class ApplicationConnectionStatusContribution extends DefaultFrontendAppl
|
|
|
205
205
|
protected handleOffline(): void {
|
|
206
206
|
this.statusBar.setElement(this.statusbarId, {
|
|
207
207
|
alignment: StatusBarAlignment.LEFT,
|
|
208
|
-
text: 'Offline',
|
|
209
|
-
tooltip: 'Cannot connect to backend.',
|
|
208
|
+
text: nls.localize('theia/core/offline', 'Offline'),
|
|
209
|
+
tooltip: nls.localize('theia/localize/offlineTooltip', 'Cannot connect to backend.'),
|
|
210
210
|
priority: 5000
|
|
211
211
|
});
|
|
212
212
|
this.toDisposeOnOnline.push(Disposable.create(() => this.statusBar.removeElement(this.statusbarId)));
|
|
@@ -79,11 +79,8 @@ export abstract class ContextMenuRenderer {
|
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
-
render(options: RenderContextMenuOptions): ContextMenuAccess
|
|
83
|
-
|
|
84
|
-
render(menuPath: MenuPath, anchor: Anchor, onHide?: () => void): ContextMenuAccess;
|
|
85
|
-
render(menuPathOrOptions: MenuPath | RenderContextMenuOptions, anchor?: Anchor, onHide?: () => void): ContextMenuAccess {
|
|
86
|
-
const resolvedOptions = RenderContextMenuOptions.resolve(menuPathOrOptions, anchor, onHide);
|
|
82
|
+
render(options: RenderContextMenuOptions): ContextMenuAccess {
|
|
83
|
+
const resolvedOptions = this.resolve(options);
|
|
87
84
|
const access = this.doRender(resolvedOptions);
|
|
88
85
|
this.setCurrent(access);
|
|
89
86
|
return access;
|
|
@@ -91,6 +88,17 @@ export abstract class ContextMenuRenderer {
|
|
|
91
88
|
|
|
92
89
|
protected abstract doRender(options: RenderContextMenuOptions): ContextMenuAccess;
|
|
93
90
|
|
|
91
|
+
protected resolve(options: RenderContextMenuOptions): RenderContextMenuOptions {
|
|
92
|
+
const args: any[] = options.args ? options.args.slice() : [];
|
|
93
|
+
if (options.includeAnchorArg !== false) {
|
|
94
|
+
args.push(options.anchor);
|
|
95
|
+
}
|
|
96
|
+
return {
|
|
97
|
+
...options,
|
|
98
|
+
args
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
|
|
94
102
|
}
|
|
95
103
|
|
|
96
104
|
export interface RenderContextMenuOptions {
|
|
@@ -106,27 +114,3 @@ export interface RenderContextMenuOptions {
|
|
|
106
114
|
includeAnchorArg?: boolean;
|
|
107
115
|
onHide?: () => void;
|
|
108
116
|
}
|
|
109
|
-
export namespace RenderContextMenuOptions {
|
|
110
|
-
export function resolve(menuPathOrOptions: MenuPath | RenderContextMenuOptions, anchor?: Anchor, onHide?: () => void): RenderContextMenuOptions {
|
|
111
|
-
let menuPath: MenuPath;
|
|
112
|
-
let args: any[];
|
|
113
|
-
if (Array.isArray(menuPathOrOptions)) {
|
|
114
|
-
menuPath = menuPathOrOptions;
|
|
115
|
-
args = [anchor!];
|
|
116
|
-
} else {
|
|
117
|
-
menuPath = menuPathOrOptions.menuPath;
|
|
118
|
-
anchor = menuPathOrOptions.anchor;
|
|
119
|
-
onHide = menuPathOrOptions.onHide;
|
|
120
|
-
args = menuPathOrOptions.args ? menuPathOrOptions.args.slice() : [];
|
|
121
|
-
if (menuPathOrOptions.includeAnchorArg !== false) {
|
|
122
|
-
args.push(anchor);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
return {
|
|
126
|
-
menuPath,
|
|
127
|
-
anchor: anchor!,
|
|
128
|
-
onHide,
|
|
129
|
-
args
|
|
130
|
-
};
|
|
131
|
-
}
|
|
132
|
-
}
|
|
@@ -198,6 +198,11 @@ export const corePreferenceSchema: PreferenceSchema = {
|
|
|
198
198
|
'Controls the feedback area size in pixels of the dragging area in between views/editors. Set it to a larger value if needed.'
|
|
199
199
|
)
|
|
200
200
|
},
|
|
201
|
+
'workbench.tab.maximize': {
|
|
202
|
+
type: 'boolean',
|
|
203
|
+
default: false,
|
|
204
|
+
description: nls.localize('theia/core/tabMaximize', 'Controls whether to maximize tabs on double click.')
|
|
205
|
+
}
|
|
201
206
|
}
|
|
202
207
|
};
|
|
203
208
|
|
|
@@ -220,6 +225,7 @@ export interface CoreConfiguration {
|
|
|
220
225
|
'workbench.hover.delay': number;
|
|
221
226
|
'workbench.sash.hoverDelay': number;
|
|
222
227
|
'workbench.sash.size': number;
|
|
228
|
+
'workbench.tab.maximize': boolean;
|
|
223
229
|
}
|
|
224
230
|
|
|
225
231
|
export const CorePreferenceContribution = Symbol('CorePreferenceContribution');
|
|
@@ -16,14 +16,18 @@
|
|
|
16
16
|
|
|
17
17
|
export namespace DecorationStyle {
|
|
18
18
|
|
|
19
|
-
export function
|
|
19
|
+
export function createStyleElement(styleId: string, container: HTMLElement = document.head): HTMLStyleElement {
|
|
20
20
|
const style = document.createElement('style');
|
|
21
21
|
style.id = styleId;
|
|
22
22
|
style.type = 'text/css';
|
|
23
23
|
style.media = 'screen';
|
|
24
24
|
style.appendChild(document.createTextNode('')); // trick for webkit
|
|
25
25
|
container.appendChild(style);
|
|
26
|
-
return
|
|
26
|
+
return style;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export function createStyleSheet(styleId: string, container?: HTMLElement): CSSStyleSheet {
|
|
30
|
+
return <CSSStyleSheet>createStyleElement(styleId, container).sheet;
|
|
27
31
|
}
|
|
28
32
|
|
|
29
33
|
function getRuleIndex(selector: string, styleSheet: CSSStyleSheet): number {
|
|
@@ -25,7 +25,6 @@ import {
|
|
|
25
25
|
PreferenceService, PreferenceServiceImpl, PreferenceValidationService
|
|
26
26
|
} from './preferences';
|
|
27
27
|
import { InjectablePreferenceProxy, PreferenceProxyFactory, PreferenceProxySchema } from './preferences/injectable-preference-proxy';
|
|
28
|
-
import { ValidatedPreferenceProxy } from './preferences/validated-preference-proxy';
|
|
29
28
|
|
|
30
29
|
export function bindMessageService(bind: interfaces.Bind): interfaces.BindingWhenOnSyntax<MessageService> {
|
|
31
30
|
bind(MessageClient).toSelf().inSingletonScope();
|
|
@@ -47,12 +46,11 @@ export function bindPreferenceService(bind: interfaces.Bind): void {
|
|
|
47
46
|
bindPreferenceSchemaProvider(bind);
|
|
48
47
|
bind(PreferenceValidationService).toSelf().inSingletonScope();
|
|
49
48
|
bind(InjectablePreferenceProxy).toSelf();
|
|
50
|
-
bind(ValidatedPreferenceProxy).toSelf();
|
|
51
49
|
bind(PreferenceProxyFactory).toFactory(({ container }) => (schema: MaybePromise<PreferenceSchema>, options: PreferenceProxyOptions = {}) => {
|
|
52
50
|
const child = container.createChild();
|
|
53
51
|
child.bind(PreferenceProxyOptions).toConstantValue(options ?? {});
|
|
54
52
|
child.bind(PreferenceProxySchema).toConstantValue(schema);
|
|
55
|
-
const handler =
|
|
53
|
+
const handler = child.get(InjectablePreferenceProxy);
|
|
56
54
|
return new Proxy(Object.create(null), handler); // eslint-disable-line no-null/no-null
|
|
57
55
|
});
|
|
58
56
|
}
|
|
@@ -16,6 +16,8 @@
|
|
|
16
16
|
|
|
17
17
|
import { FrontendApplicationConfig, deepmerge } from '@theia/application-package/lib/application-props';
|
|
18
18
|
|
|
19
|
+
export const DEFAULT_BACKGROUND_COLOR_STORAGE_KEY = 'theme.background';
|
|
20
|
+
|
|
19
21
|
export class FrontendApplicationConfigProvider {
|
|
20
22
|
|
|
21
23
|
private static KEY = Symbol('FrontendApplicationConfigProvider');
|
|
@@ -126,11 +126,11 @@ import { UserWorkingDirectoryProvider } from './user-working-directory-provider'
|
|
|
126
126
|
import { TheiaDockPanel } from './shell/theia-dock-panel';
|
|
127
127
|
import { bindStatusBar } from './status-bar';
|
|
128
128
|
import { MarkdownRenderer, MarkdownRendererFactory, MarkdownRendererImpl } from './markdown-rendering/markdown-renderer';
|
|
129
|
+
import { StylingParticipant, StylingService } from './styling-service';
|
|
130
|
+
import { bindCommonStylingParticipants } from './common-styling-participants';
|
|
129
131
|
|
|
130
132
|
export { bindResourceProvider, bindMessageService, bindPreferenceService };
|
|
131
133
|
|
|
132
|
-
ColorApplicationContribution.initBackground();
|
|
133
|
-
|
|
134
134
|
export const frontendApplicationModule = new ContainerModule((bind, _unbind, _isBound, _rebind) => {
|
|
135
135
|
bind(NoneIconTheme).toSelf().inSingletonScope();
|
|
136
136
|
bind(LabelProviderContribution).toService(NoneIconTheme);
|
|
@@ -178,7 +178,8 @@ export const frontendApplicationModule = new ContainerModule((bind, _unbind, _is
|
|
|
178
178
|
const iconThemeService = container.get(IconThemeService);
|
|
179
179
|
const selectionService = container.get(SelectionService);
|
|
180
180
|
const commandService = container.get<CommandService>(CommandService);
|
|
181
|
-
|
|
181
|
+
const corePreferences = container.get<CorePreferences>(CorePreferences);
|
|
182
|
+
return new TabBarRenderer(contextMenuRenderer, tabBarDecoratorService, iconThemeService, selectionService, commandService, corePreferences);
|
|
182
183
|
});
|
|
183
184
|
bind(TheiaDockPanel.Factory).toFactory(({ container }) => options => {
|
|
184
185
|
const corePreferences = container.get<CorePreferences>(CorePreferences);
|
|
@@ -263,6 +264,8 @@ export const frontendApplicationModule = new ContainerModule((bind, _unbind, _is
|
|
|
263
264
|
bind(serviceIdentifier).toService(CommonFrontendContribution)
|
|
264
265
|
);
|
|
265
266
|
|
|
267
|
+
bindCommonStylingParticipants(bind);
|
|
268
|
+
|
|
266
269
|
bind(QuickCommandFrontendContribution).toSelf().inSingletonScope();
|
|
267
270
|
[CommandContribution, KeybindingContribution, MenuContribution].forEach(serviceIdentifier =>
|
|
268
271
|
bind(serviceIdentifier).toService(QuickCommandFrontendContribution)
|
|
@@ -338,7 +341,7 @@ export const frontendApplicationModule = new ContainerModule((bind, _unbind, _is
|
|
|
338
341
|
return connection.createProxy<EnvVariablesServer>(envVariablesPath);
|
|
339
342
|
}).inSingletonScope();
|
|
340
343
|
|
|
341
|
-
bind(ThemeService).
|
|
344
|
+
bind(ThemeService).toSelf().inSingletonScope();
|
|
342
345
|
|
|
343
346
|
bindCorePreferences(bind);
|
|
344
347
|
|
|
@@ -417,4 +420,8 @@ export const frontendApplicationModule = new ContainerModule((bind, _unbind, _is
|
|
|
417
420
|
|
|
418
421
|
bind(SaveResourceService).toSelf().inSingletonScope();
|
|
419
422
|
bind(UserWorkingDirectoryProvider).toSelf().inSingletonScope();
|
|
423
|
+
|
|
424
|
+
bind(StylingService).toSelf().inSingletonScope();
|
|
425
|
+
bindContributionProvider(bind, StylingParticipant);
|
|
426
|
+
bind(FrontendApplicationContribution).toService(StylingService);
|
|
420
427
|
});
|
|
@@ -17,9 +17,11 @@
|
|
|
17
17
|
import { ContainerModule } from 'inversify';
|
|
18
18
|
import { AsyncLocalizationProvider, localizationPath } from '../../common/i18n/localization';
|
|
19
19
|
import { WebSocketConnectionProvider } from '../messaging/ws-connection-provider';
|
|
20
|
+
import { LanguageQuickPickService } from './language-quick-pick-service';
|
|
20
21
|
|
|
21
22
|
export default new ContainerModule(bind => {
|
|
22
23
|
bind(AsyncLocalizationProvider).toDynamicValue(
|
|
23
24
|
ctx => ctx.container.get(WebSocketConnectionProvider).createProxy(localizationPath)
|
|
24
25
|
).inSingletonScope();
|
|
26
|
+
bind(LanguageQuickPickService).toSelf().inSingletonScope();
|
|
25
27
|
});
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2022 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 WITH Classpath-exception-2.0
|
|
15
|
+
// *****************************************************************************
|
|
16
|
+
|
|
17
|
+
import { inject, injectable } from 'inversify';
|
|
18
|
+
import { nls } from '../../common/nls';
|
|
19
|
+
import { AsyncLocalizationProvider, LanguageInfo } from '../../common/i18n/localization';
|
|
20
|
+
import { QuickInputService, QuickPickItem, QuickPickSeparator } from '../quick-input';
|
|
21
|
+
import { WindowService } from '../window/window-service';
|
|
22
|
+
|
|
23
|
+
export interface LanguageQuickPickItem extends QuickPickItem {
|
|
24
|
+
languageId: string
|
|
25
|
+
execute?(): Promise<void>
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
@injectable()
|
|
29
|
+
export class LanguageQuickPickService {
|
|
30
|
+
|
|
31
|
+
@inject(QuickInputService) protected readonly quickInputService: QuickInputService;
|
|
32
|
+
@inject(AsyncLocalizationProvider) protected readonly localizationProvider: AsyncLocalizationProvider;
|
|
33
|
+
@inject(WindowService) protected readonly windowService: WindowService;
|
|
34
|
+
|
|
35
|
+
async pickDisplayLanguage(): Promise<string | undefined> {
|
|
36
|
+
const quickInput = this.quickInputService.createQuickPick<LanguageQuickPickItem>();
|
|
37
|
+
const installedItems = await this.getInstalledLanguages();
|
|
38
|
+
const quickInputItems: (LanguageQuickPickItem | QuickPickSeparator)[] = [
|
|
39
|
+
{
|
|
40
|
+
type: 'separator',
|
|
41
|
+
label: nls.localize('theia/core/installedLanguages', 'Installed languages')
|
|
42
|
+
},
|
|
43
|
+
...installedItems
|
|
44
|
+
];
|
|
45
|
+
quickInput.items = quickInputItems;
|
|
46
|
+
quickInput.busy = true;
|
|
47
|
+
const selected = installedItems.find(item => nls.isSelectedLocale(item.languageId));
|
|
48
|
+
if (selected) {
|
|
49
|
+
quickInput.activeItems = [selected];
|
|
50
|
+
}
|
|
51
|
+
quickInput.placeholder = nls.localizeByDefault('Configure Display Language');
|
|
52
|
+
quickInput.show();
|
|
53
|
+
|
|
54
|
+
this.getAvailableLanguages().then(availableItems => {
|
|
55
|
+
if (availableItems.length > 0) {
|
|
56
|
+
quickInputItems.push({
|
|
57
|
+
type: 'separator',
|
|
58
|
+
label: nls.localize('theia/core/availableLanguages', 'Available languages')
|
|
59
|
+
});
|
|
60
|
+
const installed = new Set(installedItems.map(e => e.languageId));
|
|
61
|
+
for (const available of availableItems) {
|
|
62
|
+
// Exclude already installed languages
|
|
63
|
+
if (!installed.has(available.languageId)) {
|
|
64
|
+
quickInputItems.push(available);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
quickInput.items = quickInputItems;
|
|
68
|
+
}
|
|
69
|
+
}).finally(() => {
|
|
70
|
+
quickInput.busy = false;
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
return new Promise(resolve => {
|
|
74
|
+
quickInput.onDidAccept(async () => {
|
|
75
|
+
const selectedItem = quickInput.selectedItems[0];
|
|
76
|
+
if (selectedItem) {
|
|
77
|
+
// Some language quick pick items want to install additional languages
|
|
78
|
+
// We have to await that before returning the selected locale
|
|
79
|
+
await selectedItem.execute?.();
|
|
80
|
+
resolve(selectedItem.languageId);
|
|
81
|
+
} else {
|
|
82
|
+
resolve(undefined);
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
quickInput.onDidHide(() => {
|
|
86
|
+
resolve(undefined);
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
protected async getInstalledLanguages(): Promise<LanguageQuickPickItem[]> {
|
|
92
|
+
const languageInfos = await this.localizationProvider.getAvailableLanguages();
|
|
93
|
+
const items: LanguageQuickPickItem[] = [];
|
|
94
|
+
const en: LanguageInfo = {
|
|
95
|
+
languageId: 'en',
|
|
96
|
+
languageName: 'English',
|
|
97
|
+
localizedLanguageName: 'English'
|
|
98
|
+
};
|
|
99
|
+
languageInfos.push(en);
|
|
100
|
+
for (const language of languageInfos.filter(e => !!e.languageId)) {
|
|
101
|
+
items.push(this.createLanguageQuickPickItem(language));
|
|
102
|
+
}
|
|
103
|
+
return items;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
protected async getAvailableLanguages(): Promise<LanguageQuickPickItem[]> {
|
|
107
|
+
return [];
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
protected createLanguageQuickPickItem(language: LanguageInfo): LanguageQuickPickItem {
|
|
111
|
+
let label: string;
|
|
112
|
+
let description: string | undefined;
|
|
113
|
+
const languageName = language.localizedLanguageName || language.languageName;
|
|
114
|
+
const id = language.languageId;
|
|
115
|
+
const idLabel = id + (nls.isSelectedLocale(id) ? ` (${nls.localizeByDefault('Current')})` : '');
|
|
116
|
+
if (languageName) {
|
|
117
|
+
label = languageName;
|
|
118
|
+
description = idLabel;
|
|
119
|
+
} else {
|
|
120
|
+
label = idLabel;
|
|
121
|
+
}
|
|
122
|
+
return {
|
|
123
|
+
label,
|
|
124
|
+
description,
|
|
125
|
+
languageId: id
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
}
|
package/src/browser/index.ts
CHANGED
|
@@ -14,9 +14,12 @@
|
|
|
14
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
|
-
import { enableJSDOM } from '
|
|
17
|
+
import { enableJSDOM } from './test/jsdom';
|
|
18
18
|
let disableJSDOM = enableJSDOM();
|
|
19
19
|
|
|
20
|
+
import { FrontendApplicationConfigProvider } from './frontend-application-config-provider';
|
|
21
|
+
FrontendApplicationConfigProvider.set({});
|
|
22
|
+
|
|
20
23
|
import { Container, injectable, ContainerModule } from 'inversify';
|
|
21
24
|
import { bindContributionProvider } from '../common/contribution-provider';
|
|
22
25
|
import { KeyboardLayoutProvider, NativeKeyboardLayout, KeyboardLayoutChangeNotifier } from '../common/keyboard/keyboard-layout-provider';
|
|
@@ -36,10 +39,8 @@ import * as chai from 'chai';
|
|
|
36
39
|
import * as sinon from 'sinon';
|
|
37
40
|
import { Emitter, Event } from '../common/event';
|
|
38
41
|
import { bindPreferenceService } from './frontend-application-bindings';
|
|
39
|
-
import { FrontendApplicationConfigProvider } from './frontend-application-config-provider';
|
|
40
|
-
import { ApplicationProps } from '@theia/application-package/lib/';
|
|
41
|
-
import { bindStatusBar } from './status-bar';
|
|
42
42
|
import { MarkdownRenderer, MarkdownRendererFactory, MarkdownRendererImpl } from './markdown-rendering/markdown-renderer';
|
|
43
|
+
import { StatusBar } from './status-bar';
|
|
43
44
|
|
|
44
45
|
disableJSDOM();
|
|
45
46
|
|
|
@@ -51,7 +52,11 @@ let keybindingRegistry: KeybindingRegistry;
|
|
|
51
52
|
let commandRegistry: CommandRegistry;
|
|
52
53
|
let testContainer: Container;
|
|
53
54
|
|
|
55
|
+
let stub: sinon.SinonStub;
|
|
56
|
+
|
|
54
57
|
before(async () => {
|
|
58
|
+
disableJSDOM = enableJSDOM();
|
|
59
|
+
|
|
55
60
|
testContainer = new Container();
|
|
56
61
|
const module = new ContainerModule((bind, unbind, isBound, rebind) => {
|
|
57
62
|
|
|
@@ -84,7 +89,7 @@ before(async () => {
|
|
|
84
89
|
}
|
|
85
90
|
});
|
|
86
91
|
|
|
87
|
-
|
|
92
|
+
bind(StatusBar).toConstantValue({} as StatusBar);
|
|
88
93
|
bind(MarkdownRendererImpl).toSelf().inSingletonScope();
|
|
89
94
|
bind(MarkdownRenderer).toService(MarkdownRendererImpl);
|
|
90
95
|
bind(MarkdownRendererFactory).toFactory(({ container }) => container.get(MarkdownRenderer));
|
|
@@ -103,31 +108,21 @@ before(async () => {
|
|
|
103
108
|
|
|
104
109
|
});
|
|
105
110
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
before(() => {
|
|
111
|
-
disableJSDOM = enableJSDOM();
|
|
112
|
-
FrontendApplicationConfigProvider.set({
|
|
113
|
-
...ApplicationProps.DEFAULT.frontend.config,
|
|
114
|
-
'applicationName': 'test'
|
|
115
|
-
});
|
|
116
|
-
});
|
|
111
|
+
after(() => {
|
|
112
|
+
disableJSDOM();
|
|
113
|
+
});
|
|
117
114
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
115
|
+
beforeEach(async () => {
|
|
116
|
+
stub = sinon.stub(os, 'isOSX').value(false);
|
|
117
|
+
keybindingRegistry = testContainer.get<KeybindingRegistry>(KeybindingRegistry);
|
|
118
|
+
await keybindingRegistry.onStart();
|
|
119
|
+
});
|
|
121
120
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
await keybindingRegistry.onStart();
|
|
126
|
-
});
|
|
121
|
+
afterEach(() => {
|
|
122
|
+
stub.restore();
|
|
123
|
+
});
|
|
127
124
|
|
|
128
|
-
|
|
129
|
-
stub.restore();
|
|
130
|
-
});
|
|
125
|
+
describe('keybindings', () => {
|
|
131
126
|
|
|
132
127
|
it('should register the default keybindings', () => {
|
|
133
128
|
const keybinding = keybindingRegistry.getKeybindingsForCommand(TEST_COMMAND.id);
|
|
@@ -27,6 +27,7 @@ import { StatusBarAlignment, StatusBar } from './status-bar/status-bar';
|
|
|
27
27
|
import { ContextKeyService } from './context-key-service';
|
|
28
28
|
import { CorePreferences } from './core-preferences';
|
|
29
29
|
import * as common from '../common/keybinding';
|
|
30
|
+
import { nls } from '../common/nls';
|
|
30
31
|
|
|
31
32
|
export enum KeybindingScope {
|
|
32
33
|
DEFAULT,
|
|
@@ -559,7 +560,7 @@ export class KeybindingRegistry {
|
|
|
559
560
|
event.stopPropagation();
|
|
560
561
|
|
|
561
562
|
this.statusBar.setElement('keybinding-status', {
|
|
562
|
-
text: `(${this.acceleratorForSequence(this.keySequence, '+')})
|
|
563
|
+
text: nls.localize('theia/core/keybindingStatus', '{0} was pressed, waiting for more keys', `(${this.acceleratorForSequence(this.keySequence, '+')})`),
|
|
563
564
|
alignment: StatusBarAlignment.LEFT,
|
|
564
565
|
priority: 2
|
|
565
566
|
});
|
|
@@ -34,19 +34,6 @@ const DEFAULT_FOLDER_ICON = `${codicon('folder')} default-folder-icon`;
|
|
|
34
34
|
*/
|
|
35
35
|
const DEFAULT_FILE_ICON = `${codicon('file')} default-file-icon`;
|
|
36
36
|
|
|
37
|
-
/**
|
|
38
|
-
* Internal folder icon class for the default (File Icons) theme.
|
|
39
|
-
*
|
|
40
|
-
* @deprecated Use `LabelProvider.folderIcon` to get a folder icon class for the current icon theme.
|
|
41
|
-
*/
|
|
42
|
-
export const FOLDER_ICON = DEFAULT_FOLDER_ICON;
|
|
43
|
-
/**
|
|
44
|
-
* Internal file icon class for the default (File Icons) theme.
|
|
45
|
-
*
|
|
46
|
-
* @deprecated Use `LabelProvider.fileIcon` to get a file icon class for the current icon theme.
|
|
47
|
-
*/
|
|
48
|
-
export const FILE_ICON = DEFAULT_FILE_ICON;
|
|
49
|
-
|
|
50
37
|
export const LabelProviderContribution = Symbol('LabelProviderContribution');
|
|
51
38
|
/**
|
|
52
39
|
* A {@link LabelProviderContribution} determines how specific elements/nodes are displayed in the workbench.
|
|
@@ -20,6 +20,7 @@ import { ILogger, Logger, LoggerFactory, setRootLogger, LoggerName, rootLoggerNa
|
|
|
20
20
|
import { LoggerWatcher } from '../common/logger-watcher';
|
|
21
21
|
import { WebSocketConnectionProvider } from './messaging';
|
|
22
22
|
import { FrontendApplicationContribution } from './frontend-application';
|
|
23
|
+
import { EncodingError } from '../common/message-rpc/rpc-message-encoder';
|
|
23
24
|
|
|
24
25
|
export const loggerFrontendModule = new ContainerModule(bind => {
|
|
25
26
|
bind(FrontendApplicationContribution).toDynamicValue(ctx => ({
|
|
@@ -39,7 +40,13 @@ export const loggerFrontendModule = new ContainerModule(bind => {
|
|
|
39
40
|
if (property === 'log') {
|
|
40
41
|
return (name, logLevel, message, params) => {
|
|
41
42
|
ConsoleLogger.log(name, logLevel, message, params);
|
|
42
|
-
return target.log(name, logLevel, message, params)
|
|
43
|
+
return target.log(name, logLevel, message, params).catch(err => {
|
|
44
|
+
if (err instanceof EncodingError) {
|
|
45
|
+
// In case of an EncodingError no RPC call is sent to the backend `ILoggerServer`. Nevertheless, we want to continue normally.
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
throw err;
|
|
49
|
+
});
|
|
43
50
|
};
|
|
44
51
|
}
|
|
45
52
|
return target[property];
|
|
@@ -15,11 +15,11 @@
|
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
17
|
import { injectable, interfaces, decorate, unmanaged } from 'inversify';
|
|
18
|
-
import { JsonRpcProxyFactory, JsonRpcProxy, Emitter, Event } from '../../common';
|
|
19
|
-
import { WebSocketChannel } from '../../common/messaging/web-socket-channel';
|
|
18
|
+
import { JsonRpcProxyFactory, JsonRpcProxy, Emitter, Event, Channel } from '../../common';
|
|
20
19
|
import { Endpoint } from '../endpoint';
|
|
21
20
|
import { AbstractConnectionProvider } from '../../common/messaging/abstract-connection-provider';
|
|
22
21
|
import { io, Socket } from 'socket.io-client';
|
|
22
|
+
import { IWebSocket, WebSocketChannel } from '../../common/messaging/web-socket-channel';
|
|
23
23
|
|
|
24
24
|
decorate(injectable(), JsonRpcProxyFactory);
|
|
25
25
|
decorate(unmanaged(), JsonRpcProxyFactory, 0);
|
|
@@ -53,26 +53,42 @@ export class WebSocketConnectionProvider extends AbstractConnectionProvider<WebS
|
|
|
53
53
|
constructor() {
|
|
54
54
|
super();
|
|
55
55
|
const url = this.createWebSocketUrl(WebSocketChannel.wsPath);
|
|
56
|
-
|
|
57
|
-
socket.on('connect', () => {
|
|
58
|
-
this.
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
channel.close(undefined, reason);
|
|
56
|
+
this.socket = this.createWebSocket(url);
|
|
57
|
+
this.socket.on('connect', () => {
|
|
58
|
+
this.initializeMultiplexer();
|
|
59
|
+
if (this.reconnectChannelOpeners.length > 0) {
|
|
60
|
+
this.reconnectChannelOpeners.forEach(opener => opener());
|
|
61
|
+
this.reconnectChannelOpeners = [];
|
|
63
62
|
}
|
|
64
|
-
this.fireSocketDidClose();
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
this.handleIncomingRawMessage(data);
|
|
63
|
+
this.socket.on('disconnect', () => this.fireSocketDidClose());
|
|
64
|
+
this.socket.on('message', () => this.onIncomingMessageActivityEmitter.fire(undefined));
|
|
65
|
+
this.fireSocketDidOpen();
|
|
68
66
|
});
|
|
69
|
-
socket.connect();
|
|
70
|
-
this.socket = socket;
|
|
67
|
+
this.socket.connect();
|
|
71
68
|
}
|
|
72
69
|
|
|
73
|
-
|
|
70
|
+
protected createMainChannel(): Channel {
|
|
71
|
+
return new WebSocketChannel(this.toIWebSocket(this.socket));
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
protected toIWebSocket(socket: Socket): IWebSocket {
|
|
75
|
+
return {
|
|
76
|
+
close: () => {
|
|
77
|
+
socket.removeAllListeners('disconnect');
|
|
78
|
+
socket.removeAllListeners('error');
|
|
79
|
+
socket.removeAllListeners('message');
|
|
80
|
+
},
|
|
81
|
+
isConnected: () => socket.connected,
|
|
82
|
+
onClose: cb => socket.on('disconnect', reason => cb(reason)),
|
|
83
|
+
onError: cb => socket.on('error', reason => cb(reason)),
|
|
84
|
+
onMessage: cb => socket.on('message', data => cb(data)),
|
|
85
|
+
send: message => socket.emit('message', message)
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
override async openChannel(path: string, handler: (channel: Channel) => void, options?: WebSocketOptions): Promise<void> {
|
|
74
90
|
if (this.socket.connected) {
|
|
75
|
-
super.openChannel(path, handler, options);
|
|
91
|
+
return super.openChannel(path, handler, options);
|
|
76
92
|
} else {
|
|
77
93
|
const openChannel = () => {
|
|
78
94
|
this.socket.off('connect', openChannel);
|
|
@@ -82,14 +98,6 @@ export class WebSocketConnectionProvider extends AbstractConnectionProvider<WebS
|
|
|
82
98
|
}
|
|
83
99
|
}
|
|
84
100
|
|
|
85
|
-
protected createChannel(id: number): WebSocketChannel {
|
|
86
|
-
return new WebSocketChannel(id, content => {
|
|
87
|
-
if (this.socket.connected) {
|
|
88
|
-
this.socket.send(content);
|
|
89
|
-
}
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
|
|
93
101
|
/**
|
|
94
102
|
* @param path The handler to reach in the backend.
|
|
95
103
|
*/
|
|
@@ -143,3 +151,4 @@ export class WebSocketConnectionProvider extends AbstractConnectionProvider<WebS
|
|
|
143
151
|
this.onSocketDidCloseEmitter.fire(undefined);
|
|
144
152
|
}
|
|
145
153
|
}
|
|
154
|
+
|
|
@@ -20,21 +20,16 @@ import { ContributionProvider, bindContributionProvider, Emitter, Event, Disposa
|
|
|
20
20
|
import { PreferenceScope } from './preference-scope';
|
|
21
21
|
import { PreferenceProvider, PreferenceProviderDataChange } from './preference-provider';
|
|
22
22
|
import {
|
|
23
|
-
PreferenceSchema, PreferenceSchemaProperties, PreferenceDataSchema, PreferenceItem, PreferenceSchemaProperty, PreferenceDataProperty
|
|
23
|
+
PreferenceSchema, PreferenceSchemaProperties, PreferenceDataSchema, PreferenceItem, PreferenceSchemaProperty, PreferenceDataProperty
|
|
24
24
|
} from '../../common/preferences/preference-schema';
|
|
25
25
|
import { FrontendApplicationConfigProvider } from '../frontend-application-config-provider';
|
|
26
26
|
import { FrontendApplicationConfig } from '@theia/application-package/lib/application-props';
|
|
27
27
|
import { bindPreferenceConfigurations, PreferenceConfigurations } from './preference-configurations';
|
|
28
|
-
export { PreferenceSchema, PreferenceSchemaProperties, PreferenceDataSchema, PreferenceItem, PreferenceSchemaProperty, PreferenceDataProperty
|
|
28
|
+
export { PreferenceSchema, PreferenceSchemaProperties, PreferenceDataSchema, PreferenceItem, PreferenceSchemaProperty, PreferenceDataProperty };
|
|
29
29
|
import { Mutable } from '../../common/types';
|
|
30
|
-
import {
|
|
30
|
+
import { PreferenceLanguageOverrideService } from './preference-language-override-service';
|
|
31
31
|
import { JSONValue } from '@phosphor/coreutils';
|
|
32
32
|
|
|
33
|
-
/**
|
|
34
|
-
* @deprecated since 1.13.0 import from @theia/core/lib/browser/preferences/preference-language-override-service.
|
|
35
|
-
*/
|
|
36
|
-
export { OVERRIDE_PROPERTY_PATTERN } from './preference-language-override-service';
|
|
37
|
-
|
|
38
33
|
/* eslint-disable guard-for-in, @typescript-eslint/no-explicit-any */
|
|
39
34
|
|
|
40
35
|
export const PreferenceContribution = Symbol('PreferenceContribution');
|
|
@@ -400,24 +395,4 @@ export class PreferenceSchemaProvider extends PreferenceProvider {
|
|
|
400
395
|
}
|
|
401
396
|
}
|
|
402
397
|
|
|
403
|
-
/**
|
|
404
|
-
* @deprecated since 1.13.0 use `PreferenceLanguageOverrideService.overridePreferenceName`
|
|
405
|
-
*/
|
|
406
|
-
overridePreferenceName(override: OverridePreferenceName): string {
|
|
407
|
-
return this.preferenceOverrideService.overridePreferenceName(override);
|
|
408
|
-
}
|
|
409
|
-
|
|
410
|
-
/**
|
|
411
|
-
* @deprecated since 1.13.0 use `PreferenceLanguageOverrideService.testOverrideValue`
|
|
412
|
-
*/
|
|
413
|
-
testOverrideValue(name: string, value: any): value is PreferenceSchemaProperties {
|
|
414
|
-
return this.preferenceOverrideService.testOverrideValue(name, value);
|
|
415
|
-
}
|
|
416
|
-
|
|
417
|
-
/**
|
|
418
|
-
* @deprecated since 1.13.0 use `PreferenceLanguageOverrideService.overriddenPreferenceName`
|
|
419
|
-
*/
|
|
420
|
-
overriddenPreferenceName(name: string): OverridePreferenceName | undefined {
|
|
421
|
-
return this.preferenceOverrideService.overriddenPreferenceName(name);
|
|
422
|
-
}
|
|
423
398
|
}
|