@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
|
@@ -21,13 +21,14 @@ import { injectable, unmanaged } from 'inversify';
|
|
|
21
21
|
import { Emitter, Event } from '../../common/event';
|
|
22
22
|
import { MaybePromise } from '../../common/types';
|
|
23
23
|
import { Disposable, DisposableCollection } from '../../common/disposable';
|
|
24
|
+
import { TreeWidget } from '../tree';
|
|
24
25
|
|
|
25
26
|
export interface TreeElement {
|
|
26
27
|
/** default: parent id + position among siblings */
|
|
27
28
|
readonly id?: number | string | undefined
|
|
28
29
|
/** default: true */
|
|
29
30
|
readonly visible?: boolean
|
|
30
|
-
render(): ReactNode
|
|
31
|
+
render(host: TreeWidget): ReactNode
|
|
31
32
|
open?(): MaybePromise<any>
|
|
32
33
|
}
|
|
33
34
|
|
|
@@ -21,6 +21,56 @@
|
|
|
21
21
|
| General
|
|
22
22
|
|----------------------------------------------------------------------------*/
|
|
23
23
|
|
|
24
|
+
:root {
|
|
25
|
+
|
|
26
|
+
/* Borders: Width and color (dark to bright) */
|
|
27
|
+
|
|
28
|
+
--theia-border-width: 1px;
|
|
29
|
+
--theia-panel-border-width: 1px;
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
/* UI fonts: Family, size and color (bright to dark)
|
|
33
|
+
---------------------------------------------------
|
|
34
|
+
The UI font CSS variables are used for the typography all of the Theia
|
|
35
|
+
user interface elements that are not directly user-generated content.
|
|
36
|
+
*/
|
|
37
|
+
|
|
38
|
+
--theia-ui-font-scale-factor: 1.2;
|
|
39
|
+
--theia-ui-font-size0: calc(var(--theia-ui-font-size1) / var(--theia-ui-font-scale-factor));
|
|
40
|
+
--theia-ui-font-size1: 13px; /* Base font size */
|
|
41
|
+
--theia-ui-font-size2: calc(var(--theia-ui-font-size1) * var(--theia-ui-font-scale-factor));
|
|
42
|
+
--theia-ui-font-size3: calc(var(--theia-ui-font-size2) * var(--theia-ui-font-scale-factor));
|
|
43
|
+
--theia-ui-icon-font-size: 14px; /* Ensures px perfect FontAwesome icons */
|
|
44
|
+
--theia-ui-font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
|
45
|
+
|
|
46
|
+
/* Content fonts: Family, size and color (bright to dark)
|
|
47
|
+
Content font variables are used for typography of user-generated content.
|
|
48
|
+
*/
|
|
49
|
+
|
|
50
|
+
--theia-content-font-size: 13px;
|
|
51
|
+
--theia-content-line-height: 22px;
|
|
52
|
+
|
|
53
|
+
--theia-code-font-size: 13px;
|
|
54
|
+
--theia-code-line-height: 17px;
|
|
55
|
+
--theia-code-padding: 5px;
|
|
56
|
+
--theia-code-font-family: Menlo, Monaco, Consolas, "Droid Sans Mono", "Courier New", monospace, "Droid Sans Fallback";
|
|
57
|
+
--theia-monospace-font-family: monospace;
|
|
58
|
+
--theia-ui-padding: 6px;
|
|
59
|
+
|
|
60
|
+
/* Icons */
|
|
61
|
+
--theia-icon-size: 16px;
|
|
62
|
+
|
|
63
|
+
/* Scrollbars */
|
|
64
|
+
--theia-scrollbar-width: 10px;
|
|
65
|
+
--theia-scrollbar-rail-width: 10px;
|
|
66
|
+
|
|
67
|
+
/* Statusbar */
|
|
68
|
+
--theia-statusBar-font-size: 12px;
|
|
69
|
+
|
|
70
|
+
/* Opacity for disabled mod */
|
|
71
|
+
--theia-mod-disabled-opacity: 0.4;
|
|
72
|
+
}
|
|
73
|
+
|
|
24
74
|
body {
|
|
25
75
|
margin: 0;
|
|
26
76
|
padding: 0;
|
|
@@ -48,8 +98,10 @@ code {
|
|
|
48
98
|
}
|
|
49
99
|
|
|
50
100
|
blockquote {
|
|
51
|
-
|
|
52
|
-
|
|
101
|
+
margin: 0 7px 0 5px;
|
|
102
|
+
padding: 0px 16px 0px 10px;
|
|
103
|
+
background: var(--theia-textBlockQuote-background);
|
|
104
|
+
border-left: 5px solid var(--theia-textBlockQuote-border);
|
|
53
105
|
}
|
|
54
106
|
|
|
55
107
|
.theia-input {
|
|
@@ -173,12 +225,7 @@ blockquote {
|
|
|
173
225
|
}
|
|
174
226
|
|
|
175
227
|
::selection {
|
|
176
|
-
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
.p-Widget:focus {
|
|
180
|
-
border: none;
|
|
181
|
-
outline: none;
|
|
228
|
+
background: var(--theia-selection-background);
|
|
182
229
|
}
|
|
183
230
|
|
|
184
231
|
.action-label {
|
|
@@ -188,22 +235,17 @@ blockquote {
|
|
|
188
235
|
}
|
|
189
236
|
|
|
190
237
|
.action-label:hover {
|
|
191
|
-
|
|
238
|
+
background-color: var(--theia-toolbar-hoverBackground);
|
|
192
239
|
}
|
|
193
240
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
margin-left: calc(var(--theia-ui-padding)*2);
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
.theia-button:hover {
|
|
206
|
-
background-color: var(--theia-button-hoverBackground);
|
|
241
|
+
.theia-button {
|
|
242
|
+
border: none;
|
|
243
|
+
color: var(--theia-button-foreground);
|
|
244
|
+
min-width: 65px;
|
|
245
|
+
outline: none;
|
|
246
|
+
cursor: pointer;
|
|
247
|
+
padding: 4px 9px;
|
|
248
|
+
margin-left: calc(var(--theia-ui-padding)*2);
|
|
207
249
|
}
|
|
208
250
|
|
|
209
251
|
.theia-button:focus {
|
|
@@ -211,16 +253,11 @@ button.theia-button, .theia-button {
|
|
|
211
253
|
outline-offset: 1px;
|
|
212
254
|
}
|
|
213
255
|
|
|
214
|
-
|
|
256
|
+
.theia-button.secondary {
|
|
215
257
|
color: var(--theia-secondaryButton-foreground);
|
|
216
|
-
background-color: var(--theia-secondaryButton-background);
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
button.secondary:hover, .theia-button.secondary:hover {
|
|
220
|
-
background-color: var(--theia-secondaryButton-hoverBackground);
|
|
221
258
|
}
|
|
222
259
|
|
|
223
|
-
|
|
260
|
+
.theia-button[disabled] {
|
|
224
261
|
opacity: 0.6;
|
|
225
262
|
color: var(--theia-button-disabledForeground);
|
|
226
263
|
background-color: var(--theia-button-disabledBackground);
|
|
@@ -44,8 +44,6 @@
|
|
|
44
44
|
|
|
45
45
|
.p-MenuBar-item {
|
|
46
46
|
padding: 0px 8px;
|
|
47
|
-
border-left: var(--theia-border-width) solid var(--theia-menu-border);
|
|
48
|
-
border-right: var(--theia-border-width) solid var(--theia-menu-border);
|
|
49
47
|
line-height: var(--theia-private-menubar-height);
|
|
50
48
|
}
|
|
51
49
|
|
|
@@ -115,6 +113,10 @@
|
|
|
115
113
|
border: 1px solid var(--theia-menu-border);
|
|
116
114
|
}
|
|
117
115
|
|
|
116
|
+
.p-Menu:focus {
|
|
117
|
+
outline: none;
|
|
118
|
+
}
|
|
119
|
+
|
|
118
120
|
.p-Menu-item {
|
|
119
121
|
min-height: var(--theia-private-menu-item-height);
|
|
120
122
|
max-height: var(--theia-private-menu-item-height);
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
.theia-select-component {
|
|
18
18
|
background-color: var(--theia-dropdown-background);
|
|
19
|
+
cursor: pointer;
|
|
19
20
|
outline: var(--theia-dropdown-border) solid 1px;
|
|
20
21
|
outline-offset: -1px;
|
|
21
22
|
min-height: 23px;
|
|
@@ -83,6 +84,7 @@
|
|
|
83
84
|
|
|
84
85
|
.theia-select-component-dropdown .theia-select-component-option.selected {
|
|
85
86
|
color: var(--theia-list-activeSelectionForeground);
|
|
87
|
+
cursor: pointer;
|
|
86
88
|
background: var(--theia-list-activeSelectionBackground);
|
|
87
89
|
outline: var(--theia-focusBorder) solid 1px;
|
|
88
90
|
outline-offset: -1px;
|
|
@@ -51,29 +51,13 @@
|
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
.p-TabBar.theia-app-sides .p-TabBar-tab {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
.p-TabBar.theia-app-left .p-TabBar-tab {
|
|
64
|
-
border-left: var(--theia-panel-border-width) solid transparent;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
.p-TabBar.theia-app-left.theia-app-sides {
|
|
68
|
-
border-right: var(--theia-panel-border-width) solid var(--theia-activityBar-border);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
.p-TabBar.theia-app-right .p-TabBar-tab {
|
|
72
|
-
border-right: var(--theia-panel-border-width) solid transparent;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
.p-Widget.p-TabBar.theia-app-right.theia-app-sides {
|
|
76
|
-
border-left: var(--theia-panel-border-width) solid var(--theia-activityBar-border);
|
|
54
|
+
position: relative;
|
|
55
|
+
background: var(--theia-activityBar-background);
|
|
56
|
+
flex-direction: column;
|
|
57
|
+
justify-content: center;
|
|
58
|
+
align-items: center;
|
|
59
|
+
min-height: var(--theia-private-sidebar-tab-height);
|
|
60
|
+
cursor: pointer;
|
|
77
61
|
}
|
|
78
62
|
|
|
79
63
|
.p-TabBar.theia-app-sides .p-TabBar-tab.p-mod-current,
|
|
@@ -86,13 +70,15 @@
|
|
|
86
70
|
}
|
|
87
71
|
|
|
88
72
|
.p-TabBar.theia-app-left .p-TabBar-tab.p-mod-current {
|
|
89
|
-
border-left: var(--theia-panel-border-width) solid var(--theia-activityBar-activeBorder);
|
|
90
73
|
border-top-color: transparent;
|
|
74
|
+
box-shadow: 2px 0 0 var(--theia-activityBar-activeBorder) inset;
|
|
75
|
+
|
|
91
76
|
}
|
|
92
77
|
|
|
93
78
|
.p-TabBar.theia-app-right .p-TabBar-tab.p-mod-current {
|
|
94
|
-
border-right: var(--theia-panel-border-width) solid var(--theia-activityBar-activeBorder);
|
|
95
79
|
border-top-color: transparent;
|
|
80
|
+
box-shadow: -2px 0 0 var(--theia-activityBar-activeBorder) inset;
|
|
81
|
+
|
|
96
82
|
}
|
|
97
83
|
|
|
98
84
|
.p-TabBar.theia-app-sides .p-TabBar-tabLabel,
|
|
@@ -68,15 +68,6 @@ body.theia-no-open-workspace #theia-statusBar {
|
|
|
68
68
|
margin-right: calc(var(--theia-ui-padding)/2);
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
-
#theia-statusBar .area .element.hasCommand:hover {
|
|
72
|
-
background-color: var(--theia-statusBarItem-hoverBackground);
|
|
73
|
-
cursor: pointer;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
#theia-statusBar .area .element.hasCommand:active {
|
|
77
|
-
background-color: var(--theia-statusBarItem-activeBackground);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
71
|
.theia-mod-offline #theia-statusBar {
|
|
81
72
|
background-color: var(--theia-statusBar-offlineBackground) !important;
|
|
82
73
|
}
|
|
@@ -85,14 +76,6 @@ body.theia-no-open-workspace #theia-statusBar {
|
|
|
85
76
|
color: var(--theia-statusBar-offlineForeground) !important;
|
|
86
77
|
}
|
|
87
78
|
|
|
88
|
-
.theia-mod-offline #theia-statusBar .area .element.hasCommand:hover {
|
|
89
|
-
background-color: var(--theia-statusBarItem-offlineHoverBackground) !important;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
.theia-mod-offline #theia-statusBar .area .element.hasCommand:active {
|
|
93
|
-
background-color: var(--theia-statusBarItem-offlineActiveBackground) !important;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
79
|
#theia-statusBar .area.left .element {
|
|
97
80
|
margin-right: var(--theia-ui-padding);
|
|
98
81
|
}
|
|
@@ -114,6 +97,14 @@ body.theia-no-open-workspace #theia-statusBar {
|
|
|
114
97
|
margin-left: calc(-1 * var(--theia-ui-padding));
|
|
115
98
|
}
|
|
116
99
|
|
|
100
|
+
#theia-statusBar .area .element.hasCommand:hover {
|
|
101
|
+
cursor: pointer;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
#theia-statusBar .area .element.hasCommand:active {
|
|
105
|
+
cursor: pointer;
|
|
106
|
+
}
|
|
107
|
+
|
|
117
108
|
|
|
118
109
|
#theia-statusBar .element {
|
|
119
110
|
/* https://css-tricks.com/os-specific-fonts-css/#article-header-id-0 */
|
|
@@ -84,22 +84,6 @@
|
|
|
84
84
|
color: var(--theia-tab-inactiveForeground);
|
|
85
85
|
}
|
|
86
86
|
|
|
87
|
-
#theia-main-content-panel .p-TabBar .p-TabBar-tab:hover {
|
|
88
|
-
background: var(--theia-tab-hoverBackground);
|
|
89
|
-
box-shadow: 0 1px 0 var(--theia-tab-hoverBorder) inset;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
#theia-main-content-panel .p-TabBar:not(.theia-tabBar-active) .p-TabBar-tab:hover {
|
|
93
|
-
background: var(--theia-tab-unfocusedHoverBackground);
|
|
94
|
-
box-shadow: 0 1px 0 var(--theia-tab-unfocusedHoverBorder) inset;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
#theia-main-content-panel .p-TabBar .p-TabBar-tab.p-mod-current {
|
|
98
|
-
background: var(--theia-tab-activeBackground);
|
|
99
|
-
color: var(--theia-tab-activeForeground);
|
|
100
|
-
box-shadow: 0 1px 0 var(--theia-tab-activeBorderTop) inset, 0 -1px 0 var(--theia-tab-activeBorder) inset;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
87
|
#theia-main-content-panel .p-TabBar:not(.theia-tabBar-active) .p-TabBar-tab {
|
|
104
88
|
color: var(--theia-tab-unfocusedInactiveForeground);
|
|
105
89
|
}
|
|
@@ -15,10 +15,10 @@
|
|
|
15
15
|
********************************************************************************/
|
|
16
16
|
|
|
17
17
|
.theia-tooltip {
|
|
18
|
-
color: var(--theia-
|
|
19
|
-
background: var(--theia-
|
|
18
|
+
color: var(--theia-editorHoverWidget-foreground) !important;
|
|
19
|
+
background: var(--theia-editorHoverWidget-background) !important;
|
|
20
20
|
border: 1px solid !important;
|
|
21
|
-
border-color: var(--theia-
|
|
21
|
+
border-color: var(--theia-editorHoverWidget-border) !important;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
/* Hide tooltip arrow */
|
|
@@ -27,7 +27,16 @@
|
|
|
27
27
|
position: relative;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
.theia-Tree:focus .theia-TreeContainer.empty
|
|
30
|
+
.theia-Tree:focus .theia-TreeContainer.empty::before,
|
|
31
|
+
.theia-Tree:focus .theia-TreeContainer.focused::before {
|
|
32
|
+
position: absolute;
|
|
33
|
+
top: 0;
|
|
34
|
+
left: 0;
|
|
35
|
+
width: 100%;
|
|
36
|
+
height: 100%;
|
|
37
|
+
pointer-events: none;
|
|
38
|
+
z-index: 10;
|
|
39
|
+
content: "";
|
|
31
40
|
outline-width: 1px;
|
|
32
41
|
outline-style: solid;
|
|
33
42
|
outline-offset: -1px;
|
|
@@ -88,22 +97,26 @@
|
|
|
88
97
|
transform: rotate(-90deg);
|
|
89
98
|
}
|
|
90
99
|
|
|
91
|
-
.theia-Tree:focus .theia-TreeNode.theia-mod-selected
|
|
92
|
-
.theia-Tree .ReactVirtualized__List:focus .theia-TreeNode.theia-mod-selected {
|
|
100
|
+
.theia-Tree:focus-within .theia-TreeNode.theia-mod-selected {
|
|
93
101
|
background: var(--theia-list-activeSelectionBackground);
|
|
94
102
|
color: var(--theia-list-activeSelectionForeground) !important;
|
|
95
103
|
}
|
|
96
104
|
|
|
97
|
-
.theia-Tree:focus .theia-TreeNode.theia-mod-selected .theia-TreeNodeTail,
|
|
98
|
-
.theia-Tree
|
|
99
|
-
.theia-Tree:focus .theia-TreeNode.theia-mod-selected .theia-
|
|
100
|
-
.theia-Tree
|
|
101
|
-
.theia-Tree:focus .theia-TreeNode.theia-mod-selected .theia-TreeNodeInfo,
|
|
102
|
-
.theia-Tree .ReactVirtualized__List:focus .theia-TreeNode.theia-mod-selected .theia-TreeNodeInfo,
|
|
103
|
-
.theia-Tree .ReactVirtualized__List:focus .theia-TreeNode.theia-mod-selected .theia-TreeNodeSegment {
|
|
105
|
+
.theia-Tree:focus-within .theia-TreeNode.theia-mod-selected .theia-TreeNodeTail,
|
|
106
|
+
.theia-Tree:focus-within .theia-TreeNode.theia-mod-selected .theia-caption-suffix,
|
|
107
|
+
.theia-Tree:focus-within .theia-TreeNode.theia-mod-selected .theia-TreeNodeInfo,
|
|
108
|
+
.theia-Tree:focus-within .theia-TreeNode.theia-mod-selected .theia-TreeNodeSegment {
|
|
104
109
|
color: var(--theia-list-activeSelectionForeground) !important;
|
|
105
110
|
}
|
|
106
111
|
|
|
112
|
+
.theia-Tree:focus .theia-TreeNode.theia-mod-focus,
|
|
113
|
+
.theia-Tree .ReactVirtualized__List:focus .theia-TreeNode.theia-mod-focus {
|
|
114
|
+
outline-width: 1px;
|
|
115
|
+
outline-style: solid;
|
|
116
|
+
outline-offset: -1px;
|
|
117
|
+
outline-color: var(--theia-focusBorder);
|
|
118
|
+
}
|
|
119
|
+
|
|
107
120
|
.theia-TreeNodeInfo {
|
|
108
121
|
color: var(--theia-foreground);
|
|
109
122
|
opacity: 0.7;
|
|
@@ -124,13 +137,16 @@
|
|
|
124
137
|
}
|
|
125
138
|
|
|
126
139
|
.theia-TreeNodeSegment {
|
|
127
|
-
display: flex;
|
|
128
140
|
align-items: center;
|
|
129
141
|
flex-grow: 0;
|
|
130
142
|
user-select: none;
|
|
131
143
|
white-space: nowrap;
|
|
132
144
|
}
|
|
133
145
|
|
|
146
|
+
.theia-TreeNodeSegment.flex {
|
|
147
|
+
display: flex;
|
|
148
|
+
}
|
|
149
|
+
|
|
134
150
|
.theia-TreeNodeSegmentGrow {
|
|
135
151
|
flex-grow: 1 !important;
|
|
136
152
|
overflow: hidden;
|
|
@@ -111,6 +111,10 @@
|
|
|
111
111
|
opacity: 0.6;
|
|
112
112
|
}
|
|
113
113
|
|
|
114
|
+
.theia-view-container-part-header .notification-count-container {
|
|
115
|
+
margin-right: 12px;
|
|
116
|
+
}
|
|
117
|
+
|
|
114
118
|
.theia-view-container .part > .body {
|
|
115
119
|
height: var(--theia-view-container-content-height);
|
|
116
120
|
min-width: 50px;
|
|
@@ -0,0 +1,76 @@
|
|
|
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, named } from 'inversify';
|
|
18
|
+
import { ContributionProvider } from '../common/contribution-provider';
|
|
19
|
+
import { Theme, ThemeType } from '../common/theme';
|
|
20
|
+
import { ColorRegistry } from './color-registry';
|
|
21
|
+
import { DecorationStyle } from './decoration-style';
|
|
22
|
+
import { FrontendApplicationContribution } from './frontend-application';
|
|
23
|
+
import { ThemeService } from './theming';
|
|
24
|
+
|
|
25
|
+
export const StylingParticipant = Symbol('StylingParticipant');
|
|
26
|
+
|
|
27
|
+
export interface StylingParticipant {
|
|
28
|
+
registerThemeStyle(theme: ColorTheme, collector: CssStyleCollector): void
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export interface ColorTheme {
|
|
32
|
+
type: ThemeType
|
|
33
|
+
label: string
|
|
34
|
+
getColor(color: string): string | undefined;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export interface CssStyleCollector {
|
|
38
|
+
addRule(rule: string): void;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
@injectable()
|
|
42
|
+
export class StylingService implements FrontendApplicationContribution {
|
|
43
|
+
|
|
44
|
+
protected cssElement = DecorationStyle.createStyleElement('contributedColorTheme');
|
|
45
|
+
|
|
46
|
+
@inject(ThemeService)
|
|
47
|
+
protected readonly themeService: ThemeService;
|
|
48
|
+
|
|
49
|
+
@inject(ColorRegistry)
|
|
50
|
+
protected readonly colorRegistry: ColorRegistry;
|
|
51
|
+
|
|
52
|
+
@inject(ContributionProvider) @named(StylingParticipant)
|
|
53
|
+
protected readonly themingParticipants: ContributionProvider<StylingParticipant>;
|
|
54
|
+
|
|
55
|
+
onStart(): void {
|
|
56
|
+
this.applyStyling(this.themeService.getCurrentTheme());
|
|
57
|
+
this.themeService.onDidColorThemeChange(e => this.applyStyling(e.newTheme));
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
protected applyStyling(theme: Theme): void {
|
|
61
|
+
const rules: string[] = [];
|
|
62
|
+
const colorTheme: ColorTheme = {
|
|
63
|
+
type: theme.type,
|
|
64
|
+
label: theme.label,
|
|
65
|
+
getColor: color => this.colorRegistry.getCurrentColor(color)
|
|
66
|
+
};
|
|
67
|
+
const styleCollector: CssStyleCollector = {
|
|
68
|
+
addRule: rule => rules.push(rule)
|
|
69
|
+
};
|
|
70
|
+
for (const themingParticipant of this.themingParticipants.getContributions()) {
|
|
71
|
+
themingParticipant.registerThemeStyle(colorTheme, styleCollector);
|
|
72
|
+
}
|
|
73
|
+
const fullCss = rules.join('\n');
|
|
74
|
+
this.cssElement.innerText = fullCss;
|
|
75
|
+
}
|
|
76
|
+
}
|
package/src/browser/theming.ts
CHANGED
|
@@ -19,31 +19,26 @@ import { Disposable } from '../common/disposable';
|
|
|
19
19
|
import { FrontendApplicationConfigProvider } from './frontend-application-config-provider';
|
|
20
20
|
import { ApplicationProps } from '@theia/application-package/lib/application-props';
|
|
21
21
|
import { Theme, ThemeChangeEvent } from '../common/theme';
|
|
22
|
+
import { injectable, postConstruct } from 'inversify';
|
|
23
|
+
import { Deferred } from '../common/promise-util';
|
|
22
24
|
|
|
23
|
-
|
|
24
|
-
* @deprecated since 1.20.0. Import from `@theia/core/lib/common/theme` instead.
|
|
25
|
-
*/
|
|
26
|
-
export * from '../common/theme';
|
|
27
|
-
|
|
28
|
-
export const ThemeServiceSymbol = Symbol('ThemeService');
|
|
29
|
-
|
|
25
|
+
@injectable()
|
|
30
26
|
export class ThemeService {
|
|
31
27
|
|
|
32
28
|
protected themes: { [id: string]: Theme } = {};
|
|
33
29
|
protected activeTheme: Theme | undefined;
|
|
34
30
|
protected readonly themeChange = new Emitter<ThemeChangeEvent>();
|
|
31
|
+
protected readonly deferredInitializer = new Deferred();
|
|
32
|
+
get initialized(): Promise<void> {
|
|
33
|
+
return this.deferredInitializer.promise;
|
|
34
|
+
}
|
|
35
35
|
|
|
36
36
|
readonly onDidColorThemeChange: Event<ThemeChangeEvent> = this.themeChange.event;
|
|
37
37
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
themeService.register(...BuiltinThemeProvider.themes);
|
|
43
|
-
themeService.startupTheme();
|
|
44
|
-
global[ThemeServiceSymbol] = themeService;
|
|
45
|
-
}
|
|
46
|
-
return global[ThemeServiceSymbol];
|
|
38
|
+
@postConstruct()
|
|
39
|
+
protected init(): void {
|
|
40
|
+
this.register(...BuiltinThemeProvider.themes);
|
|
41
|
+
this.loadUserTheme();
|
|
47
42
|
}
|
|
48
43
|
|
|
49
44
|
register(...themes: Theme[]): Disposable {
|
|
@@ -88,12 +83,13 @@ export class ThemeService {
|
|
|
88
83
|
|
|
89
84
|
startupTheme(): void {
|
|
90
85
|
const theme = this.getCurrentTheme();
|
|
91
|
-
theme.activate();
|
|
86
|
+
theme.activate?.();
|
|
92
87
|
}
|
|
93
88
|
|
|
94
89
|
loadUserTheme(): void {
|
|
95
90
|
const theme = this.getCurrentTheme();
|
|
96
91
|
this.setCurrentTheme(theme.id);
|
|
92
|
+
this.deferredInitializer.resolve();
|
|
97
93
|
}
|
|
98
94
|
|
|
99
95
|
setCurrentTheme(themeId: string): void {
|
|
@@ -103,9 +99,9 @@ export class ThemeService {
|
|
|
103
99
|
if (oldTheme.id === newTheme.id) {
|
|
104
100
|
return;
|
|
105
101
|
}
|
|
106
|
-
oldTheme.deactivate();
|
|
102
|
+
oldTheme.deactivate?.();
|
|
107
103
|
}
|
|
108
|
-
newTheme.activate();
|
|
104
|
+
newTheme.activate?.();
|
|
109
105
|
this.activeTheme = newTheme;
|
|
110
106
|
window.localStorage.setItem('theme', themeId);
|
|
111
107
|
this.themeChange.fire({
|
|
@@ -131,52 +127,29 @@ export class ThemeService {
|
|
|
131
127
|
reset(): void {
|
|
132
128
|
this.setCurrentTheme(this.defaultTheme.id);
|
|
133
129
|
}
|
|
134
|
-
|
|
135
130
|
}
|
|
136
131
|
|
|
137
132
|
export class BuiltinThemeProvider {
|
|
138
133
|
|
|
139
|
-
// Webpack converts these `require` in some Javascript object that wraps the `.css` files
|
|
140
|
-
static readonly darkCss = require('../../src/browser/style/variables-dark.useable.css');
|
|
141
|
-
static readonly lightCss = require('../../src/browser/style/variables-bright.useable.css');
|
|
142
|
-
|
|
143
134
|
static readonly darkTheme: Theme = {
|
|
144
135
|
id: 'dark',
|
|
145
136
|
type: 'dark',
|
|
146
137
|
label: 'Dark (Theia)',
|
|
147
|
-
editorTheme: 'dark-theia'
|
|
148
|
-
activate(): void {
|
|
149
|
-
BuiltinThemeProvider.darkCss.use();
|
|
150
|
-
},
|
|
151
|
-
deactivate(): void {
|
|
152
|
-
BuiltinThemeProvider.darkCss.unuse();
|
|
153
|
-
}
|
|
138
|
+
editorTheme: 'dark-theia' // loaded in /packages/monaco/src/browser/textmate/monaco-theme-registry.ts
|
|
154
139
|
};
|
|
155
140
|
|
|
156
141
|
static readonly lightTheme: Theme = {
|
|
157
142
|
id: 'light',
|
|
158
143
|
type: 'light',
|
|
159
144
|
label: 'Light (Theia)',
|
|
160
|
-
editorTheme: 'light-theia'
|
|
161
|
-
activate(): void {
|
|
162
|
-
BuiltinThemeProvider.lightCss.use();
|
|
163
|
-
},
|
|
164
|
-
deactivate(): void {
|
|
165
|
-
BuiltinThemeProvider.lightCss.unuse();
|
|
166
|
-
}
|
|
145
|
+
editorTheme: 'light-theia' // loaded in /packages/monaco/src/browser/textmate/monaco-theme-registry.ts
|
|
167
146
|
};
|
|
168
147
|
|
|
169
148
|
static readonly hcTheme: Theme = {
|
|
170
149
|
id: 'hc-theia',
|
|
171
150
|
type: 'hc',
|
|
172
151
|
label: 'High Contrast (Theia)',
|
|
173
|
-
editorTheme: 'hc-theia'
|
|
174
|
-
activate(): void {
|
|
175
|
-
BuiltinThemeProvider.darkCss.use();
|
|
176
|
-
},
|
|
177
|
-
deactivate(): void {
|
|
178
|
-
BuiltinThemeProvider.darkCss.unuse();
|
|
179
|
-
}
|
|
152
|
+
editorTheme: 'hc-theia' // loaded in /packages/monaco/src/browser/textmate/monaco-theme-registry.ts
|
|
180
153
|
};
|
|
181
154
|
|
|
182
155
|
static readonly themes = [
|
|
@@ -18,6 +18,7 @@ import { SearchBoxDebounce, SearchBoxDebounceOptions } from '../tree/search-box-
|
|
|
18
18
|
import { BaseWidget, Message } from '../widgets/widget';
|
|
19
19
|
import { Emitter, Event } from '../../common/event';
|
|
20
20
|
import { KeyCode, Key } from '../keyboard/keys';
|
|
21
|
+
import { nls } from '../../common/nls';
|
|
21
22
|
|
|
22
23
|
/**
|
|
23
24
|
* Initializer properties for the search box widget.
|
|
@@ -253,7 +254,7 @@ export class SearchBox extends BaseWidget {
|
|
|
253
254
|
SearchBox.Styles.BUTTON,
|
|
254
255
|
...SearchBox.Styles.FILTER,
|
|
255
256
|
);
|
|
256
|
-
filter.title = 'Enable Filter on Type';
|
|
257
|
+
filter.title = nls.localizeByDefault('Enable Filter on Type');
|
|
257
258
|
buttons.appendChild(filter);
|
|
258
259
|
filter.onclick = this.fireFilterToggle.bind(this);
|
|
259
260
|
}
|
|
@@ -268,7 +269,7 @@ export class SearchBox extends BaseWidget {
|
|
|
268
269
|
SearchBox.Styles.BUTTON,
|
|
269
270
|
SearchBox.Styles.BUTTON_PREVIOUS
|
|
270
271
|
);
|
|
271
|
-
previous.title = 'Previous (Up)';
|
|
272
|
+
previous.title = nls.localize('theia/core/searchbox/previous', 'Previous (Up)');
|
|
272
273
|
buttons.appendChild(previous);
|
|
273
274
|
previous.onclick = () => this.firePrevious.bind(this)();
|
|
274
275
|
|
|
@@ -277,7 +278,7 @@ export class SearchBox extends BaseWidget {
|
|
|
277
278
|
SearchBox.Styles.BUTTON,
|
|
278
279
|
SearchBox.Styles.BUTTON_NEXT
|
|
279
280
|
);
|
|
280
|
-
next.title = 'Next (Down)';
|
|
281
|
+
next.title = nls.localize('theia/core/searchbox/next', 'Next (Down)');
|
|
281
282
|
buttons.appendChild(next);
|
|
282
283
|
next.onclick = () => this.fireNext.bind(this)();
|
|
283
284
|
}
|
|
@@ -288,7 +289,7 @@ export class SearchBox extends BaseWidget {
|
|
|
288
289
|
SearchBox.Styles.BUTTON,
|
|
289
290
|
SearchBox.Styles.BUTTON_CLOSE
|
|
290
291
|
);
|
|
291
|
-
close.title = 'Close (Escape)';
|
|
292
|
+
close.title = nls.localize('theia/core/searchbox/close', 'Close (Escape)');
|
|
292
293
|
buttons.appendChild(close);
|
|
293
294
|
close.onclick = () => this.hide.bind(this)();
|
|
294
295
|
}
|
|
@@ -26,6 +26,7 @@ import { FuzzySearch } from '../fuzzy-search';
|
|
|
26
26
|
import { MockLogger } from '../../../common/test/mock-logger';
|
|
27
27
|
import { ILogger, bindContributionProvider } from '../../../common';
|
|
28
28
|
import { LabelProviderContribution, LabelProvider } from '../../label-provider';
|
|
29
|
+
import { TreeFocusService, TreeFocusServiceImpl } from '../tree-focus-service';
|
|
29
30
|
|
|
30
31
|
export function createTreeTestContainer(): Container {
|
|
31
32
|
const container = new Container({ defaultScope: 'Singleton' });
|
|
@@ -41,6 +42,7 @@ export function createTreeTestContainer(): Container {
|
|
|
41
42
|
container.bind(TreeSearch).toSelf();
|
|
42
43
|
container.bind(FuzzySearch).toSelf();
|
|
43
44
|
container.bind(MockLogger).toSelf();
|
|
45
|
+
container.bind(TreeFocusService).to(TreeFocusServiceImpl);
|
|
44
46
|
container.bind(ILogger).to(MockLogger);
|
|
45
47
|
bindContributionProvider(container, LabelProviderContribution);
|
|
46
48
|
container.bind(LabelProvider).toSelf().inSingletonScope();
|