@theia/plugin-ext 1.23.0-next.4 → 1.23.0-next.46
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/character-classifier.js +2 -2
- package/lib/common/character-classifier.js.map +1 -1
- package/lib/common/index.js +1 -1
- package/lib/common/objects.js +3 -3
- package/lib/common/objects.js.map +1 -1
- package/lib/common/plugin-api-rpc-model.d.ts +13 -19
- package/lib/common/plugin-api-rpc-model.d.ts.map +1 -1
- package/lib/common/plugin-api-rpc-model.js.map +1 -1
- package/lib/common/plugin-api-rpc.d.ts +33 -13
- package/lib/common/plugin-api-rpc.d.ts.map +1 -1
- package/lib/common/plugin-api-rpc.js +64 -62
- package/lib/common/plugin-api-rpc.js.map +1 -1
- package/lib/common/plugin-protocol.d.ts +8 -0
- package/lib/common/plugin-protocol.d.ts.map +1 -1
- package/lib/common/plugin-protocol.js +6 -1
- package/lib/common/plugin-protocol.js.map +1 -1
- package/lib/hosted/browser/hosted-plugin-watcher.js +1 -1
- package/lib/hosted/browser/hosted-plugin-watcher.js.map +1 -1
- package/lib/hosted/browser/hosted-plugin.d.ts +3 -2
- package/lib/hosted/browser/hosted-plugin.d.ts.map +1 -1
- package/lib/hosted/browser/hosted-plugin.js +53 -68
- package/lib/hosted/browser/hosted-plugin.js.map +1 -1
- package/lib/hosted/browser/plugin-worker.js +1 -1
- package/lib/hosted/browser/plugin-worker.js.map +1 -1
- package/lib/hosted/browser/worker/worker-main.js +14 -5
- package/lib/hosted/browser/worker/worker-main.js.map +1 -1
- package/lib/hosted/node/hosted-plugin-cli-contribution.js +1 -1
- package/lib/hosted/node/hosted-plugin-cli-contribution.js.map +1 -1
- package/lib/hosted/node/hosted-plugin-deployer-handler.d.ts +2 -0
- package/lib/hosted/node/hosted-plugin-deployer-handler.d.ts.map +1 -1
- package/lib/hosted/node/hosted-plugin-deployer-handler.js +25 -7
- package/lib/hosted/node/hosted-plugin-deployer-handler.js.map +1 -1
- package/lib/hosted/node/hosted-plugin-localization-service.js +3 -3
- package/lib/hosted/node/hosted-plugin-localization-service.js.map +1 -1
- package/lib/hosted/node/hosted-plugin-process.js +9 -9
- package/lib/hosted/node/hosted-plugin-process.js.map +1 -1
- package/lib/hosted/node/hosted-plugin.js +6 -6
- package/lib/hosted/node/hosted-plugin.js.map +1 -1
- package/lib/hosted/node/metadata-scanner.js +2 -2
- package/lib/hosted/node/metadata-scanner.js.map +1 -1
- package/lib/hosted/node/plugin-ext-hosted-backend-module.js +2 -2
- package/lib/hosted/node/plugin-ext-hosted-backend-module.js.map +1 -1
- package/lib/hosted/node/plugin-host-rpc.js +6 -6
- package/lib/hosted/node/plugin-host-rpc.js.map +1 -1
- package/lib/hosted/node/plugin-reader.d.ts.map +1 -1
- package/lib/hosted/node/plugin-reader.js +9 -8
- package/lib/hosted/node/plugin-reader.js.map +1 -1
- package/lib/hosted/node/plugin-service.js +9 -9
- package/lib/hosted/node/plugin-service.js.map +1 -1
- package/lib/hosted/node/scanners/backend-init-theia.js +2 -1
- package/lib/hosted/node/scanners/backend-init-theia.js.map +1 -1
- package/lib/hosted/node/scanners/file-plugin-uri-factory.js +1 -1
- package/lib/hosted/node/scanners/file-plugin-uri-factory.js.map +1 -1
- package/lib/hosted/node/scanners/grammars-reader.js +1 -1
- 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 +10 -8
- package/lib/hosted/node/scanners/scanner-theia.js.map +1 -1
- package/lib/hosted/node-electron/plugin-ext-hosted-electron-backend-module.js +1 -1
- package/lib/hosted/node-electron/plugin-ext-hosted-electron-backend-module.js.map +1 -1
- package/lib/hosted/node-electron/scanner-theia-electron.d.ts.map +1 -1
- package/lib/hosted/node-electron/scanner-theia-electron.js +1 -1
- package/lib/hosted/node-electron/scanner-theia-electron.js.map +1 -1
- package/lib/main/browser/authentication-main.d.ts +18 -11
- package/lib/main/browser/authentication-main.d.ts.map +1 -1
- package/lib/main/browser/authentication-main.js +111 -67
- package/lib/main/browser/authentication-main.js.map +1 -1
- package/lib/main/browser/commands.js +3 -3
- package/lib/main/browser/commands.js.map +1 -1
- package/lib/main/browser/comments/comment-thread-widget.d.ts.map +1 -1
- package/lib/main/browser/comments/comment-thread-widget.js.map +1 -1
- package/lib/main/browser/comments/comments-context-key-service.d.ts +1 -1
- package/lib/main/browser/comments/comments-context-key-service.d.ts.map +1 -1
- package/lib/main/browser/comments/comments-context-key-service.js +3 -3
- package/lib/main/browser/comments/comments-context-key-service.js.map +1 -1
- package/lib/main/browser/comments/comments-contribution.js +8 -8
- package/lib/main/browser/comments/comments-contribution.js.map +1 -1
- package/lib/main/browser/comments/comments-decorator.js +1 -1
- package/lib/main/browser/comments/comments-decorator.js.map +1 -1
- package/lib/main/browser/comments/comments-main.js +1 -1
- package/lib/main/browser/comments/comments-main.js.map +1 -1
- package/lib/main/browser/comments/comments-service.js +1 -1
- package/lib/main/browser/comments/comments-service.js.map +1 -1
- package/lib/main/browser/custom-editors/custom-editor-contribution.js +2 -2
- package/lib/main/browser/custom-editors/custom-editor-contribution.js.map +1 -1
- package/lib/main/browser/custom-editors/custom-editor-opener.js +3 -3
- package/lib/main/browser/custom-editors/custom-editor-opener.js.map +1 -1
- package/lib/main/browser/custom-editors/custom-editor-service.js +1 -1
- 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 +3 -3
- package/lib/main/browser/custom-editors/custom-editor-widget.js.map +1 -1
- package/lib/main/browser/custom-editors/custom-editors-main.js.map +1 -1
- package/lib/main/browser/custom-editors/paths.js +1 -1
- package/lib/main/browser/custom-editors/paths.js.map +1 -1
- package/lib/main/browser/custom-editors/plugin-custom-editor-registry.js +8 -8
- package/lib/main/browser/custom-editors/plugin-custom-editor-registry.js.map +1 -1
- package/lib/main/browser/custom-editors/undo-redo-service.js +1 -1
- package/lib/main/browser/custom-editors/undo-redo-service.js.map +1 -1
- package/lib/main/browser/debug/plugin-debug-service.js +4 -4
- package/lib/main/browser/debug/plugin-debug-service.js.map +1 -1
- package/lib/main/browser/debug/plugin-debug-session-contribution-registry.js +4 -4
- package/lib/main/browser/debug/plugin-debug-session-contribution-registry.js.map +1 -1
- package/lib/main/browser/debug/plugin-debug-session-factory.d.ts.map +1 -1
- package/lib/main/browser/debug/plugin-debug-session-factory.js.map +1 -1
- package/lib/main/browser/dialogs/modal-notification.d.ts.map +1 -1
- package/lib/main/browser/dialogs/modal-notification.js +4 -4
- package/lib/main/browser/dialogs/modal-notification.js.map +1 -1
- package/lib/main/browser/dialogs-main.js.map +1 -1
- package/lib/main/browser/documents-main.js +1 -1
- package/lib/main/browser/documents-main.js.map +1 -1
- package/lib/main/browser/editor/untitled-resource.js +2 -2
- package/lib/main/browser/editor/untitled-resource.js.map +1 -1
- package/lib/main/browser/keybindings/keybindings-contribution-handler.js +2 -2
- package/lib/main/browser/keybindings/keybindings-contribution-handler.js.map +1 -1
- package/lib/main/browser/languages-main.d.ts +1 -0
- package/lib/main/browser/languages-main.d.ts.map +1 -1
- package/lib/main/browser/languages-main.js +23 -15
- 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 +3 -0
- package/lib/main/browser/main-context.js.map +1 -1
- package/lib/main/browser/main-file-system-event-service.js.map +1 -1
- package/lib/main/browser/menus/menus-contribution-handler.js +14 -14
- package/lib/main/browser/menus/menus-contribution-handler.js.map +1 -1
- package/lib/main/browser/output-channel-registry-main.js +2 -2
- package/lib/main/browser/output-channel-registry-main.js.map +1 -1
- package/lib/main/browser/plugin-authentication-service.d.ts +29 -0
- package/lib/main/browser/plugin-authentication-service.d.ts.map +1 -0
- package/lib/main/browser/plugin-authentication-service.js +81 -0
- package/lib/main/browser/plugin-authentication-service.js.map +1 -0
- package/lib/main/browser/plugin-contribution-handler.d.ts +1 -1
- package/lib/main/browser/plugin-contribution-handler.d.ts.map +1 -1
- package/lib/main/browser/plugin-contribution-handler.js +23 -23
- package/lib/main/browser/plugin-contribution-handler.js.map +1 -1
- package/lib/main/browser/plugin-ext-deploy-command.js +4 -4
- package/lib/main/browser/plugin-ext-deploy-command.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 +14 -10
- package/lib/main/browser/plugin-ext-frontend-module.js.map +1 -1
- package/lib/main/browser/plugin-ext-widget.d.ts.map +1 -1
- package/lib/main/browser/plugin-ext-widget.js +6 -6
- package/lib/main/browser/plugin-ext-widget.js.map +1 -1
- package/lib/main/browser/plugin-frontend-contribution.js +3 -3
- package/lib/main/browser/plugin-frontend-contribution.js.map +1 -1
- package/lib/main/browser/plugin-frontend-view-contribution.js +1 -1
- package/lib/main/browser/plugin-frontend-view-contribution.js.map +1 -1
- package/lib/main/browser/plugin-icon-theme-service.js +11 -11
- package/lib/main/browser/plugin-icon-theme-service.js.map +1 -1
- package/lib/main/browser/plugin-shared-style.js +1 -1
- package/lib/main/browser/plugin-shared-style.js.map +1 -1
- package/lib/main/browser/plugin-storage.js.map +1 -1
- package/lib/main/browser/quick-open-main.js +1 -1
- package/lib/main/browser/quick-open-main.js.map +1 -1
- package/lib/main/browser/scm-main.js.map +1 -1
- package/lib/main/browser/selection-provider-command.js +3 -3
- package/lib/main/browser/selection-provider-command.js.map +1 -1
- package/lib/main/browser/text-editor-main.js +1 -1
- package/lib/main/browser/text-editor-main.js.map +1 -1
- package/lib/main/browser/text-editor-model-service.js +3 -3
- package/lib/main/browser/text-editor-model-service.js.map +1 -1
- package/lib/main/browser/text-editors-main.js +9 -9
- package/lib/main/browser/text-editors-main.js.map +1 -1
- package/lib/main/browser/view/plugin-tree-view-node-label-provider.js +3 -3
- 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 +8 -4
- package/lib/main/browser/view/plugin-view-registry.d.ts.map +1 -1
- package/lib/main/browser/view/plugin-view-registry.js +74 -18
- 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 +7 -7
- package/lib/main/browser/view/plugin-view-widget.js.map +1 -1
- package/lib/main/browser/view/tree-view-widget.d.ts +0 -2
- package/lib/main/browser/view/tree-view-widget.d.ts.map +1 -1
- package/lib/main/browser/view/tree-view-widget.js +16 -18
- package/lib/main/browser/view/tree-view-widget.js.map +1 -1
- package/lib/main/browser/view/view-context-key-service.js +3 -3
- package/lib/main/browser/view/view-context-key-service.js.map +1 -1
- package/lib/main/browser/view-column-service.js +4 -4
- package/lib/main/browser/view-column-service.js.map +1 -1
- package/lib/main/browser/webview/webview-environment.js +3 -3
- package/lib/main/browser/webview/webview-environment.js.map +1 -1
- package/lib/main/browser/webview/webview-frontend-security-warnings.js +4 -4
- package/lib/main/browser/webview/webview-frontend-security-warnings.js.map +1 -1
- package/lib/main/browser/webview/webview-preferences.js +1 -1
- package/lib/main/browser/webview/webview-preferences.js.map +1 -1
- package/lib/main/browser/webview/webview-resource-cache.js +1 -1
- package/lib/main/browser/webview/webview-resource-cache.js.map +1 -1
- package/lib/main/browser/webview/webview-theme-data-provider.d.ts +2 -2
- package/lib/main/browser/webview/webview-theme-data-provider.d.ts.map +1 -1
- package/lib/main/browser/webview/webview-theme-data-provider.js +5 -5
- package/lib/main/browser/webview/webview-theme-data-provider.js.map +1 -1
- package/lib/main/browser/webview/webview.d.ts.map +1 -1
- package/lib/main/browser/webview/webview.js +17 -17
- package/lib/main/browser/webview/webview.js.map +1 -1
- package/lib/main/browser/webview-views/webview-views-main.d.ts +46 -0
- package/lib/main/browser/webview-views/webview-views-main.d.ts.map +1 -0
- package/lib/main/browser/webview-views/webview-views-main.js +127 -0
- package/lib/main/browser/webview-views/webview-views-main.js.map +1 -0
- package/lib/main/browser/webview-views/webview-views.d.ts +30 -0
- package/lib/main/browser/webview-views/webview-views.d.ts.map +1 -0
- package/lib/main/browser/webview-views/webview-views.js +23 -0
- package/lib/main/browser/webview-views/webview-views.js.map +1 -0
- package/lib/main/browser/webviews-main.js.map +1 -1
- package/lib/main/browser/window-state-main.js +1 -1
- package/lib/main/browser/window-state-main.js.map +1 -1
- package/lib/main/browser/workspace-main.d.ts +2 -0
- package/lib/main/browser/workspace-main.d.ts.map +1 -1
- package/lib/main/browser/workspace-main.js +6 -1
- package/lib/main/browser/workspace-main.js.map +1 -1
- package/lib/main/common/plugin-theia-environment.js +2 -2
- package/lib/main/common/plugin-theia-environment.js.map +1 -1
- package/lib/main/electron-browser/webview/electron-webview-widget-factory.d.ts.map +1 -1
- package/lib/main/electron-browser/webview/electron-webview-widget-factory.js.map +1 -1
- package/lib/main/node/handlers/plugin-theia-directory-handler.js +1 -1
- package/lib/main/node/handlers/plugin-theia-directory-handler.js.map +1 -1
- package/lib/main/node/handlers/plugin-theia-file-handler.js +3 -3
- package/lib/main/node/handlers/plugin-theia-file-handler.js.map +1 -1
- package/lib/main/node/paths/plugin-paths-service.js +7 -7
- package/lib/main/node/paths/plugin-paths-service.js.map +1 -1
- package/lib/main/node/plugin-cli-contribution.js +1 -1
- package/lib/main/node/plugin-cli-contribution.js.map +1 -1
- package/lib/main/node/plugin-deployer-contribution.js +3 -3
- package/lib/main/node/plugin-deployer-contribution.js.map +1 -1
- package/lib/main/node/plugin-deployer-impl.d.ts +3 -1
- package/lib/main/node/plugin-deployer-impl.d.ts.map +1 -1
- package/lib/main/node/plugin-deployer-impl.js +24 -19
- package/lib/main/node/plugin-deployer-impl.js.map +1 -1
- package/lib/main/node/plugin-deployer-proxy-entry-impl.js +1 -1
- package/lib/main/node/plugin-deployer-proxy-entry-impl.js.map +1 -1
- package/lib/main/node/plugin-ext-backend-module.js +1 -1
- package/lib/main/node/plugin-ext-backend-module.js.map +1 -1
- package/lib/main/node/plugin-github-resolver.js +1 -1
- package/lib/main/node/plugin-github-resolver.js.map +1 -1
- package/lib/main/node/plugin-http-resolver.js +1 -1
- package/lib/main/node/plugin-http-resolver.js.map +1 -1
- package/lib/main/node/plugin-server-handler.js +3 -3
- package/lib/main/node/plugin-server-handler.js.map +1 -1
- package/lib/main/node/plugin-service.js +2 -2
- package/lib/main/node/plugin-service.js.map +1 -1
- package/lib/main/node/plugin-theia-deployer-participant.js +2 -2
- package/lib/main/node/plugin-theia-deployer-participant.js.map +1 -1
- package/lib/main/node/plugins-key-value-storage.js +4 -4
- package/lib/main/node/plugins-key-value-storage.js.map +1 -1
- package/lib/main/node/resolvers/local-directory-plugin-deployer-resolver.js +1 -1
- package/lib/main/node/resolvers/local-directory-plugin-deployer-resolver.js.map +1 -1
- package/lib/main/node/resolvers/local-file-plugin-deployer-resolver.js +1 -1
- package/lib/main/node/resolvers/local-file-plugin-deployer-resolver.js.map +1 -1
- package/lib/main/node/resolvers/local-plugin-deployer-resolver.js +1 -1
- package/lib/main/node/resolvers/local-plugin-deployer-resolver.js.map +1 -1
- package/lib/main/node/webview-backend-security-warnings.js +1 -1
- package/lib/main/node/webview-backend-security-warnings.js.map +1 -1
- package/lib/plugin/authentication-ext.d.ts +23 -8
- package/lib/plugin/authentication-ext.d.ts.map +1 -1
- package/lib/plugin/authentication-ext.js +28 -24
- package/lib/plugin/authentication-ext.js.map +1 -1
- package/lib/plugin/comments.js +6 -6
- package/lib/plugin/comments.js.map +1 -1
- package/lib/plugin/decorations.js +1 -1
- package/lib/plugin/decorations.js.map +1 -1
- package/lib/plugin/document-data.js +4 -4
- package/lib/plugin/document-data.js.map +1 -1
- package/lib/plugin/documents.js +1 -1
- package/lib/plugin/documents.js.map +1 -1
- package/lib/plugin/editors-and-documents.js +6 -6
- package/lib/plugin/editors-and-documents.js.map +1 -1
- package/lib/plugin/env.js +2 -2
- package/lib/plugin/env.js.map +1 -1
- package/lib/plugin/file-system-event-service-ext-impl.js +2 -2
- package/lib/plugin/file-system-event-service-ext-impl.js.map +1 -1
- package/lib/plugin/file-system-ext-impl.js +1 -1
- package/lib/plugin/file-system-ext-impl.js.map +1 -1
- package/lib/plugin/known-commands.js +17 -16
- package/lib/plugin/known-commands.js.map +1 -1
- package/lib/plugin/known-commands.spec.js +1 -1
- package/lib/plugin/known-commands.spec.js.map +1 -1
- package/lib/plugin/languages/code-action.d.ts +7 -1
- package/lib/plugin/languages/code-action.d.ts.map +1 -1
- package/lib/plugin/languages/code-action.js +36 -2
- package/lib/plugin/languages/code-action.js.map +1 -1
- package/lib/plugin/languages/completion.js.map +1 -1
- package/lib/plugin/languages/declaration.js +2 -2
- package/lib/plugin/languages/declaration.js.map +1 -1
- package/lib/plugin/languages/definition.js +2 -2
- package/lib/plugin/languages/definition.js.map +1 -1
- package/lib/plugin/languages/diagnostics.js +3 -3
- package/lib/plugin/languages/diagnostics.js.map +1 -1
- package/lib/plugin/languages/implementation.js +2 -2
- package/lib/plugin/languages/implementation.js.map +1 -1
- package/lib/plugin/languages/reference.js +1 -1
- package/lib/plugin/languages/reference.js.map +1 -1
- package/lib/plugin/languages/rename.js +1 -1
- package/lib/plugin/languages/rename.js.map +1 -1
- package/lib/plugin/languages/semantic-highlighting.js +4 -4
- package/lib/plugin/languages/semantic-highlighting.js.map +1 -1
- package/lib/plugin/languages/type-definition.js +2 -2
- package/lib/plugin/languages/type-definition.js.map +1 -1
- package/lib/plugin/languages.d.ts +2 -0
- package/lib/plugin/languages.d.ts.map +1 -1
- package/lib/plugin/languages.js +8 -1
- package/lib/plugin/languages.js.map +1 -1
- package/lib/plugin/node/debug/debug.js +7 -7
- package/lib/plugin/node/debug/debug.js.map +1 -1
- package/lib/plugin/node/debug/plugin-debug-adapter-session.d.ts.map +1 -1
- package/lib/plugin/node/debug/plugin-debug-adapter-session.js.map +1 -1
- package/lib/plugin/node/debug/plugin-debug-adapter-starter.d.ts +1 -1
- package/lib/plugin/node/debug/plugin-debug-adapter-starter.d.ts.map +1 -1
- package/lib/plugin/node/debug/plugin-debug-adapter-starter.js +4 -4
- package/lib/plugin/node/debug/plugin-debug-adapter-starter.js.map +1 -1
- package/lib/plugin/node/debug/plugin-inline-debug-adapter.d.ts +34 -0
- package/lib/plugin/node/debug/plugin-inline-debug-adapter.d.ts.map +1 -0
- package/lib/plugin/node/debug/plugin-inline-debug-adapter.js +45 -0
- package/lib/plugin/node/debug/plugin-inline-debug-adapter.js.map +1 -0
- package/lib/plugin/node/env-node-ext.d.ts.map +1 -1
- package/lib/plugin/node/env-node-ext.js +2 -2
- package/lib/plugin/node/env-node-ext.js.map +1 -1
- package/lib/plugin/path.spec.js +3 -3
- package/lib/plugin/path.spec.js.map +1 -1
- package/lib/plugin/plugin-context.d.ts.map +1 -1
- package/lib/plugin/plugin-context.js +85 -33
- package/lib/plugin/plugin-context.js.map +1 -1
- package/lib/plugin/plugin-manager.d.ts.map +1 -1
- package/lib/plugin/plugin-manager.js +11 -9
- package/lib/plugin/plugin-manager.js.map +1 -1
- package/lib/plugin/preference-registry.js +3 -3
- package/lib/plugin/preference-registry.js.map +1 -1
- package/lib/plugin/preferences/configuration.js +1 -1
- package/lib/plugin/preferences/configuration.js.map +1 -1
- package/lib/plugin/quick-open.d.ts.map +1 -1
- package/lib/plugin/quick-open.js +1 -1
- package/lib/plugin/quick-open.js.map +1 -1
- package/lib/plugin/scm.js +1 -3
- package/lib/plugin/scm.js.map +1 -1
- package/lib/plugin/status-bar/status-bar-item.d.ts +3 -2
- package/lib/plugin/status-bar/status-bar-item.d.ts.map +1 -1
- package/lib/plugin/status-bar/status-bar-item.js +5 -2
- package/lib/plugin/status-bar/status-bar-item.js.map +1 -1
- package/lib/plugin/status-bar-message-registry.d.ts +1 -1
- package/lib/plugin/status-bar-message-registry.d.ts.map +1 -1
- package/lib/plugin/status-bar-message-registry.js +2 -2
- package/lib/plugin/status-bar-message-registry.js.map +1 -1
- package/lib/plugin/text-editor.js +10 -10
- package/lib/plugin/text-editor.js.map +1 -1
- package/lib/plugin/timeline.js.map +1 -1
- package/lib/plugin/type-converters.js +6 -5
- package/lib/plugin/type-converters.js.map +1 -1
- package/lib/plugin/type-converters.spec.js +5 -5
- package/lib/plugin/type-converters.spec.js.map +1 -1
- package/lib/plugin/types-impl.d.ts.map +1 -1
- package/lib/plugin/types-impl.js +34 -32
- package/lib/plugin/types-impl.js.map +1 -1
- package/lib/plugin/webview-views.d.ts +68 -0
- package/lib/plugin/webview-views.d.ts.map +1 -0
- package/lib/plugin/webview-views.js +145 -0
- package/lib/plugin/webview-views.js.map +1 -0
- package/lib/plugin/webviews.d.ts +6 -0
- package/lib/plugin/webviews.d.ts.map +1 -1
- package/lib/plugin/webviews.js +29 -6
- package/lib/plugin/webviews.js.map +1 -1
- package/lib/plugin/workspace.d.ts +6 -0
- package/lib/plugin/workspace.d.ts.map +1 -1
- package/lib/plugin/workspace.js +21 -3
- package/lib/plugin/workspace.js.map +1 -1
- package/lib/plugin-ext-backend-electron-module.js +2 -2
- package/lib/plugin-ext-backend-electron-module.js.map +1 -1
- package/lib/plugin-ext-backend-module.js +2 -2
- package/lib/plugin-ext-backend-module.js.map +1 -1
- package/package.json +23 -23
- package/src/common/plugin-api-rpc-model.ts +13 -17
- package/src/common/plugin-api-rpc.ts +46 -14
- package/src/common/plugin-protocol.ts +9 -0
- package/src/hosted/browser/hosted-plugin.ts +20 -40
- package/src/hosted/browser/worker/worker-main.ts +14 -1
- package/src/hosted/node/hosted-plugin-deployer-handler.ts +23 -3
- package/src/hosted/node/plugin-reader.ts +2 -1
- package/src/hosted/node/scanners/scanner-theia.ts +4 -1
- package/src/hosted/node-electron/scanner-theia-electron.ts +1 -1
- package/src/main/browser/authentication-main.ts +137 -81
- package/src/main/browser/comments/comment-thread-widget.tsx +12 -12
- package/src/main/browser/custom-editors/custom-editor-widget.ts +5 -5
- package/src/main/browser/debug/plugin-debug-session-factory.ts +22 -22
- package/src/main/browser/dialogs/modal-notification.ts +1 -1
- package/src/main/browser/languages-main.ts +13 -3
- package/src/main/browser/main-context.ts +4 -0
- package/src/main/browser/plugin-authentication-service.ts +71 -0
- package/src/main/browser/plugin-ext-frontend-module.ts +13 -8
- package/src/main/browser/plugin-ext-widget.tsx +1 -1
- package/src/main/browser/view/plugin-view-registry.ts +73 -5
- package/src/main/browser/view/plugin-view-widget.ts +4 -4
- package/src/main/browser/view/tree-view-widget.tsx +14 -17
- package/src/main/browser/view-column-service.ts +1 -1
- package/src/main/browser/webview/webview.ts +5 -5
- package/src/main/browser/webview-views/webview-views-main.ts +142 -0
- package/src/main/browser/webview-views/webview-views.ts +38 -0
- package/src/main/browser/workspace-main.ts +9 -1
- package/src/main/electron-browser/webview/electron-webview-widget-factory.ts +4 -4
- package/src/main/node/paths/plugin-paths-service.ts +1 -1
- package/src/main/node/plugin-deployer-impl.ts +11 -7
- package/src/plugin/authentication-ext.ts +42 -32
- package/src/plugin/languages/code-action.ts +46 -3
- package/src/plugin/languages.ts +9 -0
- package/src/plugin/node/debug/plugin-debug-adapter-session.ts +7 -7
- package/src/plugin/node/debug/plugin-debug-adapter-starter.ts +1 -1
- package/src/plugin/node/debug/plugin-inline-debug-adapter.ts +47 -0
- package/src/plugin/node/env-node-ext.ts +1 -1
- package/src/plugin/plugin-context.ts +73 -10
- package/src/plugin/plugin-manager.ts +6 -4
- package/src/plugin/quick-open.ts +13 -11
- package/src/plugin/status-bar/status-bar-item.ts +8 -2
- package/src/plugin/status-bar-message-registry.ts +3 -2
- package/src/plugin/types-impl.ts +8 -8
- package/src/plugin/webview-views.ts +213 -0
- package/src/plugin/webviews.ts +30 -0
- package/src/plugin/workspace.ts +23 -0
|
@@ -173,6 +173,9 @@ import { TimelineExtImpl } from './timeline';
|
|
|
173
173
|
import { ThemingExtImpl } from './theming';
|
|
174
174
|
import { CommentsExtImpl } from './comments';
|
|
175
175
|
import { CustomEditorsExtImpl } from './custom-editors';
|
|
176
|
+
import { WebviewViewsExtImpl } from './webview-views';
|
|
177
|
+
import { PluginPackage } from '../common';
|
|
178
|
+
import { Endpoint } from '@theia/core/lib/browser/endpoint';
|
|
176
179
|
|
|
177
180
|
export function createAPIFactory(
|
|
178
181
|
rpc: RPCProtocol,
|
|
@@ -211,18 +214,36 @@ export function createAPIFactory(
|
|
|
211
214
|
const themingExt = rpc.set(MAIN_RPC_CONTEXT.THEMING_EXT, new ThemingExtImpl(rpc));
|
|
212
215
|
const commentsExt = rpc.set(MAIN_RPC_CONTEXT.COMMENTS_EXT, new CommentsExtImpl(rpc, commandRegistry, documents));
|
|
213
216
|
const customEditorExt = rpc.set(MAIN_RPC_CONTEXT.CUSTOM_EDITORS_EXT, new CustomEditorsExtImpl(rpc, documents, webviewExt, workspaceExt));
|
|
217
|
+
const webviewViewsExt = rpc.set(MAIN_RPC_CONTEXT.WEBVIEW_VIEWS_EXT, new WebviewViewsExtImpl(rpc, webviewExt));
|
|
214
218
|
rpc.set(MAIN_RPC_CONTEXT.DEBUG_EXT, debugExt);
|
|
215
219
|
|
|
216
220
|
return function (plugin: InternalPlugin): typeof theia {
|
|
217
221
|
const authentication: typeof theia.authentication = {
|
|
218
|
-
|
|
219
|
-
|
|
222
|
+
// support older (< 1.53.0) and newer version of authentication provider registration
|
|
223
|
+
registerAuthenticationProvider(
|
|
224
|
+
id: string | theia.AuthenticationProvider, label?: string, provider?: theia.AuthenticationProvider, options?: theia.AuthenticationProviderOptions):
|
|
225
|
+
theia.Disposable {
|
|
226
|
+
// collect registration data based on registration type: new (all parameters given) vs old (data stored in provider)
|
|
227
|
+
const isNewRegistration = typeof id === 'string';
|
|
228
|
+
const regProvider = isNewRegistration ? provider! : id;
|
|
229
|
+
const regId = isNewRegistration ? id : regProvider.id;
|
|
230
|
+
const regLabel = isNewRegistration ? label! : regProvider.label;
|
|
231
|
+
const regOptions = isNewRegistration ? options : { supportsMultipleAccounts: regProvider.supportsMultipleAccounts };
|
|
232
|
+
|
|
233
|
+
// ensure that all methods of the new AuthenticationProvider are available or delegate otherwise
|
|
234
|
+
if (!regProvider['createSession']) {
|
|
235
|
+
regProvider['createSession'] = (scopes: string[]) => regProvider.login(scopes);
|
|
236
|
+
}
|
|
237
|
+
if (!regProvider['removeSession']) {
|
|
238
|
+
regProvider['removeSession'] = (sessionId: string) => regProvider.logout(sessionId);
|
|
239
|
+
}
|
|
240
|
+
return authenticationExt.registerAuthenticationProvider(regId, regLabel, regProvider, regOptions);
|
|
220
241
|
},
|
|
221
242
|
get onDidChangeAuthenticationProviders(): theia.Event<theia.AuthenticationProvidersChangeEvent> {
|
|
222
243
|
return authenticationExt.onDidChangeAuthenticationProviders;
|
|
223
244
|
},
|
|
224
245
|
getProviderIds(): Thenable<ReadonlyArray<string>> {
|
|
225
|
-
return authenticationExt.
|
|
246
|
+
return Promise.resolve(authenticationExt.providerIds);
|
|
226
247
|
},
|
|
227
248
|
get providerIds(): string[] {
|
|
228
249
|
return authenticationExt.providerIds;
|
|
@@ -238,6 +259,10 @@ export function createAPIFactory(
|
|
|
238
259
|
},
|
|
239
260
|
get onDidChangeSessions(): theia.Event<theia.AuthenticationSessionsChangeEvent> {
|
|
240
261
|
return authenticationExt.onDidChangeSessions;
|
|
262
|
+
},
|
|
263
|
+
async hasSession(providerId: string, scopes: readonly string[]): Promise<boolean> {
|
|
264
|
+
const session = await authenticationExt.getSession(plugin, providerId, scopes, { silent: true });
|
|
265
|
+
return !!session;
|
|
241
266
|
}
|
|
242
267
|
};
|
|
243
268
|
const commands: typeof theia.commands = {
|
|
@@ -390,8 +415,22 @@ export function createAPIFactory(
|
|
|
390
415
|
showInputBox(options?: theia.InputBoxOptions, token?: theia.CancellationToken): PromiseLike<string | undefined> {
|
|
391
416
|
return quickOpenExt.showInput(options, token);
|
|
392
417
|
},
|
|
393
|
-
createStatusBarItem(
|
|
394
|
-
|
|
418
|
+
createStatusBarItem(alignmentOrId?: theia.StatusBarAlignment | string, priorityOrAlignment?: number | theia.StatusBarAlignment,
|
|
419
|
+
priorityArg?: number): theia.StatusBarItem {
|
|
420
|
+
let id: string | undefined;
|
|
421
|
+
let alignment: number | undefined;
|
|
422
|
+
let priority: number | undefined;
|
|
423
|
+
|
|
424
|
+
if (typeof alignmentOrId === 'string') {
|
|
425
|
+
id = alignmentOrId;
|
|
426
|
+
alignment = priorityOrAlignment;
|
|
427
|
+
priority = priorityArg;
|
|
428
|
+
} else {
|
|
429
|
+
alignment = alignmentOrId;
|
|
430
|
+
priority = priorityOrAlignment;
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
return statusBarMessageRegistryExt.createStatusBarItem(alignment, priority, id);
|
|
395
434
|
},
|
|
396
435
|
createOutputChannel(name: string): theia.OutputChannel {
|
|
397
436
|
return outputChannelRegistryExt.createOutputChannel(name, pluginToPluginInfo(plugin));
|
|
@@ -410,6 +449,15 @@ export function createAPIFactory(
|
|
|
410
449
|
options: { webviewOptions?: theia.WebviewPanelOptions, supportsMultipleEditorsPerDocument?: boolean } = {}): theia.Disposable {
|
|
411
450
|
return customEditorExt.registerCustomEditorProvider(viewType, provider, options, plugin);
|
|
412
451
|
},
|
|
452
|
+
registerWebviewViewProvider(viewType: string,
|
|
453
|
+
provider: theia.WebviewViewProvider,
|
|
454
|
+
options?: {
|
|
455
|
+
webviewOptions?: {
|
|
456
|
+
retainContextWhenHidden?: boolean
|
|
457
|
+
}
|
|
458
|
+
}): theia.Disposable {
|
|
459
|
+
return webviewViewsExt.registerWebviewViewProvider(viewType, provider, plugin, options?.webviewOptions);
|
|
460
|
+
},
|
|
413
461
|
get state(): theia.WindowState {
|
|
414
462
|
return windowStateExt.getWindowState();
|
|
415
463
|
},
|
|
@@ -571,6 +619,15 @@ export function createAPIFactory(
|
|
|
571
619
|
},
|
|
572
620
|
registerTimelineProvider(scheme: string | string[], provider: theia.TimelineProvider): theia.Disposable {
|
|
573
621
|
return timelineExt.registerTimelineProvider(plugin, scheme, provider);
|
|
622
|
+
},
|
|
623
|
+
get isTrusted(): boolean {
|
|
624
|
+
return workspaceExt.trusted;
|
|
625
|
+
},
|
|
626
|
+
async requestWorkspaceTrust(options?: theia.WorkspaceTrustRequestOptions): Promise<boolean | undefined> {
|
|
627
|
+
return workspaceExt.requestWorkspaceTrust(options);
|
|
628
|
+
},
|
|
629
|
+
get onDidGrantWorkspaceTrust(): theia.Event<void> {
|
|
630
|
+
return workspaceExt.onDidGrantWorkspaceTrust;
|
|
574
631
|
}
|
|
575
632
|
};
|
|
576
633
|
|
|
@@ -1020,9 +1077,15 @@ export class Plugin<T> implements theia.Plugin<T> {
|
|
|
1020
1077
|
constructor(protected readonly pluginManager: PluginManager, plugin: InternalPlugin) {
|
|
1021
1078
|
this.id = plugin.model.id;
|
|
1022
1079
|
this.pluginPath = plugin.pluginFolder;
|
|
1023
|
-
this.pluginUri = URI.parse(plugin.pluginUri);
|
|
1024
1080
|
this.packageJSON = plugin.rawModel;
|
|
1025
1081
|
this.pluginType = plugin.model.entryPoint.frontend ? 'frontend' : 'backend';
|
|
1082
|
+
|
|
1083
|
+
if (this.pluginType === 'frontend') {
|
|
1084
|
+
const { origin } = new Endpoint();
|
|
1085
|
+
this.pluginUri = URI.parse(origin + '/' + PluginPackage.toPluginUrl(plugin.model, ''));
|
|
1086
|
+
} else {
|
|
1087
|
+
this.pluginUri = URI.parse(plugin.pluginUri);
|
|
1088
|
+
}
|
|
1026
1089
|
}
|
|
1027
1090
|
|
|
1028
1091
|
get isActive(): boolean {
|
|
@@ -1043,7 +1106,7 @@ export class PluginExt<T> extends Plugin<T> implements ExtensionPlugin<T> {
|
|
|
1043
1106
|
extensionUri: theia.Uri;
|
|
1044
1107
|
extensionKind: ExtensionKind;
|
|
1045
1108
|
|
|
1046
|
-
constructor(protected readonly pluginManager: PluginManager, plugin: InternalPlugin) {
|
|
1109
|
+
constructor(protected override readonly pluginManager: PluginManager, plugin: InternalPlugin) {
|
|
1047
1110
|
super(pluginManager, plugin);
|
|
1048
1111
|
|
|
1049
1112
|
this.extensionPath = this.pluginPath;
|
|
@@ -1051,15 +1114,15 @@ export class PluginExt<T> extends Plugin<T> implements ExtensionPlugin<T> {
|
|
|
1051
1114
|
this.extensionKind = ExtensionKind.UI; // stub as a local extension (not running on a remote workspace)
|
|
1052
1115
|
}
|
|
1053
1116
|
|
|
1054
|
-
get isActive(): boolean {
|
|
1117
|
+
override get isActive(): boolean {
|
|
1055
1118
|
return this.pluginManager.isActive(this.id);
|
|
1056
1119
|
}
|
|
1057
1120
|
|
|
1058
|
-
get exports(): T {
|
|
1121
|
+
override get exports(): T {
|
|
1059
1122
|
return <T>this.pluginManager.getPluginExport(this.id);
|
|
1060
1123
|
}
|
|
1061
1124
|
|
|
1062
|
-
activate(): PromiseLike<T> {
|
|
1125
|
+
override activate(): PromiseLike<T> {
|
|
1063
1126
|
return this.pluginManager.activatePlugin(this.id).then(() => this.exports);
|
|
1064
1127
|
}
|
|
1065
1128
|
}
|
|
@@ -91,7 +91,8 @@ export class PluginManagerExtImpl implements PluginManagerExt, PluginManager {
|
|
|
91
91
|
'onWebviewPanel',
|
|
92
92
|
'onFileSystem',
|
|
93
93
|
'onCustomEditor',
|
|
94
|
-
'onStartupFinished'
|
|
94
|
+
'onStartupFinished',
|
|
95
|
+
'onAuthenticationRequest'
|
|
95
96
|
]);
|
|
96
97
|
|
|
97
98
|
private configStorage: ConfigStorage | undefined;
|
|
@@ -370,9 +371,10 @@ export class PluginManagerExtImpl implements PluginManagerExt, PluginManager {
|
|
|
370
371
|
const storagePath = configStorage.hostStoragePath ? join(configStorage.hostStoragePath, plugin.model.id) : undefined;
|
|
371
372
|
const secrets = new SecretStorageExt(plugin, this.secrets);
|
|
372
373
|
const globalStoragePath = join(configStorage.hostGlobalStoragePath, plugin.model.id);
|
|
374
|
+
const extension = new PluginExt(this, plugin);
|
|
373
375
|
const pluginContext: theia.PluginContext = {
|
|
374
|
-
extensionPath:
|
|
375
|
-
extensionUri:
|
|
376
|
+
extensionPath: extension.extensionPath,
|
|
377
|
+
extensionUri: extension.extensionUri,
|
|
376
378
|
globalState: new GlobalState(plugin.model.id, true, this.storageProxy),
|
|
377
379
|
workspaceState: new Memento(plugin.model.id, false, this.storageProxy),
|
|
378
380
|
subscriptions: subscriptions,
|
|
@@ -385,7 +387,7 @@ export class PluginManagerExtImpl implements PluginManagerExt, PluginManager {
|
|
|
385
387
|
globalStorageUri: Uri.file(globalStoragePath),
|
|
386
388
|
environmentVariableCollection: this.terminalService.getEnvironmentVariableCollection(plugin.model.id),
|
|
387
389
|
extensionMode: 1, // @todo: implement proper `extensionMode`.
|
|
388
|
-
extension
|
|
390
|
+
extension,
|
|
389
391
|
logUri: Uri.file(logPath)
|
|
390
392
|
};
|
|
391
393
|
this.pluginContextsMap.set(plugin.model.id, pluginContext);
|
package/src/plugin/quick-open.ts
CHANGED
|
@@ -492,11 +492,12 @@ export class InputBoxExt extends QuickInputExt implements InputBox {
|
|
|
492
492
|
private _prompt: string | undefined;
|
|
493
493
|
private _validationMessage: string | undefined;
|
|
494
494
|
|
|
495
|
-
constructor(
|
|
496
|
-
readonly
|
|
497
|
-
readonly
|
|
498
|
-
|
|
499
|
-
|
|
495
|
+
constructor(
|
|
496
|
+
override readonly quickOpen: QuickOpenExtImpl,
|
|
497
|
+
override readonly quickOpenMain: QuickOpenMain,
|
|
498
|
+
override readonly plugin: Plugin,
|
|
499
|
+
onDispose: () => void
|
|
500
|
+
) {
|
|
500
501
|
super(quickOpen, quickOpenMain, plugin, onDispose);
|
|
501
502
|
|
|
502
503
|
this.buttons = [];
|
|
@@ -533,7 +534,7 @@ export class InputBoxExt extends QuickInputExt implements InputBox {
|
|
|
533
534
|
}
|
|
534
535
|
}
|
|
535
536
|
|
|
536
|
-
async show(): Promise<void> {
|
|
537
|
+
override async show(): Promise<void> {
|
|
537
538
|
super.show();
|
|
538
539
|
|
|
539
540
|
const update = (value: string) => {
|
|
@@ -584,11 +585,12 @@ export class QuickPickExt<T extends theia.QuickPickItem> extends QuickInputExt i
|
|
|
584
585
|
private readonly _onDidChangeActiveEmitter = new Emitter<T[]>();
|
|
585
586
|
private readonly _onDidChangeSelectionEmitter = new Emitter<T[]>();
|
|
586
587
|
|
|
587
|
-
constructor(
|
|
588
|
-
readonly
|
|
589
|
-
readonly
|
|
590
|
-
|
|
591
|
-
|
|
588
|
+
constructor(
|
|
589
|
+
override readonly quickOpen: QuickOpenExtImpl,
|
|
590
|
+
override readonly quickOpenMain: QuickOpenMain,
|
|
591
|
+
override readonly plugin: Plugin,
|
|
592
|
+
onDispose: () => void
|
|
593
|
+
) {
|
|
592
594
|
super(quickOpen, quickOpenMain, plugin, onDispose);
|
|
593
595
|
this.buttons = [];
|
|
594
596
|
|
|
@@ -20,7 +20,7 @@ import { UUID } from '@theia/core/shared/@phosphor/coreutils';
|
|
|
20
20
|
|
|
21
21
|
export class StatusBarItemImpl implements theia.StatusBarItem {
|
|
22
22
|
|
|
23
|
-
private
|
|
23
|
+
private _id: string;
|
|
24
24
|
|
|
25
25
|
private _alignment: StatusBarAlignment;
|
|
26
26
|
private _priority: number;
|
|
@@ -37,10 +37,16 @@ export class StatusBarItemImpl implements theia.StatusBarItem {
|
|
|
37
37
|
|
|
38
38
|
constructor(_proxy: StatusBarMessageRegistryMain,
|
|
39
39
|
alignment: StatusBarAlignment = StatusBarAlignment.Left,
|
|
40
|
-
priority: number = 0
|
|
40
|
+
priority: number = 0,
|
|
41
|
+
id = StatusBarItemImpl.nextId()) {
|
|
41
42
|
this._proxy = _proxy;
|
|
42
43
|
this._alignment = alignment;
|
|
43
44
|
this._priority = priority;
|
|
45
|
+
this._id = id;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
public get id(): string {
|
|
49
|
+
return this._id;
|
|
44
50
|
}
|
|
45
51
|
|
|
46
52
|
public get alignment(): theia.StatusBarAlignment {
|
|
@@ -57,9 +57,10 @@ export class StatusBarMessageRegistryExt {
|
|
|
57
57
|
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
-
createStatusBarItem(alignment?: StatusBarAlignment, priority?: number): StatusBarItem {
|
|
61
|
-
return new StatusBarItemImpl(this.proxy, alignment, priority);
|
|
60
|
+
createStatusBarItem(alignment?: StatusBarAlignment, priority?: number, id?: string): StatusBarItem {
|
|
61
|
+
return new StatusBarItemImpl(this.proxy, alignment, priority, id);
|
|
62
62
|
}
|
|
63
|
+
|
|
63
64
|
}
|
|
64
65
|
|
|
65
66
|
// copied from https://github.com/Microsoft/vscode/blob/6c8f02b41db9ae5c4d15df767d47755e5c73b9d5/src/vs/workbench/api/node/extHostStatusBar.ts#L122
|
package/src/plugin/types-impl.ts
CHANGED
|
@@ -68,7 +68,7 @@ export class URI extends CodeURI implements theia.Uri {
|
|
|
68
68
|
/**
|
|
69
69
|
* Override to create the correct class.
|
|
70
70
|
*/
|
|
71
|
-
with(change: {
|
|
71
|
+
override with(change: {
|
|
72
72
|
scheme?: string;
|
|
73
73
|
authority?: string | null;
|
|
74
74
|
path?: string | null;
|
|
@@ -90,19 +90,19 @@ export class URI extends CodeURI implements theia.Uri {
|
|
|
90
90
|
* Override to create the correct class.
|
|
91
91
|
* @param data
|
|
92
92
|
*/
|
|
93
|
-
static revive(data: UriComponents | CodeURI): URI;
|
|
94
|
-
static revive(data: UriComponents | CodeURI | null): URI | null;
|
|
95
|
-
static revive(data: UriComponents | CodeURI | undefined): URI | undefined
|
|
96
|
-
static revive(data: UriComponents | CodeURI | undefined | null): URI | undefined | null {
|
|
93
|
+
static override revive(data: UriComponents | CodeURI): URI;
|
|
94
|
+
static override revive(data: UriComponents | CodeURI | null): URI | null;
|
|
95
|
+
static override revive(data: UriComponents | CodeURI | undefined): URI | undefined
|
|
96
|
+
static override revive(data: UriComponents | CodeURI | undefined | null): URI | undefined | null {
|
|
97
97
|
const uri = CodeURI.revive(data);
|
|
98
98
|
return uri ? new URI(uri) : undefined;
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
-
static parse(value: string, _strict?: boolean): URI {
|
|
101
|
+
static override parse(value: string, _strict?: boolean): URI {
|
|
102
102
|
return new URI(CodeURI.parse(value, _strict));
|
|
103
103
|
}
|
|
104
104
|
|
|
105
|
-
static file(path: string): URI {
|
|
105
|
+
static override file(path: string): URI {
|
|
106
106
|
return new URI(CodeURI.file(path));
|
|
107
107
|
}
|
|
108
108
|
|
|
@@ -111,7 +111,7 @@ export class URI extends CodeURI implements theia.Uri {
|
|
|
111
111
|
* transferring via JSON.stringify(). Making the CodeURI instance
|
|
112
112
|
* makes sure we transfer this object as a vscode-uri URI.
|
|
113
113
|
*/
|
|
114
|
-
toJSON(): UriComponents {
|
|
114
|
+
override toJSON(): UriComponents {
|
|
115
115
|
return CodeURI.from(this).toJSON();
|
|
116
116
|
}
|
|
117
117
|
}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (C) 2021 SAP SE or an SAP affiliate company and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
/*---------------------------------------------------------------------------------------------
|
|
17
|
+
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
18
|
+
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
19
|
+
*--------------------------------------------------------------------------------------------*/
|
|
20
|
+
// some of the code is copied and modified from https://github.com/microsoft/vscode/blob/e1f0f8f51390dea5df9096718fb6b647ed5a9534/src/vs/workbench/api/common/extHostWebviewView.ts
|
|
21
|
+
|
|
22
|
+
import { Disposable } from './types-impl';
|
|
23
|
+
import { RPCProtocol } from '../common/rpc-protocol';
|
|
24
|
+
import { PLUGIN_RPC_CONTEXT, WebviewViewsMain, WebviewViewsExt, Plugin } from '../common/plugin-api-rpc';
|
|
25
|
+
import { CancellationToken } from '@theia/core/lib/common/cancellation';
|
|
26
|
+
import { WebviewImpl, WebviewsExtImpl } from './webviews';
|
|
27
|
+
import { WebviewViewProvider } from '@theia/plugin';
|
|
28
|
+
import { Emitter, Event } from '@theia/core/lib/common/event';
|
|
29
|
+
import * as theia from '@theia/plugin';
|
|
30
|
+
|
|
31
|
+
export class WebviewViewsExtImpl implements WebviewViewsExt {
|
|
32
|
+
|
|
33
|
+
private readonly proxy: WebviewViewsMain;
|
|
34
|
+
|
|
35
|
+
protected readonly viewProviders = new Map<string, {
|
|
36
|
+
readonly provider: WebviewViewProvider;
|
|
37
|
+
readonly plugin: Plugin;
|
|
38
|
+
}>();
|
|
39
|
+
protected readonly webviewViews = new Map<string, WebviewViewExtImpl>();
|
|
40
|
+
|
|
41
|
+
constructor(rpc: RPCProtocol,
|
|
42
|
+
private readonly webviewsExt: WebviewsExtImpl) {
|
|
43
|
+
this.proxy = rpc.getProxy(PLUGIN_RPC_CONTEXT.WEBVIEW_VIEWS_MAIN);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
registerWebviewViewProvider(
|
|
47
|
+
viewType: string,
|
|
48
|
+
provider: WebviewViewProvider,
|
|
49
|
+
plugin: Plugin,
|
|
50
|
+
webviewOptions?: {
|
|
51
|
+
retainContextWhenHidden?: boolean
|
|
52
|
+
}
|
|
53
|
+
): Disposable {
|
|
54
|
+
if (this.viewProviders.has(viewType)) {
|
|
55
|
+
throw new Error(`View provider for '${viewType}' already registered`);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
this.viewProviders.set(viewType, { provider: provider, plugin: plugin });
|
|
59
|
+
|
|
60
|
+
this.proxy.$registerWebviewViewProvider(viewType, {
|
|
61
|
+
retainContextWhenHidden: webviewOptions?.retainContextWhenHidden,
|
|
62
|
+
serializeBuffersForPostMessage: false,
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
return new Disposable(() => {
|
|
66
|
+
this.viewProviders.delete(viewType);
|
|
67
|
+
this.proxy.$unregisterWebviewViewProvider(viewType);
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
async $resolveWebviewView(handle: string,
|
|
72
|
+
viewType: string,
|
|
73
|
+
title: string | undefined,
|
|
74
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
75
|
+
state: any,
|
|
76
|
+
cancellation: CancellationToken
|
|
77
|
+
): Promise<void> {
|
|
78
|
+
const entry = this.viewProviders.get(viewType);
|
|
79
|
+
if (!entry) {
|
|
80
|
+
throw new Error(`No view provider found for '${viewType}'`);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
const { provider, plugin } = entry;
|
|
84
|
+
|
|
85
|
+
const webviewNoPanel = this.webviewsExt.createNewWebview({}, plugin, handle);
|
|
86
|
+
const revivedView = new WebviewViewExtImpl(handle, this.proxy, viewType, title, webviewNoPanel, true);
|
|
87
|
+
this.webviewViews.set(handle, revivedView);
|
|
88
|
+
await provider.resolveWebviewView(revivedView, { state }, cancellation);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
async $onDidChangeWebviewViewVisibility(
|
|
92
|
+
handle: string,
|
|
93
|
+
visible: boolean
|
|
94
|
+
): Promise<void> {
|
|
95
|
+
const webviewView = this.getWebviewView(handle);
|
|
96
|
+
webviewView.setVisible(visible);
|
|
97
|
+
webviewView.onDidChangeVisibilityEmitter.fire(visible);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
async $disposeWebviewView(handle: string): Promise<void> {
|
|
101
|
+
const webviewView = this.getWebviewView(handle);
|
|
102
|
+
this.webviewViews.delete(handle);
|
|
103
|
+
webviewView.dispose();
|
|
104
|
+
|
|
105
|
+
this.webviewsExt.deleteWebview(handle);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
protected getWebviewView(handle: string): WebviewViewExtImpl {
|
|
109
|
+
const entry = this.webviewViews.get(handle);
|
|
110
|
+
if (!entry) {
|
|
111
|
+
throw new Error('No webview found');
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
return entry;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
export class WebviewViewExtImpl implements theia.WebviewView {
|
|
119
|
+
|
|
120
|
+
readonly onDidChangeVisibilityEmitter = new Emitter<boolean>();
|
|
121
|
+
readonly onDidChangeVisibility = this.onDidChangeVisibilityEmitter.event;
|
|
122
|
+
|
|
123
|
+
readonly onDidDisposeEmitter = new Emitter<void>();
|
|
124
|
+
readonly onDidDispose = this.onDidDisposeEmitter.event;
|
|
125
|
+
|
|
126
|
+
readonly handle: string;
|
|
127
|
+
readonly proxy: WebviewViewsMain;
|
|
128
|
+
|
|
129
|
+
readonly _viewType: string;
|
|
130
|
+
readonly _webview: WebviewImpl;
|
|
131
|
+
|
|
132
|
+
_isDisposed = false;
|
|
133
|
+
_isVisible: boolean;
|
|
134
|
+
_title: string | undefined;
|
|
135
|
+
_description: string | undefined;
|
|
136
|
+
|
|
137
|
+
constructor(
|
|
138
|
+
handle: string,
|
|
139
|
+
proxy: WebviewViewsMain,
|
|
140
|
+
viewType: string,
|
|
141
|
+
title: string | undefined,
|
|
142
|
+
webview: WebviewImpl,
|
|
143
|
+
isVisible: boolean,
|
|
144
|
+
) {
|
|
145
|
+
this._viewType = viewType;
|
|
146
|
+
this._title = title;
|
|
147
|
+
this.handle = handle;
|
|
148
|
+
this.proxy = proxy;
|
|
149
|
+
this._webview = webview;
|
|
150
|
+
this._isVisible = isVisible;
|
|
151
|
+
}
|
|
152
|
+
onDispose: Event<void>;
|
|
153
|
+
|
|
154
|
+
dispose(): void {
|
|
155
|
+
if (this._isDisposed) {
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
this._isDisposed = true;
|
|
160
|
+
this.onDidDisposeEmitter.fire();
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
get title(): string | undefined {
|
|
164
|
+
this.assertNotDisposed();
|
|
165
|
+
return this._title;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
set title(value: string | undefined) {
|
|
169
|
+
this.assertNotDisposed();
|
|
170
|
+
if (this.title !== value) {
|
|
171
|
+
this.title = value;
|
|
172
|
+
this.proxy.$setWebviewViewTitle(this.handle, value);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
get description(): string | undefined {
|
|
177
|
+
this.assertNotDisposed();
|
|
178
|
+
return this._description;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
set description(value: string | undefined) {
|
|
182
|
+
this.assertNotDisposed();
|
|
183
|
+
if (this._description !== value) {
|
|
184
|
+
this._description = value;
|
|
185
|
+
this.proxy.$setWebviewViewDescription(this.handle, value);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
get visible(): boolean { return this._isVisible; }
|
|
190
|
+
get webview(): WebviewImpl { return this._webview; }
|
|
191
|
+
get viewType(): string { return this._viewType; }
|
|
192
|
+
|
|
193
|
+
setVisible(visible: boolean): void {
|
|
194
|
+
if (visible === this._isVisible || this._isDisposed) {
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
this._isVisible = visible;
|
|
199
|
+
this.onDidChangeVisibilityEmitter.fire(this._isVisible);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
show(preserveFocus?: boolean): void {
|
|
203
|
+
this.assertNotDisposed();
|
|
204
|
+
this.proxy.$show(this.handle, !!preserveFocus);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
protected assertNotDisposed(): void {
|
|
208
|
+
if (this._isDisposed) {
|
|
209
|
+
throw new Error('Webview is disposed');
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
|
package/src/plugin/webviews.ts
CHANGED
|
@@ -27,12 +27,16 @@ import { PluginIconPath } from './plugin-icon-path';
|
|
|
27
27
|
export class WebviewsExtImpl implements WebviewsExt {
|
|
28
28
|
private readonly proxy: WebviewsMain;
|
|
29
29
|
private readonly webviewPanels = new Map<string, WebviewPanelImpl>();
|
|
30
|
+
private readonly webviews = new Map<string, WebviewImpl>();
|
|
30
31
|
private readonly serializers = new Map<string, {
|
|
31
32
|
serializer: theia.WebviewPanelSerializer,
|
|
32
33
|
plugin: Plugin
|
|
33
34
|
}>();
|
|
34
35
|
private initData: WebviewInitData | undefined;
|
|
35
36
|
|
|
37
|
+
readonly onDidDisposeEmitter = new Emitter<void>();
|
|
38
|
+
readonly onDidDispose: Event<void> = this.onDidDisposeEmitter.event;
|
|
39
|
+
|
|
36
40
|
constructor(
|
|
37
41
|
rpc: RPCProtocol,
|
|
38
42
|
private readonly workspace: WorkspaceExtImpl,
|
|
@@ -49,6 +53,11 @@ export class WebviewsExtImpl implements WebviewsExt {
|
|
|
49
53
|
const panel = this.getWebviewPanel(handle);
|
|
50
54
|
if (panel) {
|
|
51
55
|
panel.webview.onMessageEmitter.fire(message);
|
|
56
|
+
} else {
|
|
57
|
+
const webview = this.getWebview(handle);
|
|
58
|
+
if (webview) {
|
|
59
|
+
webview.onMessageEmitter.fire(message);
|
|
60
|
+
}
|
|
52
61
|
}
|
|
53
62
|
}
|
|
54
63
|
$onDidChangeWebviewPanelViewState(handle: string, newState: WebviewPanelViewState): void {
|
|
@@ -128,6 +137,19 @@ export class WebviewsExtImpl implements WebviewsExt {
|
|
|
128
137
|
return panel;
|
|
129
138
|
}
|
|
130
139
|
|
|
140
|
+
createNewWebview(
|
|
141
|
+
options: theia.WebviewPanelOptions & theia.WebviewOptions,
|
|
142
|
+
plugin: Plugin,
|
|
143
|
+
viewId: string
|
|
144
|
+
): WebviewImpl {
|
|
145
|
+
if (!this.initData) {
|
|
146
|
+
throw new Error('Webviews are not initialized');
|
|
147
|
+
}
|
|
148
|
+
const webview = new WebviewImpl(viewId, this.proxy, options, this.initData, this.workspace, plugin);
|
|
149
|
+
this.webviews.set(viewId, webview);
|
|
150
|
+
return webview;
|
|
151
|
+
}
|
|
152
|
+
|
|
131
153
|
registerWebviewPanelSerializer(
|
|
132
154
|
viewType: string,
|
|
133
155
|
serializer: theia.WebviewPanelSerializer,
|
|
@@ -152,6 +174,14 @@ export class WebviewsExtImpl implements WebviewsExt {
|
|
|
152
174
|
}
|
|
153
175
|
return undefined;
|
|
154
176
|
}
|
|
177
|
+
|
|
178
|
+
public deleteWebview(handle: string): void {
|
|
179
|
+
this.webviews.delete(handle);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
public getWebview(handle: string): WebviewImpl | undefined {
|
|
183
|
+
return this.webviews.get(handle);
|
|
184
|
+
}
|
|
155
185
|
}
|
|
156
186
|
|
|
157
187
|
export class WebviewImpl implements theia.Webview {
|
package/src/plugin/workspace.ts
CHANGED
|
@@ -56,6 +56,10 @@ export class WorkspaceExtImpl implements WorkspaceExt {
|
|
|
56
56
|
private searchInWorkspaceEmitter: Emitter<{ result?: theia.TextSearchResult, searchId: number }> = new Emitter<{ result?: theia.TextSearchResult, searchId: number }>();
|
|
57
57
|
protected workspaceSearchSequence: number = 0;
|
|
58
58
|
|
|
59
|
+
private _trusted?: boolean = undefined;
|
|
60
|
+
private didGrantWorkspaceTrustEmitter = new Emitter<void>();
|
|
61
|
+
public readonly onDidGrantWorkspaceTrust: Event<void> = this.didGrantWorkspaceTrustEmitter.event;
|
|
62
|
+
|
|
59
63
|
constructor(rpc: RPCProtocol,
|
|
60
64
|
private editorsAndDocuments: EditorsAndDocumentsExtImpl,
|
|
61
65
|
private messageService: MessageRegistryExt) {
|
|
@@ -418,4 +422,23 @@ export class WorkspaceExtImpl implements WorkspaceExt {
|
|
|
418
422
|
this.workspaceFileUri = URI.parse(workspace.resource.toString());
|
|
419
423
|
}
|
|
420
424
|
}
|
|
425
|
+
|
|
426
|
+
get trusted(): boolean {
|
|
427
|
+
if (this._trusted === undefined) {
|
|
428
|
+
this.requestWorkspaceTrust();
|
|
429
|
+
}
|
|
430
|
+
return !!this._trusted;
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
requestWorkspaceTrust(options?: theia.WorkspaceTrustRequestOptions): Promise<boolean | undefined> {
|
|
434
|
+
return this.proxy.$requestWorkspaceTrust(options);
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
$onWorkspaceTrustChanged(trust: boolean | undefined): void {
|
|
438
|
+
if (!this._trusted && trust) {
|
|
439
|
+
this._trusted = trust;
|
|
440
|
+
this.didGrantWorkspaceTrustEmitter.fire();
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
|
|
421
444
|
}
|