@theia/plugin-ext 1.46.1 → 1.47.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/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 +41 -20
- package/lib/common/plugin-api-rpc.d.ts.map +1 -1
- package/lib/common/plugin-api-rpc.js +1 -1
- package/lib/common/plugin-api-rpc.js.map +1 -1
- package/lib/common/plugin-protocol.d.ts +10 -0
- package/lib/common/plugin-protocol.d.ts.map +1 -1
- package/lib/common/plugin-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.js +59 -67
- 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/worker-env-ext.js +3 -11
- package/lib/hosted/browser/worker/worker-env-ext.js.map +1 -1
- package/lib/hosted/common/hosted-plugin.js +21 -29
- package/lib/hosted/common/hosted-plugin.js.map +1 -1
- 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.js +14 -22
- 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-host-rpc.js +42 -53
- package/lib/hosted/node/plugin-host-rpc.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.js +8 -16
- package/lib/hosted/node/plugin-reader.js.map +1 -1
- package/lib/hosted/node/plugin-service.js +22 -33
- package/lib/hosted/node/plugin-service.js.map +1 -1
- package/lib/hosted/node/scanners/file-plugin-uri-factory.js +2 -7
- 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.map +1 -1
- package/lib/hosted/node/scanners/scanner-theia.js +17 -19
- 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/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/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/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 -27
- 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 +1 -3
- package/lib/main/browser/main-context.js.map +1 -1
- package/lib/main/browser/menus/menus-contribution-handler.js +23 -31
- 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/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-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 +41 -4
- package/lib/main/browser/notebooks/notebook-kernels-main.js.map +1 -1
- package/lib/main/browser/notebooks/renderers/cell-output-webview.d.ts +7 -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 +79 -45
- 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 +74 -1
- package/lib/main/browser/notebooks/renderers/output-webview-internal.js.map +1 -1
- package/lib/main/browser/notebooks/renderers/webview-communication.d.ts +10 -2
- package/lib/main/browser/notebooks/renderers/webview-communication.d.ts.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 +3 -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 +51 -14
- 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/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-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 +4 -5
- package/lib/main/browser/text-editors-main.d.ts.map +1 -1
- package/lib/main/browser/text-editors-main.js +15 -9
- 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 +49 -44
- 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.js +10 -18
- 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-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.js +37 -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/workspace-main.js +2 -7
- package/lib/main/browser/workspace-main.js.map +1 -1
- 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.js +6 -14
- package/lib/main/node/handlers/plugin-theia-directory-handler.js.map +1 -1
- package/lib/main/node/handlers/plugin-theia-file-handler.js +5 -13
- 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.js +18 -26
- 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 +12 -20
- 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.js +8 -16
- 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.js +11 -19
- package/lib/plugin/debug/debug-ext.js.map +1 -1
- package/lib/plugin/editors-and-documents.js +4 -12
- package/lib/plugin/editors-and-documents.js.map +1 -1
- package/lib/plugin/env.js +12 -20
- 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.js +8 -16
- 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.js +8 -16
- package/lib/plugin/message-registry.js.map +1 -1
- package/lib/plugin/node/env-node-ext.js +5 -13
- package/lib/plugin/node/env-node-ext.js.map +1 -1
- package/lib/plugin/notebook/notebook-kernels.d.ts +5 -6
- package/lib/plugin/notebook/notebook-kernels.d.ts.map +1 -1
- package/lib/plugin/notebook/notebook-kernels.js +24 -23
- 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 +19 -0
- 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 +18 -21
- package/lib/plugin/plugin-context.js.map +1 -1
- package/lib/plugin/plugin-manager.js +23 -31
- package/lib/plugin/plugin-manager.js.map +1 -1
- package/lib/plugin/plugin-storage.js +4 -15
- package/lib/plugin/plugin-storage.js.map +1 -1
- package/lib/plugin/preference-registry.js +12 -20
- package/lib/plugin/preference-registry.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 +6 -22
- package/lib/plugin/quick-open.js.map +1 -1
- package/lib/plugin/secrets-ext.js +4 -15
- package/lib/plugin/secrets-ext.js.map +1 -1
- package/lib/plugin/terminal-ext.js +6 -17
- 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 +49 -10
- package/lib/plugin/type-converters.js.map +1 -1
- package/lib/plugin/types-impl.d.ts +2 -2
- package/lib/plugin/types-impl.d.ts.map +1 -1
- package/lib/plugin/types-impl.js +167 -180
- package/lib/plugin/types-impl.js.map +1 -1
- package/lib/plugin/webviews.d.ts +14 -1
- package/lib/plugin/webviews.d.ts.map +1 -1
- package/lib/plugin/webviews.js +32 -24
- package/lib/plugin/webviews.js.map +1 -1
- package/lib/plugin/workspace.js +12 -20
- 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 +36 -20
- package/src/common/plugin-protocol.ts +12 -1
- package/src/common/uri-components.ts +1 -5
- package/src/hosted/browser/hosted-plugin.ts +2 -2
- package/src/hosted/node/hosted-plugin-deployer-handler.ts +2 -2
- package/src/hosted/node/scanners/scanner-theia.ts +8 -2
- 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/editors-and-documents-main.ts +27 -5
- package/src/main/browser/file-system-main-impl.ts +9 -5
- package/src/main/browser/languages-main.ts +9 -5
- package/src/main/browser/main-context.ts +1 -3
- package/src/main/browser/menus/menus-contribution-handler.ts +1 -1
- 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/notebooks/notebook-documents-and-editors-main.ts +5 -8
- package/src/main/browser/notebooks/notebook-kernels-main.ts +46 -5
- package/src/main/browser/notebooks/renderers/cell-output-webview.tsx +72 -21
- package/src/main/browser/notebooks/renderers/output-webview-internal.ts +93 -2
- package/src/main/browser/notebooks/renderers/webview-communication.ts +12 -2
- package/src/main/browser/plugin-contribution-handler.ts +9 -1
- package/src/main/browser/plugin-ext-frontend-module.ts +6 -2
- package/src/main/browser/plugin-icon-service.ts +8 -72
- package/src/main/browser/quick-open-main.ts +77 -28
- package/src/main/browser/scm-main.ts +1 -1
- package/src/main/browser/selection-provider-command.ts +1 -2
- package/src/main/browser/test-main.ts +11 -2
- package/src/main/browser/text-editors-main.ts +18 -10
- 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 +21 -6
- 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/node/errors.spec.ts +2 -2
- package/src/plugin/custom-editors.ts +1 -1
- package/src/plugin/debug/debug-ext.ts +2 -2
- package/src/plugin/env.ts +3 -3
- 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/markdown-string.ts +3 -3
- package/src/plugin/node/env-node-ext.ts +2 -2
- package/src/plugin/notebook/notebook-kernels.ts +29 -29
- package/src/plugin/notebook/notebook-renderers.ts +0 -1
- package/src/plugin/notebook/notebooks.ts +20 -0
- package/src/plugin/plugin-context.ts +12 -3
- package/src/plugin/preference-registry.ts +2 -2
- package/src/plugin/quick-open.ts +10 -24
- package/src/plugin/terminal-ext.ts +1 -1
- package/src/plugin/tests.ts +33 -4
- package/src/plugin/text-editors.ts +9 -2
- package/src/plugin/type-converters.ts +45 -9
- package/src/plugin/types-impl.ts +4 -4
- package/src/plugin/webviews.ts +22 -5
|
@@ -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;
|
|
@@ -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);
|
|
@@ -385,6 +431,42 @@ export async function outputWebviewPreload(ctx: PreloadContext): Promise<void> {
|
|
|
385
431
|
}
|
|
386
432
|
}();
|
|
387
433
|
|
|
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
|
+
|
|
388
470
|
function clearOutput(output: Output): void {
|
|
389
471
|
output.clear();
|
|
390
472
|
output.element.remove();
|
|
@@ -460,7 +542,6 @@ export async function outputWebviewPreload(ctx: PreloadContext): Promise<void> {
|
|
|
460
542
|
|
|
461
543
|
window.addEventListener('message', async rawEvent => {
|
|
462
544
|
const event = rawEvent as ({ data: webviewCommunication.ToWebviewMessage });
|
|
463
|
-
|
|
464
545
|
switch (event.data.type) {
|
|
465
546
|
case 'updateRenderers':
|
|
466
547
|
renderers.updateRendererData(event.data.rendererData);
|
|
@@ -478,6 +559,16 @@ export async function outputWebviewPreload(ctx: PreloadContext): Promise<void> {
|
|
|
478
559
|
clearOutput(outputs.splice(index, 1)[0]);
|
|
479
560
|
renderers.render(outputs[index], event.data.mimeType, undefined, new AbortController().signal);
|
|
480
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
|
+
}
|
|
570
|
+
break;
|
|
571
|
+
}
|
|
481
572
|
}
|
|
482
573
|
});
|
|
483
574
|
window.addEventListener('wheel', handleWheel);
|
|
@@ -49,7 +49,17 @@ export interface ChangePreferredMimetypeMessage {
|
|
|
49
49
|
readonly mimeType: string;
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
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;
|
|
53
63
|
|
|
54
64
|
export interface WebviewInitialized {
|
|
55
65
|
readonly type: 'initialized';
|
|
@@ -66,7 +76,7 @@ export interface WheelMessage {
|
|
|
66
76
|
readonly deltaX: number;
|
|
67
77
|
}
|
|
68
78
|
|
|
69
|
-
export type FromWebviewMessage = WebviewInitialized | OnDidRenderOutput | WheelMessage | CustomRendererMessage;
|
|
79
|
+
export type FromWebviewMessage = WebviewInitialized | OnDidRenderOutput | WheelMessage | CustomRendererMessage | KernelMessage;
|
|
70
80
|
|
|
71
81
|
export interface Output {
|
|
72
82
|
id: string
|
|
@@ -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,8 @@ 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';
|
|
91
93
|
|
|
92
94
|
export default new ContainerModule((bind, unbind, isBound, rebind) => {
|
|
93
95
|
|
|
@@ -262,7 +264,9 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => {
|
|
|
262
264
|
return provider.createProxy<LanguagePackService>(languagePackServicePath);
|
|
263
265
|
}).inSingletonScope();
|
|
264
266
|
|
|
265
|
-
bind(CellOutputWebviewFactory).toFactory(ctx => async (cell: NotebookCellModel) =>
|
|
266
|
-
createCellOutputWebviewContainer(ctx.container, cell).getAsync(CellOutputWebviewImpl)
|
|
267
|
+
bind(CellOutputWebviewFactory).toFactory(ctx => async (cell: NotebookCellModel, notebook: NotebookModel) =>
|
|
268
|
+
createCellOutputWebviewContainer(ctx.container, cell, notebook).getAsync(CellOutputWebviewImpl)
|
|
267
269
|
);
|
|
270
|
+
|
|
271
|
+
bindContributionProvider(bind, ArgumentProcessorContribution);
|
|
268
272
|
});
|
|
@@ -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 {
|
|
@@ -23,39 +23,47 @@ import {
|
|
|
23
23
|
QuickOpenMain,
|
|
24
24
|
MAIN_RPC_CONTEXT,
|
|
25
25
|
TransferInputBox,
|
|
26
|
-
|
|
26
|
+
TransferQuickPickItem,
|
|
27
27
|
TransferQuickInput,
|
|
28
28
|
TransferQuickInputButton,
|
|
29
|
-
|
|
29
|
+
TransferQuickPickOptions
|
|
30
30
|
} from '../../common/plugin-api-rpc';
|
|
31
31
|
import {
|
|
32
32
|
InputOptions,
|
|
33
|
-
|
|
33
|
+
QuickInput,
|
|
34
34
|
QuickInputButton,
|
|
35
35
|
QuickInputButtonHandle,
|
|
36
|
-
QuickInputService
|
|
36
|
+
QuickInputService,
|
|
37
|
+
QuickPickItem,
|
|
38
|
+
codiconArray
|
|
37
39
|
} from '@theia/core/lib/browser';
|
|
38
40
|
import { DisposableCollection, Disposable } from '@theia/core/lib/common/disposable';
|
|
39
41
|
import { CancellationToken } from '@theia/core/lib/common/cancellation';
|
|
40
42
|
import { MonacoQuickInputService } from '@theia/monaco/lib/browser/monaco-quick-input-service';
|
|
41
43
|
import { QuickInputButtons } from '../../plugin/types-impl';
|
|
42
|
-
import { getIconPathOrClass } from '../../plugin/quick-open';
|
|
43
44
|
import * as monaco from '@theia/monaco-editor-core';
|
|
44
|
-
import {
|
|
45
|
-
import {
|
|
45
|
+
import { UriComponents } from '../../common/uri-components';
|
|
46
|
+
import { URI } from '@theia/core/shared/vscode-uri';
|
|
47
|
+
import { ThemeIcon } from '@theia/monaco-editor-core/esm/vs/base/common/themables';
|
|
48
|
+
import { isUriComponents } from '@theia/monaco-editor-core/esm/vs/base/common/uri';
|
|
46
49
|
|
|
47
50
|
export interface QuickInputSession {
|
|
48
|
-
input:
|
|
49
|
-
handlesToItems: Map<number,
|
|
51
|
+
input: QuickInput;
|
|
52
|
+
handlesToItems: Map<number, TransferQuickPickItem>;
|
|
50
53
|
}
|
|
51
54
|
|
|
55
|
+
interface IconPath {
|
|
56
|
+
dark: URI,
|
|
57
|
+
light?: URI
|
|
58
|
+
};
|
|
59
|
+
|
|
52
60
|
export class QuickOpenMainImpl implements QuickOpenMain, Disposable {
|
|
53
61
|
|
|
54
62
|
private quickInputService: QuickInputService;
|
|
55
63
|
private proxy: QuickOpenExt;
|
|
56
64
|
private delegate: MonacoQuickInputService;
|
|
57
65
|
private readonly items: Record<number, {
|
|
58
|
-
resolve(items:
|
|
66
|
+
resolve(items: QuickPickItem[]): void;
|
|
59
67
|
reject(error: Error): void;
|
|
60
68
|
}> = {};
|
|
61
69
|
|
|
@@ -71,33 +79,74 @@ export class QuickOpenMainImpl implements QuickOpenMain, Disposable {
|
|
|
71
79
|
this.toDispose.dispose();
|
|
72
80
|
}
|
|
73
81
|
|
|
74
|
-
async $show(instance: number, options:
|
|
75
|
-
const contents = new Promise<
|
|
82
|
+
async $show(instance: number, options: TransferQuickPickOptions<TransferQuickPickItem>, token: CancellationToken): Promise<number | number[] | undefined> {
|
|
83
|
+
const contents = new Promise<QuickPickItem[]>((resolve, reject) => {
|
|
76
84
|
this.items[instance] = { resolve, reject };
|
|
77
85
|
});
|
|
78
86
|
|
|
79
|
-
|
|
87
|
+
const activeItem = await options.activeItem;
|
|
88
|
+
const transformedOptions = {
|
|
80
89
|
...options,
|
|
81
90
|
onDidFocus: (el: any) => {
|
|
82
91
|
if (el) {
|
|
83
|
-
this.proxy.$onItemSelected((<
|
|
92
|
+
this.proxy.$onItemSelected(Number.parseInt((<QuickPickItem>el).id!));
|
|
84
93
|
}
|
|
85
|
-
}
|
|
94
|
+
},
|
|
95
|
+
activeItem: activeItem ? this.toQuickPickItem(activeItem) : undefined
|
|
86
96
|
};
|
|
87
97
|
|
|
88
|
-
const result = await this.delegate.pick
|
|
98
|
+
const result = await this.delegate.pick(contents, transformedOptions, token);
|
|
89
99
|
|
|
90
100
|
if (Array.isArray(result)) {
|
|
91
|
-
return result.map(({
|
|
101
|
+
return result.map(({ id }) => Number.parseInt(id!));
|
|
92
102
|
} else if (result) {
|
|
93
|
-
return result.
|
|
103
|
+
return Number.parseInt(result.id!);
|
|
94
104
|
}
|
|
95
105
|
return undefined;
|
|
96
106
|
}
|
|
97
107
|
|
|
98
|
-
|
|
108
|
+
private normalizeIconPath(path: UriComponents | { light: UriComponents; dark: UriComponents } | ThemeIcon | undefined): {
|
|
109
|
+
iconPath?: IconPath
|
|
110
|
+
iconClasses?: string[]
|
|
111
|
+
} {
|
|
112
|
+
let iconClasses;
|
|
113
|
+
if (ThemeIcon.isThemeIcon(path)) {
|
|
114
|
+
const codicon = codiconArray(path.id);
|
|
115
|
+
iconClasses = codicon;
|
|
116
|
+
}
|
|
117
|
+
let iconPath;
|
|
118
|
+
if (isUriComponents(path)) {
|
|
119
|
+
iconPath = { dark: URI.from(path) };
|
|
120
|
+
} else if (path && 'dark' in path) {
|
|
121
|
+
iconPath = { dark: URI.from(path.dark), light: URI.from(path.light) };
|
|
122
|
+
}
|
|
123
|
+
return {
|
|
124
|
+
iconPath,
|
|
125
|
+
iconClasses
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
private toQuickPickItem(item: undefined): undefined;
|
|
130
|
+
private toQuickPickItem(item: TransferQuickPickItem): QuickPickItem
|
|
131
|
+
private toQuickPickItem(item: TransferQuickPickItem | undefined): QuickPickItem | undefined {
|
|
132
|
+
if (!item) {
|
|
133
|
+
return undefined;
|
|
134
|
+
}
|
|
135
|
+
return {
|
|
136
|
+
...this.normalizeIconPath(item.iconPath),
|
|
137
|
+
type: 'item',
|
|
138
|
+
id: item.handle.toString(),
|
|
139
|
+
label: item.label,
|
|
140
|
+
description: item.description,
|
|
141
|
+
detail: item.detail,
|
|
142
|
+
alwaysShow: item.alwaysShow,
|
|
143
|
+
buttons: item.buttons ? this.convertToQuickInputButtons(item.buttons) : undefined
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
$setItems(instance: number, items: TransferQuickPickItem[]): Promise<any> {
|
|
99
148
|
if (this.items[instance]) {
|
|
100
|
-
this.items[instance].resolve(items);
|
|
149
|
+
this.items[instance].resolve(items.map(item => this.toQuickPickItem(item)));
|
|
101
150
|
delete this.items[instance];
|
|
102
151
|
}
|
|
103
152
|
return Promise.resolve();
|
|
@@ -201,17 +250,17 @@ export class QuickOpenMainImpl implements QuickOpenMain, Disposable {
|
|
|
201
250
|
quickPick.onDidAccept(() => {
|
|
202
251
|
this.proxy.$acceptOnDidAccept(sessionId);
|
|
203
252
|
});
|
|
204
|
-
quickPick.onDidChangeActive((items:
|
|
205
|
-
this.proxy.$onDidChangeActive(sessionId, items.map(item => (item
|
|
253
|
+
quickPick.onDidChangeActive((items: QuickPickItem[]) => {
|
|
254
|
+
this.proxy.$onDidChangeActive(sessionId, items.map(item => Number.parseInt(item.id!)));
|
|
206
255
|
});
|
|
207
|
-
quickPick.onDidChangeSelection((items:
|
|
208
|
-
this.proxy.$onDidChangeSelection(sessionId, items.map(item => (item
|
|
256
|
+
quickPick.onDidChangeSelection((items: QuickPickItem[]) => {
|
|
257
|
+
this.proxy.$onDidChangeSelection(sessionId, items.map(item => Number.parseInt(item.id!)));
|
|
209
258
|
});
|
|
210
259
|
quickPick.onDidTriggerButton((button: QuickInputButtonHandle) => {
|
|
211
260
|
this.proxy.$acceptOnDidTriggerButton(sessionId, button);
|
|
212
261
|
});
|
|
213
262
|
quickPick.onDidTriggerItemButton(e => {
|
|
214
|
-
this.proxy.$onDidTriggerItemButton(sessionId, (e.item
|
|
263
|
+
this.proxy.$onDidTriggerItemButton(sessionId, Number.parseInt(e.item.id!), (e.button as TransferQuickPickItem).handle);
|
|
215
264
|
});
|
|
216
265
|
quickPick.onDidChangeValue((value: string) => {
|
|
217
266
|
this.proxy.$acceptDidChangeValue(sessionId, value);
|
|
@@ -260,7 +309,7 @@ export class QuickOpenMainImpl implements QuickOpenMain, Disposable {
|
|
|
260
309
|
}
|
|
261
310
|
} else if (param === 'items') {
|
|
262
311
|
handlesToItems.clear();
|
|
263
|
-
params[param].forEach((item:
|
|
312
|
+
params[param].forEach((item: TransferQuickPickItem) => {
|
|
264
313
|
handlesToItems.set(item.handle, item);
|
|
265
314
|
});
|
|
266
315
|
(input as any)[param] = params[param];
|
|
@@ -314,9 +363,9 @@ export class QuickOpenMainImpl implements QuickOpenMain, Disposable {
|
|
|
314
363
|
return Promise.resolve(undefined);
|
|
315
364
|
}
|
|
316
365
|
|
|
317
|
-
private convertToQuickInputButtons(buttons:
|
|
366
|
+
private convertToQuickInputButtons(buttons: readonly TransferQuickInputButton[]): QuickInputButton[] {
|
|
318
367
|
return buttons.map((button, i) => ({
|
|
319
|
-
...
|
|
368
|
+
...this.normalizeIconPath(button.iconPath),
|
|
320
369
|
tooltip: button.tooltip,
|
|
321
370
|
handle: button === QuickInputButtons.Back ? -1 : i,
|
|
322
371
|
} as QuickInputButton));
|
|
@@ -41,8 +41,8 @@ import { Splice } from '../../common/arrays';
|
|
|
41
41
|
import { UriComponents } from '../../common/uri-components';
|
|
42
42
|
import { ColorRegistry } from '@theia/core/lib/browser/color-registry';
|
|
43
43
|
import { PluginSharedStyle } from './plugin-shared-style';
|
|
44
|
-
import { ThemeIcon } from '@theia/monaco-editor-core/esm/vs/platform/theme/common/themeService';
|
|
45
44
|
import { IconUrl } from '../../common';
|
|
45
|
+
import { ThemeIcon } from '@theia/monaco-editor-core/esm/vs/base/common/themables';
|
|
46
46
|
|
|
47
47
|
export class PluginScmResourceGroup implements ScmResourceGroup {
|
|
48
48
|
|
|
@@ -19,7 +19,6 @@ import { inject, injectable } from '@theia/core/shared/inversify';
|
|
|
19
19
|
import { UriAwareCommandHandler, UriCommandHandler } from '@theia/core/lib/common/uri-command-handler';
|
|
20
20
|
import URI from '@theia/core/lib/common/uri';
|
|
21
21
|
import { SelectionService } from '@theia/core';
|
|
22
|
-
import { theiaUritoUriComponents } from '../../common/uri-components';
|
|
23
22
|
|
|
24
23
|
export namespace SelectionProviderCommands {
|
|
25
24
|
export const GET_SELECTED_CONTEXT: Command = {
|
|
@@ -36,7 +35,7 @@ export class SelectionProviderCommandContribution implements CommandContribution
|
|
|
36
35
|
commands.registerCommand(SelectionProviderCommands.GET_SELECTED_CONTEXT, this.newMultiUriAwareCommandHandler({
|
|
37
36
|
isEnabled: () => true,
|
|
38
37
|
isVisible: () => false,
|
|
39
|
-
execute: (selectedUris: URI[]) => selectedUris.map(uri =>
|
|
38
|
+
execute: (selectedUris: URI[]) => selectedUris.map(uri => uri.toComponents())
|
|
40
39
|
}));
|
|
41
40
|
}
|
|
42
41
|
|
|
@@ -195,7 +195,16 @@ function itemToPath(item: TestItem): string[] {
|
|
|
195
195
|
class TestRunProfileImpl implements TestRunProfile {
|
|
196
196
|
|
|
197
197
|
label: string;
|
|
198
|
-
|
|
198
|
+
|
|
199
|
+
private _isDefault: boolean;
|
|
200
|
+
set isDefault(isDefault: boolean) {
|
|
201
|
+
this._isDefault = isDefault;
|
|
202
|
+
this.proxy.$onDidChangeDefault(this.controllerId, this.id, isDefault);
|
|
203
|
+
}
|
|
204
|
+
get isDefault(): boolean {
|
|
205
|
+
return this._isDefault;
|
|
206
|
+
}
|
|
207
|
+
|
|
199
208
|
tag: string;
|
|
200
209
|
canConfigure: boolean;
|
|
201
210
|
|
|
@@ -205,7 +214,7 @@ class TestRunProfileImpl implements TestRunProfile {
|
|
|
205
214
|
}
|
|
206
215
|
|
|
207
216
|
if ('isDefault' in update) {
|
|
208
|
-
this.
|
|
217
|
+
this._isDefault = update.isDefault!;
|
|
209
218
|
}
|
|
210
219
|
|
|
211
220
|
if ('tag' in update) {
|