@theia/plugin-ext 1.45.1 → 1.46.0-next.137
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/lib/common/index.js +4 -13
- package/lib/common/index.js.map +1 -1
- package/lib/common/plugin-api-rpc-model.d.ts +1 -1
- package/lib/common/plugin-api-rpc-model.d.ts.map +1 -1
- package/lib/common/plugin-api-rpc.d.ts +69 -24
- package/lib/common/plugin-api-rpc.d.ts.map +1 -1
- package/lib/common/plugin-api-rpc.js +15 -2
- package/lib/common/plugin-api-rpc.js.map +1 -1
- package/lib/common/plugin-ext-api-contribution.d.ts +35 -5
- package/lib/common/plugin-ext-api-contribution.d.ts.map +1 -1
- package/lib/common/plugin-ext-api-contribution.js.map +1 -1
- package/lib/common/plugin-protocol.d.ts +15 -2
- package/lib/common/plugin-protocol.d.ts.map +1 -1
- package/lib/common/plugin-protocol.js +1 -0
- package/lib/common/plugin-protocol.js.map +1 -1
- package/lib/common/proxy-handler.d.ts +7 -0
- package/lib/common/proxy-handler.d.ts.map +1 -1
- package/lib/common/proxy-handler.js +5 -1
- package/lib/common/proxy-handler.js.map +1 -1
- package/lib/common/rpc-protocol.d.ts +10 -0
- package/lib/common/rpc-protocol.d.ts.map +1 -1
- package/lib/common/rpc-protocol.js +32 -3
- package/lib/common/rpc-protocol.js.map +1 -1
- package/lib/common/uri-components.d.ts +1 -2
- package/lib/common/uri-components.d.ts.map +1 -1
- package/lib/common/uri-components.js +1 -5
- package/lib/common/uri-components.js.map +1 -1
- package/lib/hosted/browser/hosted-plugin-watcher.js +2 -7
- package/lib/hosted/browser/hosted-plugin-watcher.js.map +1 -1
- package/lib/hosted/browser/hosted-plugin.d.ts +16 -74
- package/lib/hosted/browser/hosted-plugin.d.ts.map +1 -1
- package/lib/hosted/browser/hosted-plugin.js +98 -378
- package/lib/hosted/browser/hosted-plugin.js.map +1 -1
- package/lib/hosted/browser/plugin-worker.js +3 -11
- package/lib/hosted/browser/plugin-worker.js.map +1 -1
- package/lib/hosted/browser/worker/debug-stub.d.ts +2 -2
- package/lib/hosted/browser/worker/debug-stub.d.ts.map +1 -1
- package/lib/hosted/browser/worker/debug-stub.js +3 -3
- package/lib/hosted/browser/worker/debug-stub.js.map +1 -1
- package/lib/hosted/browser/worker/worker-env-ext.d.ts +1 -2
- package/lib/hosted/browser/worker/worker-env-ext.d.ts.map +1 -1
- package/lib/hosted/browser/worker/worker-env-ext.js +10 -4
- package/lib/hosted/browser/worker/worker-env-ext.js.map +1 -1
- package/lib/hosted/browser/worker/worker-main.js +20 -32
- package/lib/hosted/browser/worker/worker-main.js.map +1 -1
- package/lib/hosted/browser/worker/worker-plugin-module.d.ts +5 -0
- package/lib/hosted/browser/worker/worker-plugin-module.d.ts.map +1 -0
- package/lib/hosted/browser/worker/worker-plugin-module.js +78 -0
- package/lib/hosted/browser/worker/worker-plugin-module.js.map +1 -0
- package/lib/hosted/common/hosted-plugin.d.ts +97 -0
- package/lib/hosted/common/hosted-plugin.d.ts.map +1 -0
- package/lib/hosted/common/hosted-plugin.js +400 -0
- package/lib/hosted/common/hosted-plugin.js.map +1 -0
- package/lib/hosted/node/hosted-plugin-cli-contribution.js +2 -7
- package/lib/hosted/node/hosted-plugin-cli-contribution.js.map +1 -1
- package/lib/hosted/node/hosted-plugin-deployer-handler.js +14 -22
- package/lib/hosted/node/hosted-plugin-deployer-handler.js.map +1 -1
- package/lib/hosted/node/hosted-plugin-localization-service.js +8 -16
- package/lib/hosted/node/hosted-plugin-localization-service.js.map +1 -1
- package/lib/hosted/node/hosted-plugin-process.d.ts +1 -1
- package/lib/hosted/node/hosted-plugin-process.d.ts.map +1 -1
- package/lib/hosted/node/hosted-plugin-process.js +16 -24
- package/lib/hosted/node/hosted-plugin-process.js.map +1 -1
- package/lib/hosted/node/hosted-plugin.js +12 -20
- package/lib/hosted/node/hosted-plugin.js.map +1 -1
- package/lib/hosted/node/metadata-scanner.js +6 -17
- package/lib/hosted/node/metadata-scanner.js.map +1 -1
- package/lib/hosted/node/plugin-ext-hosted-backend-module.d.ts.map +1 -1
- package/lib/hosted/node/plugin-ext-hosted-backend-module.js +2 -0
- package/lib/hosted/node/plugin-ext-hosted-backend-module.js.map +1 -1
- package/lib/hosted/node/plugin-host-module.d.ts +5 -0
- package/lib/hosted/node/plugin-host-module.d.ts.map +1 -0
- package/lib/hosted/node/plugin-host-module.js +68 -0
- package/lib/hosted/node/plugin-host-module.js.map +1 -0
- package/lib/hosted/node/plugin-host-rpc.d.ts +93 -7
- package/lib/hosted/node/plugin-host-rpc.d.ts.map +1 -1
- package/lib/hosted/node/plugin-host-rpc.js +191 -53
- package/lib/hosted/node/plugin-host-rpc.js.map +1 -1
- package/lib/hosted/node/plugin-host.js +6 -5
- package/lib/hosted/node/plugin-host.js.map +1 -1
- package/lib/hosted/node/plugin-language-pack-service.js +2 -7
- package/lib/hosted/node/plugin-language-pack-service.js.map +1 -1
- package/lib/hosted/node/plugin-reader.d.ts.map +1 -1
- package/lib/hosted/node/plugin-reader.js +11 -16
- package/lib/hosted/node/plugin-reader.js.map +1 -1
- package/lib/hosted/node/plugin-service.d.ts +8 -0
- package/lib/hosted/node/plugin-service.d.ts.map +1 -1
- package/lib/hosted/node/plugin-service.js +34 -35
- package/lib/hosted/node/plugin-service.js.map +1 -1
- package/lib/hosted/node/scanners/file-plugin-uri-factory.js +3 -8
- package/lib/hosted/node/scanners/file-plugin-uri-factory.js.map +1 -1
- package/lib/hosted/node/scanners/grammars-reader.js +2 -7
- package/lib/hosted/node/scanners/grammars-reader.js.map +1 -1
- package/lib/hosted/node/scanners/scanner-theia.d.ts +17 -3
- package/lib/hosted/node/scanners/scanner-theia.d.ts.map +1 -1
- package/lib/hosted/node/scanners/scanner-theia.js +58 -31
- package/lib/hosted/node/scanners/scanner-theia.js.map +1 -1
- package/lib/hosted/node-electron/scanner-theia-electron.js +2 -7
- package/lib/hosted/node-electron/scanner-theia-electron.js.map +1 -1
- package/lib/main/browser/authentication-main.d.ts.map +1 -1
- package/lib/main/browser/authentication-main.js +3 -1
- package/lib/main/browser/authentication-main.js.map +1 -1
- package/lib/main/browser/command-registry-main.d.ts +1 -0
- package/lib/main/browser/command-registry-main.d.ts.map +1 -1
- package/lib/main/browser/command-registry-main.js +6 -1
- package/lib/main/browser/command-registry-main.js.map +1 -1
- package/lib/main/browser/commands.js +5 -16
- package/lib/main/browser/commands.js.map +1 -1
- package/lib/main/browser/comments/comments-context-key-service.js +8 -16
- package/lib/main/browser/comments/comments-context-key-service.js.map +1 -1
- package/lib/main/browser/comments/comments-contribution.d.ts.map +1 -1
- package/lib/main/browser/comments/comments-contribution.js +17 -25
- package/lib/main/browser/comments/comments-contribution.js.map +1 -1
- package/lib/main/browser/comments/comments-decorator.js +3 -11
- package/lib/main/browser/comments/comments-decorator.js.map +1 -1
- package/lib/main/browser/comments/comments-main.js +2 -2
- package/lib/main/browser/comments/comments-main.js.map +1 -1
- package/lib/main/browser/comments/comments-service.js +2 -7
- package/lib/main/browser/comments/comments-service.js.map +1 -1
- package/lib/main/browser/custom-editors/custom-editor-contribution.js +4 -12
- package/lib/main/browser/custom-editors/custom-editor-contribution.js.map +1 -1
- package/lib/main/browser/custom-editors/custom-editor-opener.js +7 -18
- package/lib/main/browser/custom-editors/custom-editor-opener.js.map +1 -1
- package/lib/main/browser/custom-editors/custom-editor-service.js +2 -7
- package/lib/main/browser/custom-editors/custom-editor-service.js.map +1 -1
- package/lib/main/browser/custom-editors/custom-editor-widget.d.ts.map +1 -1
- package/lib/main/browser/custom-editors/custom-editor-widget.js +15 -21
- package/lib/main/browser/custom-editors/custom-editor-widget.js.map +1 -1
- package/lib/main/browser/custom-editors/custom-editors-main.js +1 -1
- package/lib/main/browser/custom-editors/custom-editors-main.js.map +1 -1
- package/lib/main/browser/custom-editors/plugin-custom-editor-registry.js +18 -26
- package/lib/main/browser/custom-editors/plugin-custom-editor-registry.js.map +1 -1
- package/lib/main/browser/data-transfer/data-transfer-type-converters.d.ts +2 -2
- package/lib/main/browser/data-transfer/data-transfer-type-converters.d.ts.map +1 -1
- package/lib/main/browser/data-transfer/data-transfer-type-converters.js +2 -4
- package/lib/main/browser/data-transfer/data-transfer-type-converters.js.map +1 -1
- package/lib/main/browser/debug/plugin-debug-service.js +10 -18
- package/lib/main/browser/debug/plugin-debug-service.js.map +1 -1
- package/lib/main/browser/debug/plugin-debug-session-contribution-registry.js +8 -16
- package/lib/main/browser/debug/plugin-debug-session-contribution-registry.js.map +1 -1
- package/lib/main/browser/dialogs/modal-notification.js +3 -11
- package/lib/main/browser/dialogs/modal-notification.js.map +1 -1
- package/lib/main/browser/documents-main.d.ts +2 -1
- package/lib/main/browser/documents-main.d.ts.map +1 -1
- package/lib/main/browser/documents-main.js +2 -1
- package/lib/main/browser/documents-main.js.map +1 -1
- package/lib/main/browser/editors-and-documents-main.d.ts +5 -1
- package/lib/main/browser/editors-and-documents-main.d.ts.map +1 -1
- package/lib/main/browser/editors-and-documents-main.js +22 -3
- package/lib/main/browser/editors-and-documents-main.js.map +1 -1
- package/lib/main/browser/env-main.d.ts +1 -10
- package/lib/main/browser/env-main.d.ts.map +1 -1
- package/lib/main/browser/env-main.js +2 -21
- package/lib/main/browser/env-main.js.map +1 -1
- package/lib/main/browser/file-system-main-impl.d.ts +2 -1
- package/lib/main/browser/file-system-main-impl.d.ts.map +1 -1
- package/lib/main/browser/file-system-main-impl.js +5 -3
- package/lib/main/browser/file-system-main-impl.js.map +1 -1
- package/lib/main/browser/keybindings/keybindings-contribution-handler.js +4 -12
- package/lib/main/browser/keybindings/keybindings-contribution-handler.js.map +1 -1
- package/lib/main/browser/languages-main.d.ts +2 -2
- package/lib/main/browser/languages-main.d.ts.map +1 -1
- package/lib/main/browser/languages-main.js +19 -28
- package/lib/main/browser/languages-main.js.map +1 -1
- package/lib/main/browser/main-context.d.ts.map +1 -1
- package/lib/main/browser/main-context.js +5 -13
- package/lib/main/browser/main-context.js.map +1 -1
- package/lib/main/browser/menus/menus-contribution-handler.d.ts.map +1 -1
- package/lib/main/browser/menus/menus-contribution-handler.js +29 -34
- package/lib/main/browser/menus/menus-contribution-handler.js.map +1 -1
- package/lib/main/browser/menus/plugin-menu-command-adapter.d.ts.map +1 -1
- package/lib/main/browser/menus/plugin-menu-command-adapter.js +20 -25
- package/lib/main/browser/menus/plugin-menu-command-adapter.js.map +1 -1
- package/lib/main/browser/menus/vscode-theia-menu-mappings.d.ts +2 -2
- package/lib/main/browser/menus/vscode-theia-menu-mappings.d.ts.map +1 -1
- package/lib/main/browser/menus/vscode-theia-menu-mappings.js +11 -9
- package/lib/main/browser/menus/vscode-theia-menu-mappings.js.map +1 -1
- package/lib/main/browser/message-registry-main.d.ts +6 -4
- package/lib/main/browser/message-registry-main.d.ts.map +1 -1
- package/lib/main/browser/message-registry-main.js +7 -19
- package/lib/main/browser/message-registry-main.js.map +1 -1
- package/lib/main/browser/notebooks/notebook-documents-and-editors-main.d.ts +0 -1
- package/lib/main/browser/notebooks/notebook-documents-and-editors-main.d.ts.map +1 -1
- package/lib/main/browser/notebooks/notebook-documents-and-editors-main.js +5 -7
- package/lib/main/browser/notebooks/notebook-documents-and-editors-main.js.map +1 -1
- package/lib/main/browser/notebooks/notebook-documents-main.d.ts +11 -5
- package/lib/main/browser/notebooks/notebook-documents-main.d.ts.map +1 -1
- package/lib/main/browser/notebooks/notebook-documents-main.js +11 -0
- package/lib/main/browser/notebooks/notebook-documents-main.js.map +1 -1
- package/lib/main/browser/notebooks/notebook-kernels-main.d.ts +1 -0
- package/lib/main/browser/notebooks/notebook-kernels-main.d.ts.map +1 -1
- package/lib/main/browser/notebooks/notebook-kernels-main.js +57 -14
- package/lib/main/browser/notebooks/notebook-kernels-main.js.map +1 -1
- package/lib/main/browser/notebooks/notebooks-main.d.ts +12 -10
- package/lib/main/browser/notebooks/notebooks-main.d.ts.map +1 -1
- package/lib/main/browser/notebooks/notebooks-main.js +36 -7
- package/lib/main/browser/notebooks/notebooks-main.js.map +1 -1
- package/lib/main/browser/notebooks/renderers/cell-output-webview.d.ts +8 -2
- package/lib/main/browser/notebooks/renderers/cell-output-webview.d.ts.map +1 -1
- package/lib/main/browser/notebooks/renderers/cell-output-webview.js +120 -68
- package/lib/main/browser/notebooks/renderers/cell-output-webview.js.map +1 -1
- package/lib/main/browser/notebooks/renderers/output-webview-internal.d.ts +1 -0
- package/lib/main/browser/notebooks/renderers/output-webview-internal.d.ts.map +1 -1
- package/lib/main/browser/notebooks/renderers/output-webview-internal.js +103 -15
- package/lib/main/browser/notebooks/renderers/output-webview-internal.js.map +1 -1
- package/lib/main/browser/notebooks/renderers/webview-communication.d.ts +12 -3
- package/lib/main/browser/notebooks/renderers/webview-communication.d.ts.map +1 -1
- package/lib/main/browser/notification-main.d.ts +2 -14
- package/lib/main/browser/notification-main.d.ts.map +1 -1
- package/lib/main/browser/notification-main.js +3 -52
- package/lib/main/browser/notification-main.js.map +1 -1
- package/lib/main/browser/output-channel-registry-main.js +4 -12
- package/lib/main/browser/output-channel-registry-main.js.map +1 -1
- package/lib/main/browser/plugin-authentication-service.js +3 -11
- package/lib/main/browser/plugin-authentication-service.js.map +1 -1
- package/lib/main/browser/plugin-contribution-handler.d.ts.map +1 -1
- package/lib/main/browser/plugin-contribution-handler.js +66 -69
- package/lib/main/browser/plugin-contribution-handler.js.map +1 -1
- package/lib/main/browser/plugin-ext-frontend-module.d.ts.map +1 -1
- package/lib/main/browser/plugin-ext-frontend-module.js +6 -1
- package/lib/main/browser/plugin-ext-frontend-module.js.map +1 -1
- package/lib/main/browser/plugin-ext-widget.js +11 -19
- package/lib/main/browser/plugin-ext-widget.js.map +1 -1
- package/lib/main/browser/plugin-frontend-contribution.js +4 -12
- package/lib/main/browser/plugin-frontend-contribution.js.map +1 -1
- package/lib/main/browser/plugin-frontend-view-contribution.js +3 -11
- package/lib/main/browser/plugin-frontend-view-contribution.js.map +1 -1
- package/lib/main/browser/plugin-icon-service.d.ts +2 -5
- package/lib/main/browser/plugin-icon-service.d.ts.map +1 -1
- package/lib/main/browser/plugin-icon-service.js +10 -77
- package/lib/main/browser/plugin-icon-service.js.map +1 -1
- package/lib/main/browser/plugin-icon-theme-service.js +22 -30
- package/lib/main/browser/plugin-icon-theme-service.js.map +1 -1
- package/lib/main/browser/plugin-shared-style.js +8 -16
- package/lib/main/browser/plugin-shared-style.js.map +1 -1
- package/lib/main/browser/plugin-terminal-registry.js +2 -7
- package/lib/main/browser/plugin-terminal-registry.js.map +1 -1
- package/lib/main/browser/quick-open-main.d.ts +8 -7
- package/lib/main/browser/quick-open-main.d.ts.map +1 -1
- package/lib/main/browser/quick-open-main.js +57 -17
- package/lib/main/browser/quick-open-main.js.map +1 -1
- package/lib/main/browser/scm-main.js +3 -3
- package/lib/main/browser/scm-main.js.map +1 -1
- package/lib/main/browser/selection-provider-command.d.ts.map +1 -1
- package/lib/main/browser/selection-provider-command.js +5 -14
- package/lib/main/browser/selection-provider-command.js.map +1 -1
- package/lib/main/browser/terminal-main.d.ts +12 -2
- package/lib/main/browser/terminal-main.d.ts.map +1 -1
- package/lib/main/browser/terminal-main.js +39 -2
- package/lib/main/browser/terminal-main.js.map +1 -1
- package/lib/main/browser/test-main.d.ts +3 -1
- package/lib/main/browser/test-main.d.ts.map +1 -1
- package/lib/main/browser/test-main.js +29 -30
- package/lib/main/browser/test-main.js.map +1 -1
- package/lib/main/browser/text-editor-main.d.ts.map +1 -1
- package/lib/main/browser/text-editor-main.js +6 -0
- package/lib/main/browser/text-editor-main.js.map +1 -1
- package/lib/main/browser/text-editor-model-service.js +5 -16
- package/lib/main/browser/text-editor-model-service.js.map +1 -1
- package/lib/main/browser/text-editors-main.d.ts +7 -7
- package/lib/main/browser/text-editors-main.d.ts.map +1 -1
- package/lib/main/browser/text-editors-main.js +30 -12
- package/lib/main/browser/text-editors-main.js.map +1 -1
- package/lib/main/browser/theme-icon-override.js +13 -19
- package/lib/main/browser/theme-icon-override.js.map +1 -1
- package/lib/main/browser/view/dnd-file-content-store.js +2 -7
- package/lib/main/browser/view/dnd-file-content-store.js.map +1 -1
- package/lib/main/browser/view/plugin-tree-view-node-label-provider.js +8 -16
- package/lib/main/browser/view/plugin-tree-view-node-label-provider.js.map +1 -1
- package/lib/main/browser/view/plugin-view-registry.d.ts +2 -0
- package/lib/main/browser/view/plugin-view-registry.d.ts.map +1 -1
- package/lib/main/browser/view/plugin-view-registry.js +53 -45
- package/lib/main/browser/view/plugin-view-registry.js.map +1 -1
- package/lib/main/browser/view/plugin-view-widget.d.ts.map +1 -1
- package/lib/main/browser/view/plugin-view-widget.js +16 -25
- package/lib/main/browser/view/plugin-view-widget.js.map +1 -1
- package/lib/main/browser/view/tree-view-decorator-service.js +6 -17
- package/lib/main/browser/view/tree-view-decorator-service.js.map +1 -1
- package/lib/main/browser/view/tree-view-widget.d.ts.map +1 -1
- package/lib/main/browser/view/tree-view-widget.js +41 -50
- package/lib/main/browser/view/tree-view-widget.js.map +1 -1
- package/lib/main/browser/view/view-context-key-service.js +8 -16
- package/lib/main/browser/view/view-context-key-service.js.map +1 -1
- package/lib/main/browser/view-column-service.js +4 -15
- package/lib/main/browser/view-column-service.js.map +1 -1
- package/lib/main/browser/webview/webview-context-keys.d.ts +5 -1
- package/lib/main/browser/webview/webview-context-keys.d.ts.map +1 -1
- package/lib/main/browser/webview/webview-context-keys.js +23 -22
- package/lib/main/browser/webview/webview-context-keys.js.map +1 -1
- package/lib/main/browser/webview/webview-environment.js +8 -16
- package/lib/main/browser/webview/webview-environment.js.map +1 -1
- package/lib/main/browser/webview/webview-frontend-security-warnings.js +8 -16
- package/lib/main/browser/webview/webview-frontend-security-warnings.js.map +1 -1
- package/lib/main/browser/webview/webview-resource-cache.js +3 -11
- package/lib/main/browser/webview/webview-resource-cache.js.map +1 -1
- package/lib/main/browser/webview/webview-secondary-window-support.d.ts +8 -0
- package/lib/main/browser/webview/webview-secondary-window-support.d.ts.map +1 -0
- package/lib/main/browser/webview/webview-secondary-window-support.js +52 -0
- package/lib/main/browser/webview/webview-secondary-window-support.js.map +1 -0
- package/lib/main/browser/webview/webview-theme-data-provider.js +14 -22
- package/lib/main/browser/webview/webview-theme-data-provider.js.map +1 -1
- package/lib/main/browser/webview/webview-widget-factory.d.ts.map +1 -1
- package/lib/main/browser/webview/webview-widget-factory.js +2 -1
- package/lib/main/browser/webview/webview-widget-factory.js.map +1 -1
- package/lib/main/browser/webview/webview.d.ts +1 -0
- package/lib/main/browser/webview/webview.d.ts.map +1 -1
- package/lib/main/browser/webview/webview.js +38 -45
- package/lib/main/browser/webview/webview.js.map +1 -1
- package/lib/main/browser/webview-views/webview-views-main.js +3 -11
- package/lib/main/browser/webview-views/webview-views-main.js.map +1 -1
- package/lib/main/browser/webviews-main.d.ts.map +1 -1
- package/lib/main/browser/webviews-main.js +7 -2
- package/lib/main/browser/webviews-main.js.map +1 -1
- package/lib/main/browser/workspace-main.js +2 -7
- package/lib/main/browser/workspace-main.js.map +1 -1
- package/lib/main/common/basic-message-registry-main.d.ts +14 -0
- package/lib/main/common/basic-message-registry-main.d.ts.map +1 -0
- package/lib/main/common/basic-message-registry-main.js +50 -0
- package/lib/main/common/basic-message-registry-main.js.map +1 -0
- package/lib/main/common/basic-notification-main.d.ts +19 -0
- package/lib/main/common/basic-notification-main.d.ts.map +1 -0
- package/lib/main/common/basic-notification-main.js +75 -0
- package/lib/main/common/basic-notification-main.js.map +1 -0
- package/lib/main/common/env-main.d.ts +11 -0
- package/lib/main/common/env-main.d.ts.map +1 -0
- package/lib/main/common/env-main.js +40 -0
- package/lib/main/common/env-main.js.map +1 -0
- package/lib/main/common/plugin-theia-environment.js +4 -12
- package/lib/main/common/plugin-theia-environment.js.map +1 -1
- package/lib/main/node/errors.spec.js +2 -2
- package/lib/main/node/errors.spec.js.map +1 -1
- package/lib/main/node/handlers/plugin-theia-directory-handler.d.ts +8 -3
- package/lib/main/node/handlers/plugin-theia-directory-handler.d.ts.map +1 -1
- package/lib/main/node/handlers/plugin-theia-directory-handler.js +42 -32
- package/lib/main/node/handlers/plugin-theia-directory-handler.js.map +1 -1
- package/lib/main/node/handlers/plugin-theia-file-handler.js +6 -14
- package/lib/main/node/handlers/plugin-theia-file-handler.js.map +1 -1
- package/lib/main/node/paths/plugin-paths-service.js +10 -18
- package/lib/main/node/paths/plugin-paths-service.js.map +1 -1
- package/lib/main/node/plugin-cli-contribution.js +2 -7
- package/lib/main/node/plugin-cli-contribution.js.map +1 -1
- package/lib/main/node/plugin-deployer-contribution.js +6 -14
- package/lib/main/node/plugin-deployer-contribution.js.map +1 -1
- package/lib/main/node/plugin-deployer-impl.d.ts.map +1 -1
- package/lib/main/node/plugin-deployer-impl.js +23 -27
- package/lib/main/node/plugin-deployer-impl.js.map +1 -1
- package/lib/main/node/plugin-deployer-proxy-entry-impl.js +3 -11
- package/lib/main/node/plugin-deployer-proxy-entry-impl.js.map +1 -1
- package/lib/main/node/plugin-github-resolver.js +5 -13
- package/lib/main/node/plugin-github-resolver.js.map +1 -1
- package/lib/main/node/plugin-http-resolver.js +5 -13
- package/lib/main/node/plugin-http-resolver.js.map +1 -1
- package/lib/main/node/plugin-localization-server.js +4 -12
- package/lib/main/node/plugin-localization-server.js.map +1 -1
- package/lib/main/node/plugin-mgmt-cli-contribution.js +4 -12
- package/lib/main/node/plugin-mgmt-cli-contribution.js.map +1 -1
- package/lib/main/node/plugin-server-handler.js +6 -14
- package/lib/main/node/plugin-server-handler.js.map +1 -1
- package/lib/main/node/plugin-service.js +10 -18
- package/lib/main/node/plugin-service.js.map +1 -1
- package/lib/main/node/plugin-theia-deployer-participant.js +4 -12
- package/lib/main/node/plugin-theia-deployer-participant.js.map +1 -1
- package/lib/main/node/plugin-uninstallation-manager.js +2 -7
- package/lib/main/node/plugin-uninstallation-manager.js.map +1 -1
- package/lib/main/node/plugins-key-value-storage.js +13 -21
- package/lib/main/node/plugins-key-value-storage.js.map +1 -1
- package/lib/main/node/resolvers/local-directory-plugin-deployer-resolver.js +2 -7
- package/lib/main/node/resolvers/local-directory-plugin-deployer-resolver.js.map +1 -1
- package/lib/main/node/resolvers/local-plugin-deployer-resolver.js +2 -7
- package/lib/main/node/resolvers/local-plugin-deployer-resolver.js.map +1 -1
- package/lib/main/node/webview-backend-security-warnings.js +2 -7
- package/lib/main/node/webview-backend-security-warnings.js.map +1 -1
- package/lib/plugin/clipboard-ext.d.ts +3 -2
- package/lib/plugin/clipboard-ext.d.ts.map +1 -1
- package/lib/plugin/clipboard-ext.js +20 -4
- package/lib/plugin/clipboard-ext.js.map +1 -1
- package/lib/plugin/custom-editors.js +1 -1
- package/lib/plugin/custom-editors.js.map +1 -1
- package/lib/plugin/debug/debug-ext.d.ts +3 -1
- package/lib/plugin/debug/debug-ext.d.ts.map +1 -1
- package/lib/plugin/debug/debug-ext.js +25 -6
- package/lib/plugin/debug/debug-ext.js.map +1 -1
- package/lib/plugin/dialogs.js +1 -1
- package/lib/plugin/dialogs.js.map +1 -1
- package/lib/plugin/documents.js +2 -2
- package/lib/plugin/documents.js.map +1 -1
- package/lib/plugin/editors-and-documents.d.ts +1 -2
- package/lib/plugin/editors-and-documents.d.ts.map +1 -1
- package/lib/plugin/editors-and-documents.js +13 -4
- package/lib/plugin/editors-and-documents.js.map +1 -1
- package/lib/plugin/env.d.ts +6 -2
- package/lib/plugin/env.d.ts.map +1 -1
- package/lib/plugin/env.js +32 -7
- package/lib/plugin/env.js.map +1 -1
- package/lib/plugin/file-system-ext-impl.d.ts +2 -1
- package/lib/plugin/file-system-ext-impl.d.ts.map +1 -1
- package/lib/plugin/file-system-ext-impl.js +13 -1
- package/lib/plugin/file-system-ext-impl.js.map +1 -1
- package/lib/plugin/known-commands.d.ts.map +1 -1
- package/lib/plugin/known-commands.js +1 -0
- package/lib/plugin/known-commands.js.map +1 -1
- package/lib/plugin/languages/diagnostics.js +2 -2
- package/lib/plugin/languages/diagnostics.js.map +1 -1
- package/lib/plugin/languages/link-provider.d.ts.map +1 -1
- package/lib/plugin/languages/link-provider.js +3 -1
- package/lib/plugin/languages/link-provider.js.map +1 -1
- package/lib/plugin/localization-ext.d.ts +3 -2
- package/lib/plugin/localization-ext.d.ts.map +1 -1
- package/lib/plugin/localization-ext.js +22 -4
- package/lib/plugin/localization-ext.js.map +1 -1
- package/lib/plugin/markdown-string.d.ts +3 -3
- package/lib/plugin/markdown-string.d.ts.map +1 -1
- package/lib/plugin/markdown-string.js +17 -36
- package/lib/plugin/markdown-string.js.map +1 -1
- package/lib/plugin/message-registry.d.ts +2 -1
- package/lib/plugin/message-registry.d.ts.map +1 -1
- package/lib/plugin/message-registry.js +20 -4
- package/lib/plugin/message-registry.js.map +1 -1
- package/lib/plugin/node/debug/debug.spec.js +21 -1
- package/lib/plugin/node/debug/debug.spec.js.map +1 -1
- package/lib/plugin/node/env-node-ext.d.ts +1 -6
- package/lib/plugin/node/env-node-ext.d.ts.map +1 -1
- package/lib/plugin/node/env-node-ext.js +12 -12
- package/lib/plugin/node/env-node-ext.js.map +1 -1
- package/lib/plugin/node/plugin-container-module.d.ts +75 -0
- package/lib/plugin/node/plugin-container-module.d.ts.map +1 -0
- package/lib/plugin/node/plugin-container-module.js +115 -0
- package/lib/plugin/node/plugin-container-module.js.map +1 -0
- package/lib/plugin/notebook/notebook-document.d.ts.map +1 -1
- package/lib/plugin/notebook/notebook-document.js +16 -0
- package/lib/plugin/notebook/notebook-document.js.map +1 -1
- package/lib/plugin/notebook/notebook-kernels.d.ts +9 -7
- package/lib/plugin/notebook/notebook-kernels.d.ts.map +1 -1
- package/lib/plugin/notebook/notebook-kernels.js +38 -28
- package/lib/plugin/notebook/notebook-kernels.js.map +1 -1
- package/lib/plugin/notebook/notebook-renderers.d.ts.map +1 -1
- package/lib/plugin/notebook/notebook-renderers.js.map +1 -1
- package/lib/plugin/notebook/notebooks.d.ts +1 -0
- package/lib/plugin/notebook/notebooks.d.ts.map +1 -1
- package/lib/plugin/notebook/notebooks.js +37 -1
- package/lib/plugin/notebook/notebooks.js.map +1 -1
- package/lib/plugin/plugin-context.d.ts.map +1 -1
- package/lib/plugin/plugin-context.js +32 -23
- package/lib/plugin/plugin-context.js.map +1 -1
- package/lib/plugin/plugin-manager.d.ts +26 -17
- package/lib/plugin/plugin-manager.d.ts.map +1 -1
- package/lib/plugin/plugin-manager.js +99 -37
- package/lib/plugin/plugin-manager.js.map +1 -1
- package/lib/plugin/plugin-storage.d.ts +11 -3
- package/lib/plugin/plugin-storage.d.ts.map +1 -1
- package/lib/plugin/plugin-storage.js +14 -5
- package/lib/plugin/plugin-storage.js.map +1 -1
- package/lib/plugin/preference-registry.d.ts +3 -2
- package/lib/plugin/preference-registry.d.ts.map +1 -1
- package/lib/plugin/preference-registry.js +33 -11
- package/lib/plugin/preference-registry.js.map +1 -1
- package/lib/plugin/preference-registry.spec.js +8 -1
- package/lib/plugin/preference-registry.spec.js.map +1 -1
- package/lib/plugin/quick-open.d.ts +2 -9
- package/lib/plugin/quick-open.d.ts.map +1 -1
- package/lib/plugin/quick-open.js +9 -26
- package/lib/plugin/quick-open.js.map +1 -1
- package/lib/plugin/secrets-ext.d.ts +16 -7
- package/lib/plugin/secrets-ext.d.ts.map +1 -1
- package/lib/plugin/secrets-ext.js +12 -3
- package/lib/plugin/secrets-ext.js.map +1 -1
- package/lib/plugin/terminal-ext.d.ts +4 -1
- package/lib/plugin/terminal-ext.d.ts.map +1 -1
- package/lib/plugin/terminal-ext.js +36 -8
- package/lib/plugin/terminal-ext.js.map +1 -1
- package/lib/plugin/test-item.js +17 -25
- package/lib/plugin/test-item.js.map +1 -1
- package/lib/plugin/tests.d.ts +8 -1
- package/lib/plugin/tests.d.ts.map +1 -1
- package/lib/plugin/tests.js +35 -21
- package/lib/plugin/tests.js.map +1 -1
- package/lib/plugin/text-editors.d.ts +2 -0
- package/lib/plugin/text-editors.d.ts.map +1 -1
- package/lib/plugin/text-editors.js +6 -0
- package/lib/plugin/text-editors.js.map +1 -1
- package/lib/plugin/type-converters.d.ts +10 -1
- package/lib/plugin/type-converters.d.ts.map +1 -1
- package/lib/plugin/type-converters.js +52 -12
- package/lib/plugin/type-converters.js.map +1 -1
- package/lib/plugin/types-impl.d.ts +26 -5
- package/lib/plugin/types-impl.d.ts.map +1 -1
- package/lib/plugin/types-impl.js +188 -184
- package/lib/plugin/types-impl.js.map +1 -1
- package/lib/plugin/webview-views.d.ts.map +1 -1
- package/lib/plugin/webview-views.js +2 -1
- package/lib/plugin/webview-views.js.map +1 -1
- package/lib/plugin/webviews.d.ts +23 -6
- package/lib/plugin/webviews.d.ts.map +1 -1
- package/lib/plugin/webviews.js +64 -15
- package/lib/plugin/webviews.js.map +1 -1
- package/lib/plugin/workspace.d.ts +4 -3
- package/lib/plugin/workspace.d.ts.map +1 -1
- package/lib/plugin/workspace.js +32 -6
- package/lib/plugin/workspace.js.map +1 -1
- package/package.json +31 -31
- package/src/common/plugin-api-rpc-model.ts +1 -1
- package/src/common/plugin-api-rpc.ts +75 -26
- package/src/common/plugin-ext-api-contribution.ts +38 -5
- package/src/common/plugin-protocol.ts +19 -3
- package/src/common/proxy-handler.ts +14 -1
- package/src/common/rpc-protocol.ts +41 -3
- package/src/common/uri-components.ts +1 -5
- package/src/hosted/browser/hosted-plugin.ts +49 -338
- package/src/hosted/browser/worker/debug-stub.ts +4 -3
- package/src/hosted/browser/worker/worker-env-ext.ts +5 -4
- package/src/hosted/browser/worker/worker-main.ts +103 -115
- package/src/hosted/browser/worker/worker-plugin-module.ts +80 -0
- package/src/hosted/common/hosted-plugin.ts +456 -0
- package/src/hosted/node/hosted-plugin-deployer-handler.ts +2 -2
- package/src/hosted/node/hosted-plugin-process.ts +4 -4
- package/src/hosted/node/plugin-ext-hosted-backend-module.ts +3 -1
- package/src/hosted/node/plugin-host-module.ts +69 -0
- package/src/hosted/node/plugin-host-rpc.ts +232 -73
- package/src/hosted/node/plugin-host.ts +9 -7
- package/src/hosted/node/plugin-reader.ts +3 -0
- package/src/hosted/node/plugin-service.ts +21 -4
- package/src/hosted/node/scanners/file-plugin-uri-factory.ts +1 -1
- package/src/hosted/node/scanners/scanner-theia.ts +54 -14
- package/src/main/browser/authentication-main.ts +3 -1
- package/src/main/browser/command-registry-main.ts +7 -0
- package/src/main/browser/comments/comments-contribution.ts +7 -3
- package/src/main/browser/comments/comments-main.ts +2 -2
- package/src/main/browser/custom-editors/custom-editor-opener.tsx +2 -2
- package/src/main/browser/custom-editors/custom-editor-widget.ts +3 -1
- package/src/main/browser/custom-editors/custom-editors-main.ts +1 -1
- package/src/main/browser/data-transfer/data-transfer-type-converters.ts +4 -6
- package/src/main/browser/documents-main.ts +4 -0
- package/src/main/browser/editors-and-documents-main.ts +27 -5
- package/src/main/browser/env-main.ts +1 -28
- package/src/main/browser/file-system-main-impl.ts +9 -5
- package/src/main/browser/languages-main.ts +9 -6
- package/src/main/browser/main-context.ts +7 -13
- package/src/main/browser/menus/menus-contribution-handler.ts +9 -4
- package/src/main/browser/menus/plugin-menu-command-adapter.ts +4 -1
- package/src/main/browser/menus/vscode-theia-menu-mappings.ts +10 -2
- package/src/main/browser/message-registry-main.ts +10 -23
- package/src/main/browser/notebooks/notebook-documents-and-editors-main.ts +5 -8
- package/src/main/browser/notebooks/notebook-documents-main.ts +20 -5
- package/src/main/browser/notebooks/notebook-kernels-main.ts +61 -15
- package/src/main/browser/notebooks/notebooks-main.ts +41 -12
- package/src/main/browser/notebooks/renderers/cell-output-webview.tsx +117 -47
- package/src/main/browser/notebooks/renderers/output-webview-internal.ts +123 -15
- package/src/main/browser/notebooks/renderers/webview-communication.ts +14 -3
- package/src/main/browser/notification-main.ts +4 -64
- package/src/main/browser/plugin-contribution-handler.ts +9 -1
- package/src/main/browser/plugin-ext-frontend-module.ts +9 -2
- package/src/main/browser/plugin-icon-service.ts +8 -72
- package/src/main/browser/quick-open-main.ts +82 -30
- package/src/main/browser/scm-main.ts +1 -1
- package/src/main/browser/selection-provider-command.ts +1 -2
- package/src/main/browser/terminal-main.ts +48 -2
- package/src/main/browser/test-main.ts +11 -2
- package/src/main/browser/text-editor-main.ts +7 -1
- package/src/main/browser/text-editors-main.ts +40 -13
- package/src/main/browser/theme-icon-override.ts +13 -19
- package/src/main/browser/view/plugin-tree-view-node-label-provider.ts +1 -1
- package/src/main/browser/view/plugin-view-registry.ts +26 -8
- package/src/main/browser/view/plugin-view-widget.ts +0 -1
- package/src/main/browser/view/tree-view-widget.tsx +2 -3
- package/src/main/browser/webview/pre/main.js +2 -2
- package/src/main/browser/webview/webview-context-keys.ts +17 -4
- package/src/main/browser/webview/webview-secondary-window-support.ts +47 -0
- package/src/main/browser/webview/webview-widget-factory.ts +2 -1
- package/src/main/browser/webview/webview.ts +2 -0
- package/src/main/browser/webviews-main.ts +7 -2
- package/src/main/common/basic-message-registry-main.ts +53 -0
- package/src/main/common/basic-notification-main.ts +86 -0
- package/src/main/common/env-main.ts +44 -0
- package/src/main/node/errors.spec.ts +2 -2
- package/src/main/node/handlers/plugin-theia-directory-handler.ts +38 -16
- package/src/main/node/handlers/plugin-theia-file-handler.ts +1 -1
- package/src/main/node/plugin-deployer-impl.ts +5 -1
- package/src/main/node/plugins-key-value-storage.ts +1 -1
- package/src/plugin/clipboard-ext.ts +9 -3
- package/src/plugin/custom-editors.ts +1 -1
- package/src/plugin/debug/debug-ext.ts +13 -4
- package/src/plugin/dialogs.ts +1 -1
- package/src/plugin/documents.ts +2 -2
- package/src/plugin/editors-and-documents.ts +5 -3
- package/src/plugin/env.ts +22 -6
- package/src/plugin/file-system-ext-impl.ts +15 -2
- package/src/plugin/known-commands.ts +1 -0
- package/src/plugin/languages/diagnostics.ts +2 -2
- package/src/plugin/languages/link-provider.ts +3 -1
- package/src/plugin/localization-ext.ts +8 -3
- package/src/plugin/markdown-string.ts +3 -3
- package/src/plugin/message-registry.ts +7 -2
- package/src/plugin/node/debug/debug.spec.ts +5 -1
- package/src/plugin/node/env-node-ext.ts +7 -12
- package/src/plugin/node/plugin-container-module.ts +165 -0
- package/src/plugin/notebook/notebook-document.ts +14 -1
- package/src/plugin/notebook/notebook-kernels.ts +45 -32
- package/src/plugin/notebook/notebook-renderers.ts +0 -1
- package/src/plugin/notebook/notebooks.ts +39 -2
- package/src/plugin/plugin-context.ts +30 -6
- package/src/plugin/plugin-manager.ts +99 -45
- package/src/plugin/plugin-storage.ts +22 -4
- package/src/plugin/preference-registry.spec.ts +6 -1
- package/src/plugin/preference-registry.ts +17 -11
- package/src/plugin/quick-open.ts +13 -28
- package/src/plugin/secrets-ext.ts +25 -5
- package/src/plugin/terminal-ext.ts +26 -5
- package/src/plugin/tests.ts +33 -4
- package/src/plugin/text-editors.ts +9 -2
- package/src/plugin/type-converters.ts +49 -13
- package/src/plugin/types-impl.ts +36 -7
- package/src/plugin/webview-views.ts +2 -1
- package/src/plugin/webviews.ts +51 -16
- package/src/plugin/workspace.ts +14 -4
|
@@ -58,6 +58,16 @@ export interface PreloadContext {
|
|
|
58
58
|
readonly isWorkspaceTrusted: boolean;
|
|
59
59
|
readonly rendererData: readonly webviewCommunication.RendererMetadata[];
|
|
60
60
|
readonly renderOptions: RenderOptions;
|
|
61
|
+
readonly staticPreloadsData: readonly string[];
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
interface KernelPreloadContext {
|
|
65
|
+
readonly onDidReceiveKernelMessage: Event<unknown>;
|
|
66
|
+
postKernelMessage(data: unknown): void;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
interface KernelPreloadModule {
|
|
70
|
+
activate(ctx: KernelPreloadContext): Promise<void> | void;
|
|
61
71
|
}
|
|
62
72
|
|
|
63
73
|
export async function outputWebviewPreload(ctx: PreloadContext): Promise<void> {
|
|
@@ -98,6 +108,36 @@ export async function outputWebviewPreload(ctx: PreloadContext): Promise<void> {
|
|
|
98
108
|
|
|
99
109
|
const settingChange: EmitterLike<RenderOptions> = createEmitter<RenderOptions>();
|
|
100
110
|
|
|
111
|
+
const onDidReceiveKernelMessage = createEmitter<unknown>();
|
|
112
|
+
|
|
113
|
+
function createKernelContext(): KernelPreloadContext {
|
|
114
|
+
return Object.freeze({
|
|
115
|
+
onDidReceiveKernelMessage: onDidReceiveKernelMessage.event,
|
|
116
|
+
postKernelMessage: (data: unknown) => {
|
|
117
|
+
theia.postMessage({ type: 'customKernelMessage', message: data });
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
async function runKernelPreload(url: string): Promise<void> {
|
|
123
|
+
try {
|
|
124
|
+
return activateModuleKernelPreload(url);
|
|
125
|
+
} catch (e) {
|
|
126
|
+
console.error(e);
|
|
127
|
+
throw e;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
async function activateModuleKernelPreload(url: string): Promise<void> {
|
|
132
|
+
const baseUri = window.location.href.replace(/\/webview\/index\.html.*/, '');
|
|
133
|
+
const module: KernelPreloadModule = (await __import(`${baseUri}/${url}`)) as KernelPreloadModule;
|
|
134
|
+
if (!module.activate) {
|
|
135
|
+
console.error(`Notebook preload '${url}' was expected to be a module but it does not export an 'activate' function`);
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
return module.activate(createKernelContext());
|
|
139
|
+
}
|
|
140
|
+
|
|
101
141
|
class Output {
|
|
102
142
|
readonly outputId: string;
|
|
103
143
|
renderedItem?: rendererApi.OutputItem;
|
|
@@ -114,7 +154,7 @@ export async function outputWebviewPreload(ctx: PreloadContext): Promise<void> {
|
|
|
114
154
|
this.element.style.paddingRight = '10px';
|
|
115
155
|
this.element.id = output.id;
|
|
116
156
|
document.body.appendChild(this.element);
|
|
117
|
-
|
|
157
|
+
this.outputId = output.id;
|
|
118
158
|
this.allItems = items;
|
|
119
159
|
}
|
|
120
160
|
|
|
@@ -134,7 +174,7 @@ export async function outputWebviewPreload(ctx: PreloadContext): Promise<void> {
|
|
|
134
174
|
}
|
|
135
175
|
}
|
|
136
176
|
|
|
137
|
-
const outputs =
|
|
177
|
+
const outputs: Output[] = [];
|
|
138
178
|
|
|
139
179
|
class Renderer {
|
|
140
180
|
|
|
@@ -160,6 +200,10 @@ export async function outputWebviewPreload(ctx: PreloadContext): Promise<void> {
|
|
|
160
200
|
if (this.rendererApi) {
|
|
161
201
|
return this.rendererApi;
|
|
162
202
|
}
|
|
203
|
+
|
|
204
|
+
// Preloads need to be loaded before loading renderers.
|
|
205
|
+
await kernelPreloads.waitForAllCurrent();
|
|
206
|
+
|
|
163
207
|
const baseUri = window.location.href.replace(/\/webview\/index\.html.*/, '');
|
|
164
208
|
const rendererModule = await __import(`${baseUri}/${this.data.entrypoint.uri}`) as { activate: rendererApi.ActivationFunction };
|
|
165
209
|
this.rendererApi = await rendererModule.activate(this.createRendererContext());
|
|
@@ -196,7 +240,9 @@ export async function outputWebviewPreload(ctx: PreloadContext): Promise<void> {
|
|
|
196
240
|
|
|
197
241
|
if (this.data.requiresMessaging) {
|
|
198
242
|
context.onDidReceiveMessage = this.onMessageEvent.event;
|
|
199
|
-
context.postMessage = message =>
|
|
243
|
+
context.postMessage = message => {
|
|
244
|
+
theia.postMessage({ type: 'customRendererMessage', rendererId: this.data.id, message });
|
|
245
|
+
};
|
|
200
246
|
}
|
|
201
247
|
|
|
202
248
|
return Object.freeze(context);
|
|
@@ -314,10 +360,17 @@ export async function outputWebviewPreload(ctx: PreloadContext): Promise<void> {
|
|
|
314
360
|
// we need to check for all images are loaded. Otherwise we can't determine the correct height of the output
|
|
315
361
|
const images = Array.from(document.images);
|
|
316
362
|
if (images.length > 0) {
|
|
317
|
-
Promise.all(images.filter(img => !img.complete).map(img => new Promise(resolve => { img.onload = img.onerror = resolve; }))).then(() =>
|
|
318
|
-
theia.postMessage(<webviewCommunication.OnDidRenderOutput>{ type: 'didRenderOutput', contentHeight: document.body.clientHeight })
|
|
363
|
+
Promise.all(images.filter(img => !img.complete).map(img => new Promise(resolve => { img.onload = img.onerror = resolve; }))).then(() => {
|
|
364
|
+
theia.postMessage(<webviewCommunication.OnDidRenderOutput>{ type: 'didRenderOutput', contentHeight: document.body.clientHeight });
|
|
365
|
+
new ResizeObserver(() =>
|
|
366
|
+
theia.postMessage(<webviewCommunication.OnDidRenderOutput>{ type: 'didRenderOutput', contentHeight: document.body.clientHeight }))
|
|
367
|
+
.observe(document.body);
|
|
368
|
+
});
|
|
319
369
|
} else {
|
|
320
370
|
theia.postMessage(<webviewCommunication.OnDidRenderOutput>{ type: 'didRenderOutput', contentHeight: document.body.clientHeight });
|
|
371
|
+
new ResizeObserver(() =>
|
|
372
|
+
theia.postMessage(<webviewCommunication.OnDidRenderOutput>{ type: 'didRenderOutput', contentHeight: document.body.clientHeight }))
|
|
373
|
+
.observe(document.body);
|
|
321
374
|
}
|
|
322
375
|
|
|
323
376
|
}
|
|
@@ -378,15 +431,50 @@ export async function outputWebviewPreload(ctx: PreloadContext): Promise<void> {
|
|
|
378
431
|
}
|
|
379
432
|
}();
|
|
380
433
|
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
434
|
+
const kernelPreloads = new class {
|
|
435
|
+
private readonly preloads = new Map<string /* uri */, Promise<unknown>>();
|
|
436
|
+
|
|
437
|
+
/**
|
|
438
|
+
* Returns a promise that resolves when the given preload is activated.
|
|
439
|
+
*/
|
|
440
|
+
public waitFor(uri: string): Promise<unknown> {
|
|
441
|
+
return this.preloads.get(uri) || Promise.resolve(new Error(`Preload not ready: ${uri}`));
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
/**
|
|
445
|
+
* Loads a preload.
|
|
446
|
+
* @param uri URI to load from
|
|
447
|
+
* @param originalUri URI to show in an error message if the preload is invalid.
|
|
448
|
+
*/
|
|
449
|
+
public load(uri: string): Promise<unknown> {
|
|
450
|
+
const promise = Promise.all([
|
|
451
|
+
runKernelPreload(uri),
|
|
452
|
+
this.waitForAllCurrent(),
|
|
453
|
+
]);
|
|
454
|
+
|
|
455
|
+
this.preloads.set(uri, promise);
|
|
456
|
+
return promise;
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
/**
|
|
460
|
+
* Returns a promise that waits for all currently-registered preloads to
|
|
461
|
+
* activate before resolving.
|
|
462
|
+
*/
|
|
463
|
+
public waitForAllCurrent(): Promise<unknown[]> {
|
|
464
|
+
return Promise.all([...this.preloads.values()].map(p => p.catch(err => err)));
|
|
465
|
+
}
|
|
466
|
+
};
|
|
467
|
+
|
|
468
|
+
await Promise.all(ctx.staticPreloadsData.map(preload => kernelPreloads.load(preload)));
|
|
469
|
+
|
|
470
|
+
function clearOutput(output: Output): void {
|
|
471
|
+
output.clear();
|
|
472
|
+
output.element.remove();
|
|
385
473
|
}
|
|
386
474
|
|
|
387
475
|
function outputsChanged(changedEvent: webviewCommunication.OutputChangedMessage): void {
|
|
388
|
-
for (const
|
|
389
|
-
clearOutput(
|
|
476
|
+
for (const output of outputs.splice(changedEvent.deleteStart ?? 0, changedEvent.deleteCount ?? 0)) {
|
|
477
|
+
clearOutput(output);
|
|
390
478
|
}
|
|
391
479
|
|
|
392
480
|
for (const outputData of changedEvent.newOutputs ?? []) {
|
|
@@ -410,7 +498,7 @@ export async function outputWebviewPreload(ctx: PreloadContext): Promise<void> {
|
|
|
410
498
|
}));
|
|
411
499
|
|
|
412
500
|
const output = new Output(outputData, apiItems);
|
|
413
|
-
outputs.
|
|
501
|
+
outputs.push(output);
|
|
414
502
|
|
|
415
503
|
renderers.render(output, undefined, undefined, new AbortController().signal);
|
|
416
504
|
}
|
|
@@ -454,7 +542,6 @@ export async function outputWebviewPreload(ctx: PreloadContext): Promise<void> {
|
|
|
454
542
|
|
|
455
543
|
window.addEventListener('message', async rawEvent => {
|
|
456
544
|
const event = rawEvent as ({ data: webviewCommunication.ToWebviewMessage });
|
|
457
|
-
|
|
458
545
|
switch (event.data.type) {
|
|
459
546
|
case 'updateRenderers':
|
|
460
547
|
renderers.updateRendererData(event.data.rendererData);
|
|
@@ -466,12 +553,33 @@ export async function outputWebviewPreload(ctx: PreloadContext): Promise<void> {
|
|
|
466
553
|
renderers.getRenderer(event.data.rendererId)?.receiveMessage(event.data.message);
|
|
467
554
|
break;
|
|
468
555
|
case 'changePreferredMimetype':
|
|
469
|
-
|
|
470
|
-
|
|
556
|
+
const outputId = event.data.outputId;
|
|
557
|
+
const index = outputs.findIndex(output => output.outputId === outputId);
|
|
558
|
+
outputs.splice(index, 1);
|
|
559
|
+
clearOutput(outputs.splice(index, 1)[0]);
|
|
560
|
+
renderers.render(outputs[index], event.data.mimeType, undefined, new AbortController().signal);
|
|
561
|
+
break;
|
|
562
|
+
case 'customKernelMessage':
|
|
563
|
+
onDidReceiveKernelMessage.fire(event.data.message);
|
|
564
|
+
break;
|
|
565
|
+
case 'preload': {
|
|
566
|
+
const resources = event.data.resources;
|
|
567
|
+
for (const uri of resources) {
|
|
568
|
+
kernelPreloads.load(uri);
|
|
569
|
+
}
|
|
471
570
|
break;
|
|
571
|
+
}
|
|
472
572
|
}
|
|
473
573
|
});
|
|
474
574
|
window.addEventListener('wheel', handleWheel);
|
|
475
575
|
|
|
576
|
+
(document.head as HTMLHeadElement & { originalAppendChild: typeof document.head.appendChild }).originalAppendChild = document.head.appendChild;
|
|
577
|
+
(document.head as HTMLHeadElement & { originalAppendChild: typeof document.head.appendChild }).appendChild = function appendChild<T extends Node>(node: T): T {
|
|
578
|
+
if (node instanceof HTMLScriptElement && node.src.includes('webviewuuid')) {
|
|
579
|
+
node.src = node.src.replace('webviewuuid', location.hostname.split('.')[0]);
|
|
580
|
+
}
|
|
581
|
+
return this.originalAppendChild(node);
|
|
582
|
+
};
|
|
583
|
+
|
|
476
584
|
theia.postMessage(<webviewCommunication.WebviewInitialized>{ type: 'initialized' });
|
|
477
585
|
}
|
|
@@ -39,7 +39,8 @@ export interface UpdateRenderersMessage {
|
|
|
39
39
|
export interface OutputChangedMessage {
|
|
40
40
|
readonly type: 'outputChanged';
|
|
41
41
|
readonly newOutputs?: Output[];
|
|
42
|
-
readonly
|
|
42
|
+
readonly deleteStart?: number;
|
|
43
|
+
readonly deleteCount?: number;
|
|
43
44
|
}
|
|
44
45
|
|
|
45
46
|
export interface ChangePreferredMimetypeMessage {
|
|
@@ -48,7 +49,17 @@ export interface ChangePreferredMimetypeMessage {
|
|
|
48
49
|
readonly mimeType: string;
|
|
49
50
|
}
|
|
50
51
|
|
|
51
|
-
export
|
|
52
|
+
export interface KernelMessage {
|
|
53
|
+
readonly type: 'customKernelMessage';
|
|
54
|
+
readonly message: unknown;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export interface PreloadMessage {
|
|
58
|
+
readonly type: 'preload';
|
|
59
|
+
readonly resources: string[];
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export type ToWebviewMessage = UpdateRenderersMessage | OutputChangedMessage | ChangePreferredMimetypeMessage | CustomRendererMessage | KernelMessage | PreloadMessage;
|
|
52
63
|
|
|
53
64
|
export interface WebviewInitialized {
|
|
54
65
|
readonly type: 'initialized';
|
|
@@ -65,7 +76,7 @@ export interface WheelMessage {
|
|
|
65
76
|
readonly deltaX: number;
|
|
66
77
|
}
|
|
67
78
|
|
|
68
|
-
export type FromWebviewMessage = WebviewInitialized | OnDidRenderOutput | WheelMessage | CustomRendererMessage;
|
|
79
|
+
export type FromWebviewMessage = WebviewInitialized | OnDidRenderOutput | WheelMessage | CustomRendererMessage | KernelMessage;
|
|
69
80
|
|
|
70
81
|
export interface Output {
|
|
71
82
|
id: string
|
|
@@ -14,73 +14,13 @@
|
|
|
14
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
|
-
import {
|
|
18
|
-
import { ProgressService, Progress, ProgressMessage } from '@theia/core/lib/common';
|
|
17
|
+
import { MAIN_RPC_CONTEXT } from '../../common';
|
|
19
18
|
import { interfaces } from '@theia/core/shared/inversify';
|
|
20
19
|
import { RPCProtocol } from '../../common/rpc-protocol';
|
|
21
|
-
import {
|
|
22
|
-
|
|
23
|
-
export class NotificationMainImpl implements NotificationMain, Disposable {
|
|
24
|
-
private readonly progressService: ProgressService;
|
|
25
|
-
private readonly progressMap = new Map<string, Progress>();
|
|
26
|
-
private readonly progress2Work = new Map<string, number>();
|
|
27
|
-
private readonly proxy: NotificationExt;
|
|
28
|
-
|
|
29
|
-
protected readonly toDispose = new DisposableCollection(
|
|
30
|
-
Disposable.create(() => { /* mark as not disposed */ })
|
|
31
|
-
);
|
|
20
|
+
import { BasicNotificationMainImpl } from '../common/basic-notification-main';
|
|
32
21
|
|
|
22
|
+
export class NotificationMainImpl extends BasicNotificationMainImpl {
|
|
33
23
|
constructor(rpc: RPCProtocol, container: interfaces.Container) {
|
|
34
|
-
|
|
35
|
-
this.proxy = rpc.getProxy(MAIN_RPC_CONTEXT.NOTIFICATION_EXT);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
dispose(): void {
|
|
39
|
-
this.toDispose.dispose();
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
async $startProgress(options: NotificationMain.StartProgressOptions): Promise<string> {
|
|
43
|
-
const onDidCancel = () => {
|
|
44
|
-
// If the map does not contain current id, it has already stopped and should not be cancelled
|
|
45
|
-
if (this.progressMap.has(id)) {
|
|
46
|
-
this.proxy.$acceptProgressCanceled(id);
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
const progressMessage = this.mapOptions(options);
|
|
51
|
-
const progress = await this.progressService.showProgress(progressMessage, onDidCancel);
|
|
52
|
-
const id = progress.id;
|
|
53
|
-
this.progressMap.set(id, progress);
|
|
54
|
-
this.progress2Work.set(id, 0);
|
|
55
|
-
if (this.toDispose.disposed) {
|
|
56
|
-
this.$stopProgress(id);
|
|
57
|
-
} else {
|
|
58
|
-
this.toDispose.push(Disposable.create(() => this.$stopProgress(id)));
|
|
59
|
-
}
|
|
60
|
-
return id;
|
|
61
|
-
}
|
|
62
|
-
protected mapOptions(options: NotificationMain.StartProgressOptions): ProgressMessage {
|
|
63
|
-
const { title, location, cancellable } = options;
|
|
64
|
-
return { text: title, options: { location, cancelable: cancellable } };
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
$stopProgress(id: string): void {
|
|
68
|
-
const progress = this.progressMap.get(id);
|
|
69
|
-
|
|
70
|
-
if (progress) {
|
|
71
|
-
this.progressMap.delete(id);
|
|
72
|
-
this.progress2Work.delete(id);
|
|
73
|
-
progress.cancel();
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
$updateProgress(id: string, item: NotificationMain.ProgressReport): void {
|
|
78
|
-
const progress = this.progressMap.get(id);
|
|
79
|
-
if (!progress) {
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
const done = Math.min((this.progress2Work.get(id) || 0) + (item.increment || 0), 100);
|
|
83
|
-
this.progress2Work.set(id, done);
|
|
84
|
-
progress.report({ message: item.message, work: done ? { done, total: 100 } : undefined });
|
|
24
|
+
super(rpc, container, MAIN_RPC_CONTEXT.NOTIFICATION_EXT);
|
|
85
25
|
}
|
|
86
26
|
}
|
|
@@ -47,13 +47,13 @@ import { PluginIconService } from './plugin-icon-service';
|
|
|
47
47
|
import { PluginIconThemeService } from './plugin-icon-theme-service';
|
|
48
48
|
import { ContributionProvider } from '@theia/core/lib/common';
|
|
49
49
|
import * as monaco from '@theia/monaco-editor-core';
|
|
50
|
-
import { ThemeIcon } from '@theia/monaco-editor-core/esm/vs/platform/theme/common/themeService';
|
|
51
50
|
import { ContributedTerminalProfileStore, TerminalProfileStore } from '@theia/terminal/lib/browser/terminal-profile-service';
|
|
52
51
|
import { TerminalWidget } from '@theia/terminal/lib/browser/base/terminal-widget';
|
|
53
52
|
import { TerminalService } from '@theia/terminal/lib/browser/base/terminal-service';
|
|
54
53
|
import { PluginTerminalRegistry } from './plugin-terminal-registry';
|
|
55
54
|
import { ContextKeyService } from '@theia/core/lib/browser/context-key-service';
|
|
56
55
|
import { LanguageService } from '@theia/core/lib/browser/language-service';
|
|
56
|
+
import { ThemeIcon } from '@theia/monaco-editor-core/esm/vs/base/common/themables';
|
|
57
57
|
|
|
58
58
|
@injectable()
|
|
59
59
|
export class PluginContributionHandler {
|
|
@@ -447,6 +447,14 @@ export class PluginContributionHandler {
|
|
|
447
447
|
}
|
|
448
448
|
}
|
|
449
449
|
|
|
450
|
+
if (contributions.notebookPreload) {
|
|
451
|
+
for (const preload of contributions.notebookPreload) {
|
|
452
|
+
pushContribution(`notebookPreloads.${preload.type}:${preload.entrypoint}`,
|
|
453
|
+
() => this.notebookRendererRegistry.registerStaticNotebookPreload(preload.type, preload.entrypoint, PluginPackage.toPluginUrl(plugin.metadata.model, ''))
|
|
454
|
+
);
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
|
|
450
458
|
return toDispose;
|
|
451
459
|
}
|
|
452
460
|
|
|
@@ -88,6 +88,9 @@ import { TabBarToolbarContribution } from '@theia/core/lib/browser/shell/tab-bar
|
|
|
88
88
|
import { CellOutputWebviewFactory } from '@theia/notebook/lib/browser';
|
|
89
89
|
import { CellOutputWebviewImpl, createCellOutputWebviewContainer } from './notebooks/renderers/cell-output-webview';
|
|
90
90
|
import { NotebookCellModel } from '@theia/notebook/lib/browser/view-model/notebook-cell-model';
|
|
91
|
+
import { NotebookModel } from '@theia/notebook/lib/browser/view-model/notebook-model';
|
|
92
|
+
import { ArgumentProcessorContribution } from './command-registry-main';
|
|
93
|
+
import { WebviewSecondaryWindowSupport } from './webview/webview-secondary-window-support';
|
|
91
94
|
|
|
92
95
|
export default new ContainerModule((bind, unbind, isBound, rebind) => {
|
|
93
96
|
|
|
@@ -185,6 +188,8 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => {
|
|
|
185
188
|
bind(WebviewWidgetFactory).toDynamicValue(ctx => new WebviewWidgetFactory(ctx.container)).inSingletonScope();
|
|
186
189
|
bind(WidgetFactory).toService(WebviewWidgetFactory);
|
|
187
190
|
bind(WebviewContextKeys).toSelf().inSingletonScope();
|
|
191
|
+
bind(WebviewSecondaryWindowSupport).toSelf().inSingletonScope();
|
|
192
|
+
bind(FrontendApplicationContribution).toService(WebviewSecondaryWindowSupport);
|
|
188
193
|
bind(FrontendApplicationContribution).toService(WebviewContextKeys);
|
|
189
194
|
|
|
190
195
|
bind(CustomEditorContribution).toSelf().inSingletonScope();
|
|
@@ -262,7 +267,9 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => {
|
|
|
262
267
|
return provider.createProxy<LanguagePackService>(languagePackServicePath);
|
|
263
268
|
}).inSingletonScope();
|
|
264
269
|
|
|
265
|
-
bind(CellOutputWebviewFactory).toFactory(ctx => async (cell: NotebookCellModel) =>
|
|
266
|
-
createCellOutputWebviewContainer(ctx.container, cell).getAsync(CellOutputWebviewImpl)
|
|
270
|
+
bind(CellOutputWebviewFactory).toFactory(ctx => async (cell: NotebookCellModel, notebook: NotebookModel) =>
|
|
271
|
+
createCellOutputWebviewContainer(ctx.container, cell, notebook).getAsync(CellOutputWebviewImpl)
|
|
267
272
|
);
|
|
273
|
+
|
|
274
|
+
bindContributionProvider(bind, ArgumentProcessorContribution);
|
|
268
275
|
});
|
|
@@ -14,18 +14,13 @@
|
|
|
14
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
|
-
import { asCSSPropertyValue } from '@theia/monaco-editor-core/esm/vs/base/browser/dom';
|
|
18
17
|
import { Endpoint } from '@theia/core/lib/browser';
|
|
19
18
|
import { Disposable, DisposableCollection } from '@theia/core/lib/common/disposable';
|
|
20
|
-
import { getIconRegistry } from '@theia/monaco-editor-core/esm/vs/platform/theme/common/iconRegistry';
|
|
21
19
|
import { inject, injectable } from '@theia/core/shared/inversify';
|
|
22
20
|
import { URI } from '@theia/core/shared/vscode-uri';
|
|
23
|
-
import { IconFontDefinition, IconContribution as Icon } from '@theia/core/lib/browser/icon-registry';
|
|
24
21
|
import { MonacoIconRegistry } from '@theia/monaco/lib/browser/monaco-icon-registry';
|
|
25
22
|
import * as path from 'path';
|
|
26
23
|
import { IconContribution, DeployedPlugin, IconDefinition } from '../../common/plugin-protocol';
|
|
27
|
-
import { IThemeService } from '@theia/monaco-editor-core/esm/vs/platform/theme/common/themeService';
|
|
28
|
-
import { UnthemedProductIconTheme } from '@theia/monaco-editor-core/esm/vs/platform/theme/browser/iconsStyleSheet';
|
|
29
24
|
|
|
30
25
|
@injectable()
|
|
31
26
|
export class PluginIconService implements Disposable {
|
|
@@ -45,29 +40,19 @@ export class PluginIconService implements Disposable {
|
|
|
45
40
|
} else {
|
|
46
41
|
this.registerRegularIcon(contribution, defaultIcon.id);
|
|
47
42
|
}
|
|
48
|
-
this.updateStyle(contribution);
|
|
49
43
|
return Disposable.NULL;
|
|
50
44
|
}
|
|
51
45
|
|
|
52
|
-
updateStyle(contribution: IconContribution): void {
|
|
53
|
-
this.updateStyleElement();
|
|
54
|
-
const css = this.getCSS(contribution);
|
|
55
|
-
if (css) {
|
|
56
|
-
this.styleElement.innerText = css;
|
|
57
|
-
}
|
|
58
|
-
const toRemoveStyleElement = Disposable.create(() => this.styleElement.remove());
|
|
59
|
-
this.toDispose.push(toRemoveStyleElement);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
46
|
dispose(): void {
|
|
63
47
|
this.toDispose.dispose();
|
|
64
48
|
}
|
|
65
49
|
|
|
66
50
|
protected registerFontIcon(contribution: IconContribution, defaultIcon: IconDefinition): void {
|
|
67
|
-
const location = defaultIcon.location;
|
|
68
|
-
const format = getFileExtension(location);
|
|
69
|
-
const fontId = getFontId(contribution.extensionId, location);
|
|
70
|
-
|
|
51
|
+
const location = this.toPluginUrl(contribution.extensionId, getIconRelativePath(URI.parse(defaultIcon.location).path));
|
|
52
|
+
const format = getFileExtension(location.path);
|
|
53
|
+
const fontId = getFontId(contribution.extensionId, location.path);
|
|
54
|
+
|
|
55
|
+
const definition = this.iconRegistry.registerIconFont(fontId, { src: [{ location: location, format }] });
|
|
71
56
|
this.iconRegistry.registerIcon(contribution.id, {
|
|
72
57
|
fontCharacter: defaultIcon.fontCharacter,
|
|
73
58
|
font: {
|
|
@@ -81,59 +66,10 @@ export class PluginIconService implements Disposable {
|
|
|
81
66
|
this.iconRegistry.registerIcon(contribution.id, { id: defaultIconId }, contribution.description);
|
|
82
67
|
}
|
|
83
68
|
|
|
84
|
-
protected
|
|
85
|
-
|
|
86
|
-
const styleElement = document.createElement('style');
|
|
87
|
-
styleElement.type = 'text/css';
|
|
88
|
-
styleElement.media = 'screen';
|
|
89
|
-
styleElement.id = 'contributedIconsStyles';
|
|
90
|
-
document.head.appendChild(styleElement);
|
|
91
|
-
this.styleElement = styleElement;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
protected getCSS(iconContribution: IconContribution, themeService?: IThemeService): string | undefined {
|
|
95
|
-
const iconRegistry = getIconRegistry();
|
|
96
|
-
const productIconTheme = themeService ? themeService.getProductIconTheme() : new UnthemedProductIconTheme();
|
|
97
|
-
const usedFontIds: { [id: string]: IconFontDefinition } = {};
|
|
98
|
-
const formatIconRule = (contribution: Icon): string | undefined => {
|
|
99
|
-
const definition = productIconTheme.getIcon(contribution);
|
|
100
|
-
if (!definition) {
|
|
101
|
-
return undefined;
|
|
102
|
-
}
|
|
103
|
-
const fontContribution = definition.font;
|
|
104
|
-
if (fontContribution) {
|
|
105
|
-
usedFontIds[fontContribution.id] = fontContribution.definition;
|
|
106
|
-
return `.codicon-${contribution.id}:before { content: '${definition.fontCharacter}'; font-family: ${asCSSPropertyValue(iconContribution.extensionId)}; }`;
|
|
107
|
-
}
|
|
108
|
-
// default font (codicon)
|
|
109
|
-
return `.codicon-${contribution.id}:before { content: '${definition.fontCharacter}'; }`;
|
|
110
|
-
};
|
|
111
|
-
|
|
112
|
-
const rules = [];
|
|
113
|
-
for (const contribution of iconRegistry.getIcons()) {
|
|
114
|
-
const rule = formatIconRule(contribution);
|
|
115
|
-
if (rule) {
|
|
116
|
-
rules.push(rule);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
for (const id in usedFontIds) {
|
|
120
|
-
if (id) {
|
|
121
|
-
const definition = usedFontIds[id];
|
|
122
|
-
const fontWeight = definition.weight ? `font-weight: ${definition.weight};` : '';
|
|
123
|
-
const fontStyle = definition.style ? `font-style: ${definition.style};` : '';
|
|
124
|
-
const src = definition.src.map(icon =>
|
|
125
|
-
`${this.toPluginUrl(iconContribution.extensionId, getIconRelativePath(icon.location.path))} format('${icon.format}')`)
|
|
126
|
-
.join(', ');
|
|
127
|
-
rules.push(`@font-face { src: ${src}; font-family: ${asCSSPropertyValue(iconContribution.extensionId)};${fontWeight}${fontStyle} font-display: block; }`);
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
return rules.join('\n');
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
protected toPluginUrl(id: string, relativePath: string): string {
|
|
134
|
-
return `url('${new Endpoint({
|
|
69
|
+
protected toPluginUrl(id: string, relativePath: string): URI {
|
|
70
|
+
return URI.from(new Endpoint({
|
|
135
71
|
path: `hostedPlugin/${this.formatExtensionId(id)}/${encodeURIComponent(relativePath)}`
|
|
136
|
-
}).getRestUrl().
|
|
72
|
+
}).getRestUrl().toComponents());
|
|
137
73
|
}
|
|
138
74
|
|
|
139
75
|
protected formatExtensionId(id: string): string {
|