@theia/plugin-ext 1.23.0-next.3 → 1.23.0-next.35
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 +6 -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 +4 -4
- 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 +9 -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 +76 -32
- 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 +7 -6
- 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 +7 -0
- package/src/hosted/browser/hosted-plugin.ts +20 -40
- 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 +2 -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 +64 -9
- package/src/plugin/plugin-manager.ts +2 -1
- 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
|
@@ -21,21 +21,21 @@
|
|
|
21
21
|
// code copied and modified from https://github.com/microsoft/vscode/blob/1.47.3/src/vs/workbench/api/browser/mainThreadAuthentication.ts
|
|
22
22
|
|
|
23
23
|
import { interfaces } from '@theia/core/shared/inversify';
|
|
24
|
-
import { AuthenticationExt, AuthenticationMain, MAIN_RPC_CONTEXT } from '../../common/plugin-api-rpc';
|
|
24
|
+
import { AuthenticationExt, AuthenticationMain, PluginManagerExt, MAIN_RPC_CONTEXT } from '../../common/plugin-api-rpc';
|
|
25
25
|
import { RPCProtocol } from '../../common/rpc-protocol';
|
|
26
26
|
import { MessageService } from '@theia/core/lib/common/message-service';
|
|
27
|
-
import { StorageService } from '@theia/core/lib/browser';
|
|
27
|
+
import { Dialog, StorageService } from '@theia/core/lib/browser';
|
|
28
28
|
import {
|
|
29
29
|
AuthenticationProvider,
|
|
30
30
|
AuthenticationService,
|
|
31
31
|
readAllowedExtensions
|
|
32
32
|
} from '@theia/core/lib/browser/authentication-service';
|
|
33
33
|
import { QuickPickService } from '@theia/core/lib/common/quick-pick-service';
|
|
34
|
-
import
|
|
35
|
-
AuthenticationSession,
|
|
36
|
-
AuthenticationSessionsChangeEvent
|
|
37
|
-
} from '../../common/plugin-api-rpc-model';
|
|
34
|
+
import * as theia from '@theia/plugin';
|
|
38
35
|
import { QuickPickValue } from '@theia/core/lib/browser/quick-input/quick-input-service';
|
|
36
|
+
import { nls } from '@theia/core/lib/common/nls';
|
|
37
|
+
|
|
38
|
+
export function getAuthenticationProviderActivationEvent(id: string): string { return `onAuthenticationRequest:${id}`; }
|
|
39
39
|
|
|
40
40
|
export class AuthenticationMainImpl implements AuthenticationMain {
|
|
41
41
|
private readonly proxy: AuthenticationExt;
|
|
@@ -43,15 +43,17 @@ export class AuthenticationMainImpl implements AuthenticationMain {
|
|
|
43
43
|
private readonly storageService: StorageService;
|
|
44
44
|
private readonly authenticationService: AuthenticationService;
|
|
45
45
|
private readonly quickPickService: QuickPickService;
|
|
46
|
+
private readonly extensionService: PluginManagerExt;
|
|
46
47
|
constructor(rpc: RPCProtocol, container: interfaces.Container) {
|
|
47
48
|
this.proxy = rpc.getProxy(MAIN_RPC_CONTEXT.AUTHENTICATION_EXT);
|
|
48
49
|
this.messageService = container.get(MessageService);
|
|
49
50
|
this.storageService = container.get(StorageService);
|
|
50
51
|
this.authenticationService = container.get(AuthenticationService);
|
|
51
52
|
this.quickPickService = container.get(QuickPickService);
|
|
53
|
+
this.extensionService = rpc.getProxy(MAIN_RPC_CONTEXT.HOSTED_PLUGIN_MANAGER_EXT);
|
|
52
54
|
|
|
53
55
|
this.authenticationService.onDidChangeSessions(e => {
|
|
54
|
-
this.proxy.$onDidChangeAuthenticationSessions(e.providerId, e.label
|
|
56
|
+
this.proxy.$onDidChangeAuthenticationSessions(e.providerId, e.label);
|
|
55
57
|
});
|
|
56
58
|
this.authenticationService.onDidRegisterAuthenticationProvider(info => {
|
|
57
59
|
this.proxy.$onDidChangeAuthenticationProviders([info], []);
|
|
@@ -73,7 +75,7 @@ export class AuthenticationMainImpl implements AuthenticationMain {
|
|
|
73
75
|
this.authenticationService.unregisterAuthenticationProvider(id);
|
|
74
76
|
}
|
|
75
77
|
|
|
76
|
-
async $updateSessions(id: string, event:
|
|
78
|
+
async $updateSessions(id: string, event: theia.AuthenticationProviderAuthenticationSessionsChangeEvent): Promise<void> {
|
|
77
79
|
this.authenticationService.updateSessions(id, event);
|
|
78
80
|
}
|
|
79
81
|
|
|
@@ -86,75 +88,85 @@ export class AuthenticationMainImpl implements AuthenticationMain {
|
|
|
86
88
|
}
|
|
87
89
|
|
|
88
90
|
async $getSession(providerId: string, scopes: string[], extensionId: string, extensionName: string,
|
|
89
|
-
options:
|
|
90
|
-
const
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
91
|
+
options: theia.AuthenticationGetSessionOptions): Promise<theia.AuthenticationSession | undefined> {
|
|
92
|
+
const sessions = await this.authenticationService.getSessions(providerId, scopes);
|
|
93
|
+
|
|
94
|
+
// Error cases
|
|
95
|
+
if (options.forceNewSession && !sessions.length) {
|
|
96
|
+
throw new Error('No existing sessions found.');
|
|
97
|
+
}
|
|
98
|
+
if (options.forceNewSession && options.createIfNone) {
|
|
99
|
+
throw new Error('Invalid combination of options. Please remove one of the following: forceNewSession, createIfNone');
|
|
100
|
+
}
|
|
101
|
+
if (options.forceNewSession && options.silent) {
|
|
102
|
+
throw new Error('Invalid combination of options. Please remove one of the following: forceNewSession, silent');
|
|
103
|
+
}
|
|
104
|
+
if (options.createIfNone && options.silent) {
|
|
105
|
+
throw new Error('Invalid combination of options. Please remove one of the following: createIfNone, silent');
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
const supportsMultipleAccounts = this.authenticationService.supportsMultipleAccounts(providerId);
|
|
109
|
+
// Check if the sessions we have are valid
|
|
110
|
+
if (!options.forceNewSession && sessions.length) {
|
|
111
|
+
if (supportsMultipleAccounts) {
|
|
112
|
+
if (options.clearSessionPreference) {
|
|
113
|
+
await this.storageService.setData(`authentication-session-${extensionName}-${providerId}`, undefined);
|
|
100
114
|
} else {
|
|
101
|
-
|
|
115
|
+
const existingSessionPreference = await this.storageService.getData(`authentication-session-${extensionName}-${providerId}`);
|
|
116
|
+
if (existingSessionPreference) {
|
|
117
|
+
const matchingSession = sessions.find(session => session.id === existingSessionPreference);
|
|
118
|
+
if (matchingSession && await this.isAccessAllowed(providerId, matchingSession.account.label, extensionId)) {
|
|
119
|
+
return matchingSession;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
102
122
|
}
|
|
123
|
+
} else if (await this.isAccessAllowed(providerId, sessions[0].account.label, extensionId)) {
|
|
124
|
+
return sessions[0];
|
|
103
125
|
}
|
|
126
|
+
}
|
|
104
127
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
throw new Error('User did not consent to login.');
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
const session = await this.authenticationService.login(providerId, scopes);
|
|
116
|
-
await this.setTrustedExtensionAndAccountPreference(providerId, session.account.label, extensionId, extensionName, session.id);
|
|
117
|
-
return session;
|
|
118
|
-
} else {
|
|
119
|
-
await this.requestNewSession(providerId, scopes, extensionId, extensionName);
|
|
120
|
-
return undefined;
|
|
128
|
+
// We may need to prompt because we don't have a valid session modal flows
|
|
129
|
+
if (options.createIfNone || options.forceNewSession) {
|
|
130
|
+
const providerName = this.authenticationService.getLabel(providerId);
|
|
131
|
+
const detail = (typeof options.forceNewSession === 'object') ? options.forceNewSession!.detail : undefined;
|
|
132
|
+
const isAllowed = await this.loginPrompt(providerName, extensionName, !!options.forceNewSession, detail);
|
|
133
|
+
if (!isAllowed) {
|
|
134
|
+
throw new Error('User did not consent to login.');
|
|
121
135
|
}
|
|
136
|
+
|
|
137
|
+
const session = sessions?.length && !options.forceNewSession && supportsMultipleAccounts
|
|
138
|
+
? await this.selectSession(providerId, providerName, extensionId, extensionName, sessions, scopes, !!options.clearSessionPreference)
|
|
139
|
+
: await this.authenticationService.login(providerId, scopes);
|
|
140
|
+
await this.setTrustedExtensionAndAccountPreference(providerId, session.account.label, extensionId, extensionName, session.id);
|
|
141
|
+
return session;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
// passive flows (silent or default)
|
|
145
|
+
const validSession = sessions.find(s => this.isAccessAllowed(providerId, s.account.label, extensionId));
|
|
146
|
+
if (!options.silent && !validSession) {
|
|
147
|
+
this.authenticationService.requestNewSession(providerId, scopes, extensionId, extensionName);
|
|
122
148
|
}
|
|
149
|
+
return validSession;
|
|
123
150
|
}
|
|
124
151
|
|
|
125
152
|
protected async selectSession(providerId: string, providerName: string, extensionId: string, extensionName: string,
|
|
126
|
-
potentialSessions: AuthenticationSession[]
|
|
153
|
+
potentialSessions: Readonly<theia.AuthenticationSession[]>, scopes: string[], clearSessionPreference: boolean): Promise<theia.AuthenticationSession> {
|
|
127
154
|
if (!potentialSessions.length) {
|
|
128
155
|
throw new Error('No potential sessions found');
|
|
129
156
|
}
|
|
130
157
|
|
|
131
|
-
if (clearSessionPreference) {
|
|
132
|
-
await this.storageService.setData(`authentication-session-${extensionName}-${providerId}`, undefined);
|
|
133
|
-
} else {
|
|
134
|
-
const existingSessionPreference = await this.storageService.getData(`authentication-session-${extensionName}-${providerId}`);
|
|
135
|
-
if (existingSessionPreference) {
|
|
136
|
-
const matchingSession = potentialSessions.find(session => session.id === existingSessionPreference);
|
|
137
|
-
if (matchingSession) {
|
|
138
|
-
const allowed = await this.getSessionsPrompt(providerId, matchingSession.account.label, providerName, extensionId, extensionName);
|
|
139
|
-
if (allowed) {
|
|
140
|
-
return matchingSession;
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
|
|
146
158
|
return new Promise(async (resolve, reject) => {
|
|
147
|
-
const items: QuickPickValue<{ session?: AuthenticationSession }>[] = potentialSessions.map(session => ({
|
|
159
|
+
const items: QuickPickValue<{ session?: theia.AuthenticationSession }>[] = potentialSessions.map(session => ({
|
|
148
160
|
label: session.account.label,
|
|
149
161
|
value: { session }
|
|
150
162
|
}));
|
|
151
163
|
items.push({
|
|
152
|
-
label: 'Sign in to another account',
|
|
164
|
+
label: nls.localizeByDefault('Sign in to another account'),
|
|
153
165
|
value: { session: undefined }
|
|
154
166
|
});
|
|
155
167
|
const selected = await this.quickPickService.show(items,
|
|
156
168
|
{
|
|
157
|
-
title:
|
|
169
|
+
title: nls.localizeByDefault("The extension '{0}' wants to access a {1} account", extensionName, providerName),
|
|
158
170
|
ignoreFocusOut: true
|
|
159
171
|
});
|
|
160
172
|
if (selected) {
|
|
@@ -196,20 +208,39 @@ export class AuthenticationMainImpl implements AuthenticationMain {
|
|
|
196
208
|
return allow;
|
|
197
209
|
}
|
|
198
210
|
|
|
199
|
-
protected async loginPrompt(providerName: string, extensionName: string): Promise<boolean> {
|
|
200
|
-
const
|
|
211
|
+
protected async loginPrompt(providerName: string, extensionName: string, recreatingSession: boolean, _detail?: string): Promise<boolean> {
|
|
212
|
+
const message = recreatingSession
|
|
213
|
+
? nls.localizeByDefault("The extension '{0}' wants you to sign in again using {1}.", extensionName, providerName)
|
|
214
|
+
: nls.localizeByDefault("The extension '{0}' wants to sign in using {1}.", extensionName, providerName);
|
|
215
|
+
const choice = await this.messageService.info(message, 'Allow', 'Cancel');
|
|
201
216
|
return choice === 'Allow';
|
|
202
217
|
}
|
|
203
218
|
|
|
219
|
+
protected async isAccessAllowed(providerId: string, accountName: string, extensionId: string): Promise<boolean> {
|
|
220
|
+
const allowList = await readAllowedExtensions(this.storageService, providerId, accountName);
|
|
221
|
+
return !!allowList.find(allowed => allowed.id === extensionId);
|
|
222
|
+
}
|
|
223
|
+
|
|
204
224
|
protected async setTrustedExtensionAndAccountPreference(providerId: string, accountName: string, extensionId: string, extensionName: string, sessionId: string): Promise<void> {
|
|
205
225
|
const allowList = await readAllowedExtensions(this.storageService, providerId, accountName);
|
|
206
226
|
if (!allowList.find(allowed => allowed.id === extensionId)) {
|
|
207
227
|
allowList.push({ id: extensionId, name: extensionName });
|
|
208
228
|
this.storageService.setData(`authentication-trusted-extensions-${providerId}-${accountName}`, JSON.stringify(allowList));
|
|
209
229
|
}
|
|
210
|
-
|
|
211
230
|
this.storageService.setData(`authentication-session-${extensionName}-${providerId}`, sessionId);
|
|
212
231
|
}
|
|
232
|
+
|
|
233
|
+
$ensureProvider(id: string): Promise<void> {
|
|
234
|
+
return this.extensionService.$activateByEvent(getAuthenticationProviderActivationEvent(id));
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
$removeSession(providerId: string, sessionId: string): Promise<void> {
|
|
238
|
+
return this.authenticationService.logout(providerId, sessionId);
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
$sendDidChangeSessions(providerId: string, event: theia.AuthenticationProviderAuthenticationSessionsChangeEvent): void {
|
|
242
|
+
this.authenticationService.updateSessions(providerId, event);
|
|
243
|
+
}
|
|
213
244
|
}
|
|
214
245
|
|
|
215
246
|
async function addAccountUsage(storageService: StorageService, providerId: string, accountName: string, extensionId: string, extensionName: string): Promise<void> {
|
|
@@ -244,6 +275,8 @@ export class AuthenticationProviderImpl implements AuthenticationProvider {
|
|
|
244
275
|
private accounts = new Map<string, string[]>(); // Map account name to session ids
|
|
245
276
|
private sessions = new Map<string, string>(); // Map account id to name
|
|
246
277
|
|
|
278
|
+
readonly onDidChangeSessions: theia.Event<theia.AuthenticationProviderAuthenticationSessionsChangeEvent>;
|
|
279
|
+
|
|
247
280
|
constructor(
|
|
248
281
|
private readonly proxy: AuthenticationExt,
|
|
249
282
|
public readonly id: string,
|
|
@@ -257,7 +290,7 @@ export class AuthenticationProviderImpl implements AuthenticationProvider {
|
|
|
257
290
|
return !!this.sessions.size;
|
|
258
291
|
}
|
|
259
292
|
|
|
260
|
-
private registerSession(session: AuthenticationSession): void {
|
|
293
|
+
private registerSession(session: theia.AuthenticationSession): void {
|
|
261
294
|
this.sessions.set(session.id, session.account.label);
|
|
262
295
|
|
|
263
296
|
const existingSessionsForAccount = this.accounts.get(session.account.label);
|
|
@@ -272,34 +305,41 @@ export class AuthenticationProviderImpl implements AuthenticationProvider {
|
|
|
272
305
|
async signOut(accountName: string): Promise<void> {
|
|
273
306
|
const accountUsages = await readAccountUsages(this.storageService, this.id, accountName);
|
|
274
307
|
const sessionsForAccount = this.accounts.get(accountName);
|
|
275
|
-
const result = await this.messageService.info(accountUsages.length
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
308
|
+
const result = await this.messageService.info(accountUsages.length
|
|
309
|
+
? nls.localizeByDefault("The account '{0}' has been used by: \n\n{1}\n\n Sign out from these extensions?", accountName,
|
|
310
|
+
accountUsages.map(usage => usage.extensionName).join(', '))
|
|
311
|
+
: nls.localizeByDefault("Sign out of '{0}'?", accountName),
|
|
312
|
+
nls.localizeByDefault('Sign Out'),
|
|
313
|
+
Dialog.CANCEL);
|
|
314
|
+
|
|
315
|
+
if (result && result === nls.localizeByDefault('Sign Out') && sessionsForAccount) {
|
|
279
316
|
sessionsForAccount.forEach(sessionId => this.logout(sessionId));
|
|
280
317
|
removeAccountUsage(this.storageService, this.id, accountName);
|
|
281
318
|
}
|
|
282
319
|
}
|
|
283
320
|
|
|
284
|
-
async getSessions(): Promise<ReadonlyArray<AuthenticationSession>> {
|
|
285
|
-
return this.proxy.$getSessions(this.id);
|
|
321
|
+
async getSessions(scopes?: string[]): Promise<ReadonlyArray<theia.AuthenticationSession>> {
|
|
322
|
+
return this.proxy.$getSessions(this.id, scopes);
|
|
286
323
|
}
|
|
287
324
|
|
|
288
|
-
async updateSessionItems(event:
|
|
325
|
+
async updateSessionItems(event: theia.AuthenticationProviderAuthenticationSessionsChangeEvent): Promise<void> {
|
|
289
326
|
const { added, removed } = event;
|
|
290
327
|
const session = await this.proxy.$getSessions(this.id);
|
|
291
|
-
const addedSessions = session.filter(s => added.some(
|
|
292
|
-
|
|
293
|
-
removed.forEach(
|
|
294
|
-
const
|
|
295
|
-
if (
|
|
296
|
-
this.sessions.
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
328
|
+
const addedSessions = session.filter(s => added.some(addedSession => this.getSessionId(addedSession) === s.id));
|
|
329
|
+
|
|
330
|
+
removed.forEach(removedSession => {
|
|
331
|
+
const sessionId = this.getSessionId(removedSession);
|
|
332
|
+
if (sessionId) {
|
|
333
|
+
const accountName = this.sessions.get(sessionId);
|
|
334
|
+
if (accountName) {
|
|
335
|
+
this.sessions.delete(sessionId);
|
|
336
|
+
const sessionsForAccount = this.accounts.get(accountName) || [];
|
|
337
|
+
const sessionIndex = sessionsForAccount.indexOf(sessionId);
|
|
338
|
+
sessionsForAccount.splice(sessionIndex);
|
|
339
|
+
|
|
340
|
+
if (!sessionsForAccount.length) {
|
|
341
|
+
this.accounts.delete(accountName);
|
|
342
|
+
}
|
|
303
343
|
}
|
|
304
344
|
}
|
|
305
345
|
});
|
|
@@ -307,14 +347,30 @@ export class AuthenticationProviderImpl implements AuthenticationProvider {
|
|
|
307
347
|
addedSessions.forEach(s => this.registerSession(s));
|
|
308
348
|
}
|
|
309
349
|
|
|
310
|
-
login(scopes: string[]): Promise<AuthenticationSession> {
|
|
311
|
-
return this.proxy.$
|
|
350
|
+
login(scopes: string[]): Promise<theia.AuthenticationSession> {
|
|
351
|
+
return this.proxy.$createSession(this.id, scopes);
|
|
312
352
|
}
|
|
313
353
|
|
|
314
354
|
async logout(sessionId: string): Promise<void> {
|
|
315
|
-
await this.proxy.$
|
|
355
|
+
await this.proxy.$removeSession(this.id, sessionId);
|
|
316
356
|
this.messageService.info('Successfully signed out.');
|
|
317
357
|
}
|
|
358
|
+
|
|
359
|
+
createSession(scopes: string[]): Thenable<theia.AuthenticationSession> {
|
|
360
|
+
return this.login(scopes);
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
removeSession(sessionId: string): Thenable<void> {
|
|
364
|
+
return this.logout(sessionId);
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
// utility method to be backwards compatible with the old AuthenticationProviderAuthenticationSessionsChangeEvent containing only the session id string
|
|
368
|
+
private getSessionId(obj: string | theia.AuthenticationSession | undefined): string | undefined {
|
|
369
|
+
if (!obj || typeof obj === 'string') {
|
|
370
|
+
return obj;
|
|
371
|
+
}
|
|
372
|
+
return obj.id;
|
|
373
|
+
}
|
|
318
374
|
}
|
|
319
375
|
|
|
320
376
|
async function readAccountUsages(storageService: StorageService, providerId: string, accountName: string): Promise<AccountUsage[]> {
|
|
@@ -114,7 +114,7 @@ export class CommentThreadWidget extends BaseWidget {
|
|
|
114
114
|
this.commentService.disposeCommentThread(this.owner, this._commentThread.threadId);
|
|
115
115
|
}
|
|
116
116
|
|
|
117
|
-
dispose(): void {
|
|
117
|
+
override dispose(): void {
|
|
118
118
|
super.dispose();
|
|
119
119
|
if (this.commentGlyphWidget) {
|
|
120
120
|
this.commentGlyphWidget.dispose();
|
|
@@ -134,7 +134,7 @@ export class CommentThreadWidget extends BaseWidget {
|
|
|
134
134
|
}
|
|
135
135
|
}
|
|
136
136
|
|
|
137
|
-
hide(): void {
|
|
137
|
+
override hide(): void {
|
|
138
138
|
this.zoneWidget.hide();
|
|
139
139
|
this.isExpanded = false;
|
|
140
140
|
super.hide();
|
|
@@ -231,7 +231,7 @@ export class CommentThreadWidget extends BaseWidget {
|
|
|
231
231
|
return label;
|
|
232
232
|
}
|
|
233
233
|
|
|
234
|
-
update(): void {
|
|
234
|
+
override update(): void {
|
|
235
235
|
if (!this.isExpanded) {
|
|
236
236
|
return;
|
|
237
237
|
}
|
|
@@ -342,7 +342,7 @@ export class CommentForm<P extends CommentForm.Props = CommentForm.Props> extend
|
|
|
342
342
|
}, 100);
|
|
343
343
|
};
|
|
344
344
|
|
|
345
|
-
componentDidMount(): void {
|
|
345
|
+
override componentDidMount(): void {
|
|
346
346
|
// Wait for the widget to be rendered.
|
|
347
347
|
setTimeout(() => {
|
|
348
348
|
this.inputRef.current?.focus();
|
|
@@ -377,7 +377,7 @@ export class CommentForm<P extends CommentForm.Props = CommentForm.Props> extend
|
|
|
377
377
|
});
|
|
378
378
|
}
|
|
379
379
|
|
|
380
|
-
render(): React.ReactNode {
|
|
380
|
+
override render(): React.ReactNode {
|
|
381
381
|
const { commands, commentThread, contextKeyService } = this.props;
|
|
382
382
|
const hasExistingComments = commentThread.comments && commentThread.comments.length > 0;
|
|
383
383
|
return <div className={'comment-form' + (this.state.expanded || commentThread.comments && commentThread.comments.length === 0 ? ' expand' : '')}>
|
|
@@ -453,7 +453,7 @@ export class ReviewComment<P extends ReviewComment.Props = ReviewComment.Props>
|
|
|
453
453
|
protected showHover = () => this.setState({ hover: true });
|
|
454
454
|
protected hideHover = () => this.setState({ hover: false });
|
|
455
455
|
|
|
456
|
-
render(): React.ReactNode {
|
|
456
|
+
override render(): React.ReactNode {
|
|
457
457
|
const { comment, commentForm, contextKeyService, menus, commands, commentThread } = this.props;
|
|
458
458
|
const commentUniqueId = comment.uniqueIdInThread;
|
|
459
459
|
const { hover } = this.state;
|
|
@@ -499,7 +499,7 @@ namespace CommentBody {
|
|
|
499
499
|
}
|
|
500
500
|
|
|
501
501
|
export class CommentBody extends React.Component<CommentBody.Props> {
|
|
502
|
-
render(): React.ReactNode {
|
|
502
|
+
override render(): React.ReactNode {
|
|
503
503
|
const { value, isVisible } = this.props;
|
|
504
504
|
if (!isVisible) {
|
|
505
505
|
return false;
|
|
@@ -528,7 +528,7 @@ export class CommentEditContainer extends React.Component<CommentEditContainer.P
|
|
|
528
528
|
private dirtyCommentMode: CommentMode | undefined;
|
|
529
529
|
private dirtyCommentFormState: boolean | undefined;
|
|
530
530
|
|
|
531
|
-
componentDidUpdate(prevProps: Readonly<CommentEditContainer.Props>, prevState: Readonly<{}>): void {
|
|
531
|
+
override componentDidUpdate(prevProps: Readonly<CommentEditContainer.Props>, prevState: Readonly<{}>): void {
|
|
532
532
|
const commentFormState = this.props.commentForm.current?.state;
|
|
533
533
|
const mode = this.props.comment.mode;
|
|
534
534
|
if (this.dirtyCommentMode !== mode || (this.dirtyCommentFormState !== commentFormState?.expanded && !commentFormState?.expanded)) {
|
|
@@ -545,7 +545,7 @@ export class CommentEditContainer extends React.Component<CommentEditContainer.P
|
|
|
545
545
|
this.dirtyCommentFormState = commentFormState?.expanded;
|
|
546
546
|
}
|
|
547
547
|
|
|
548
|
-
render(): React.ReactNode {
|
|
548
|
+
override render(): React.ReactNode {
|
|
549
549
|
const { menus, comment, commands, commentThread, contextKeyService } = this.props;
|
|
550
550
|
if (!(comment.mode === CommentMode.Editing)) {
|
|
551
551
|
return false;
|
|
@@ -588,7 +588,7 @@ namespace CommentsInlineAction {
|
|
|
588
588
|
}
|
|
589
589
|
|
|
590
590
|
export class CommentsInlineAction extends React.Component<CommentsInlineAction.Props> {
|
|
591
|
-
render(): React.ReactNode {
|
|
591
|
+
override render(): React.ReactNode {
|
|
592
592
|
const { node, commands, contextKeyService, commentThread, commentUniqueId } = this.props;
|
|
593
593
|
if (node.action.when && !contextKeyService.match(node.action.when)) {
|
|
594
594
|
return false;
|
|
@@ -618,7 +618,7 @@ namespace CommentActions {
|
|
|
618
618
|
}
|
|
619
619
|
|
|
620
620
|
export class CommentActions extends React.Component<CommentActions.Props> {
|
|
621
|
-
render(): React.ReactNode {
|
|
621
|
+
override render(): React.ReactNode {
|
|
622
622
|
const { contextKeyService, commands, menu, commentThread, getInput, clearInput } = this.props;
|
|
623
623
|
return <div className={'form-actions'}>
|
|
624
624
|
{menu.children.map((node, index) => node instanceof ActionMenuNode &&
|
|
@@ -647,7 +647,7 @@ namespace CommentAction {
|
|
|
647
647
|
}
|
|
648
648
|
|
|
649
649
|
export class CommentAction extends React.Component<CommentAction.Props> {
|
|
650
|
-
render(): React.ReactNode {
|
|
650
|
+
override render(): React.ReactNode {
|
|
651
651
|
const classNames = ['comments-button', 'comments-text-button', 'theia-button'];
|
|
652
652
|
const { node, commands, contextKeyService, onClick } = this.props;
|
|
653
653
|
if (node.action.when && !contextKeyService.match(node.action.when)) {
|
|
@@ -25,9 +25,9 @@ import { CustomEditorModel } from './custom-editors-main';
|
|
|
25
25
|
|
|
26
26
|
@injectable()
|
|
27
27
|
export class CustomEditorWidget extends WebviewWidget implements SaveableSource, NavigatableWidget {
|
|
28
|
-
static FACTORY_ID = 'plugin-custom-editor';
|
|
28
|
+
static override FACTORY_ID = 'plugin-custom-editor';
|
|
29
29
|
|
|
30
|
-
id: string;
|
|
30
|
+
override id: string;
|
|
31
31
|
resource: URI;
|
|
32
32
|
|
|
33
33
|
protected _modelRef: Reference<CustomEditorModel>;
|
|
@@ -47,7 +47,7 @@ export class CustomEditorWidget extends WebviewWidget implements SaveableSource,
|
|
|
47
47
|
protected readonly undoRedoService: UndoRedoService;
|
|
48
48
|
|
|
49
49
|
@postConstruct()
|
|
50
|
-
protected init(): void {
|
|
50
|
+
protected override init(): void {
|
|
51
51
|
super.init();
|
|
52
52
|
this.id = CustomEditorWidget.FACTORY_ID + ':' + this.identifier.id;
|
|
53
53
|
this.toDispose.push(this.fileService.onDidRunOperation(e => {
|
|
@@ -83,14 +83,14 @@ export class CustomEditorWidget extends WebviewWidget implements SaveableSource,
|
|
|
83
83
|
return this.resource.withPath(resourceUri.path);
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
-
storeState(): CustomEditorWidget.State {
|
|
86
|
+
override storeState(): CustomEditorWidget.State {
|
|
87
87
|
return {
|
|
88
88
|
...super.storeState(),
|
|
89
89
|
strResource: this.resource.toString(),
|
|
90
90
|
};
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
-
restoreState(oldState: CustomEditorWidget.State): void {
|
|
93
|
+
override restoreState(oldState: CustomEditorWidget.State): void {
|
|
94
94
|
const { strResource } = oldState;
|
|
95
95
|
this.resource = new URI(strResource);
|
|
96
96
|
super.restoreState(oldState);
|
|
@@ -34,22 +34,22 @@ import { Channel } from '@theia/debug/lib/common/debug-service';
|
|
|
34
34
|
|
|
35
35
|
export class PluginDebugSession extends DebugSession {
|
|
36
36
|
constructor(
|
|
37
|
-
readonly id: string,
|
|
38
|
-
readonly options: DebugSessionOptions,
|
|
39
|
-
readonly parentSession: DebugSession | undefined,
|
|
40
|
-
protected readonly connection: DebugSessionConnection,
|
|
41
|
-
protected readonly terminalServer: TerminalService,
|
|
42
|
-
protected readonly editorManager: EditorManager,
|
|
43
|
-
protected readonly breakpoints: BreakpointManager,
|
|
44
|
-
protected readonly labelProvider: LabelProvider,
|
|
45
|
-
protected readonly messages: MessageClient,
|
|
46
|
-
protected readonly fileService: FileService,
|
|
37
|
+
override readonly id: string,
|
|
38
|
+
override readonly options: DebugSessionOptions,
|
|
39
|
+
override readonly parentSession: DebugSession | undefined,
|
|
40
|
+
protected override readonly connection: DebugSessionConnection,
|
|
41
|
+
protected override readonly terminalServer: TerminalService,
|
|
42
|
+
protected override readonly editorManager: EditorManager,
|
|
43
|
+
protected override readonly breakpoints: BreakpointManager,
|
|
44
|
+
protected override readonly labelProvider: LabelProvider,
|
|
45
|
+
protected override readonly messages: MessageClient,
|
|
46
|
+
protected override readonly fileService: FileService,
|
|
47
47
|
protected readonly terminalOptionsExt: TerminalOptionsExt | undefined,
|
|
48
|
-
protected readonly debugContributionProvider: ContributionProvider<DebugContribution>) {
|
|
48
|
+
protected override readonly debugContributionProvider: ContributionProvider<DebugContribution>) {
|
|
49
49
|
super(id, options, parentSession, connection, terminalServer, editorManager, breakpoints, labelProvider, messages, fileService, debugContributionProvider);
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
protected async doCreateTerminal(terminalWidgetOptions: TerminalWidgetOptions): Promise<TerminalWidget> {
|
|
52
|
+
protected override async doCreateTerminal(terminalWidgetOptions: TerminalWidgetOptions): Promise<TerminalWidget> {
|
|
53
53
|
terminalWidgetOptions = Object.assign({}, terminalWidgetOptions, this.terminalOptionsExt);
|
|
54
54
|
return super.doCreateTerminal(terminalWidgetOptions);
|
|
55
55
|
}
|
|
@@ -61,22 +61,22 @@ export class PluginDebugSession extends DebugSession {
|
|
|
61
61
|
*/
|
|
62
62
|
export class PluginDebugSessionFactory extends DefaultDebugSessionFactory {
|
|
63
63
|
constructor(
|
|
64
|
-
protected readonly terminalService: TerminalService,
|
|
65
|
-
protected readonly editorManager: EditorManager,
|
|
66
|
-
protected readonly breakpoints: BreakpointManager,
|
|
67
|
-
protected readonly labelProvider: LabelProvider,
|
|
68
|
-
protected readonly messages: MessageClient,
|
|
69
|
-
protected readonly outputChannelManager: OutputChannelManager,
|
|
70
|
-
protected readonly debugPreferences: DebugPreferences,
|
|
64
|
+
protected override readonly terminalService: TerminalService,
|
|
65
|
+
protected override readonly editorManager: EditorManager,
|
|
66
|
+
protected override readonly breakpoints: BreakpointManager,
|
|
67
|
+
protected override readonly labelProvider: LabelProvider,
|
|
68
|
+
protected override readonly messages: MessageClient,
|
|
69
|
+
protected override readonly outputChannelManager: OutputChannelManager,
|
|
70
|
+
protected override readonly debugPreferences: DebugPreferences,
|
|
71
71
|
protected readonly connectionFactory: (sessionId: string) => Promise<Channel>,
|
|
72
|
-
protected readonly fileService: FileService,
|
|
72
|
+
protected override readonly fileService: FileService,
|
|
73
73
|
protected readonly terminalOptionsExt: TerminalOptionsExt | undefined,
|
|
74
|
-
protected readonly debugContributionProvider: ContributionProvider<DebugContribution>
|
|
74
|
+
protected override readonly debugContributionProvider: ContributionProvider<DebugContribution>
|
|
75
75
|
) {
|
|
76
76
|
super();
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
-
get(sessionId: string, options: DebugSessionOptions, parentSession?: DebugSession): DebugSession {
|
|
79
|
+
override get(sessionId: string, options: DebugSessionOptions, parentSession?: DebugSession): DebugSession {
|
|
80
80
|
const connection = new DebugSessionConnection(
|
|
81
81
|
sessionId,
|
|
82
82
|
this.connectionFactory,
|
|
@@ -42,7 +42,7 @@ export class ModalNotification extends AbstractDialog<string | undefined> {
|
|
|
42
42
|
super({ title: FrontendApplicationConfigProvider.get().applicationName });
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
protected onCloseRequest(msg: Message): void {
|
|
45
|
+
protected override onCloseRequest(msg: Message): void {
|
|
46
46
|
this.actionTitle = undefined;
|
|
47
47
|
this.accept();
|
|
48
48
|
}
|
|
@@ -718,6 +718,8 @@ export class LanguagesMainImpl implements LanguagesMain, Disposable {
|
|
|
718
718
|
const markers = monaco.services.StaticServices.markerService.get().read({ resource: model.uri }).filter(m => monaco.Range.areIntersectingOrTouching(m, range));
|
|
719
719
|
return this.provideCodeActions(handle, model, range, { markers, only: context.only }, token);
|
|
720
720
|
},
|
|
721
|
+
resolveCodeAction: (codeAction: monaco.languages.CodeAction, token: monaco.CancellationToken): Promise<monaco.languages.CodeAction> =>
|
|
722
|
+
this.resolveCodeAction(handle, codeAction, token),
|
|
721
723
|
providedCodeActionKinds
|
|
722
724
|
};
|
|
723
725
|
this.register(handle, monaco.modes.CodeActionProviderRegistry.register(languageSelector, quickFixProvider));
|
|
@@ -734,12 +736,20 @@ export class LanguagesMainImpl implements LanguagesMain, Disposable {
|
|
|
734
736
|
}
|
|
735
737
|
return {
|
|
736
738
|
actions: actions.map(a => toMonacoAction(a)),
|
|
737
|
-
dispose: () =>
|
|
738
|
-
// TODO this.proxy.$releaseCodeActions(handle, cacheId);
|
|
739
|
-
}
|
|
739
|
+
dispose: () => this.proxy.$releaseCodeActions(handle, actions.map(a => a.cacheId))
|
|
740
740
|
};
|
|
741
741
|
}
|
|
742
742
|
|
|
743
|
+
protected async resolveCodeAction(handle: number, codeAction: monaco.languages.CodeAction, token: monaco.CancellationToken): Promise<monaco.languages.CodeAction> {
|
|
744
|
+
// The cacheId is kept in toMonacoAction when converting a received CodeAction DTO to a monaco code action
|
|
745
|
+
const cacheId = (codeAction as CodeAction).cacheId;
|
|
746
|
+
if (cacheId !== undefined) {
|
|
747
|
+
const resolvedEdit = await this.proxy.$resolveCodeAction(handle, cacheId, token);
|
|
748
|
+
codeAction.edit = resolvedEdit && toMonacoWorkspaceEdit(resolvedEdit);
|
|
749
|
+
}
|
|
750
|
+
return codeAction;
|
|
751
|
+
}
|
|
752
|
+
|
|
743
753
|
$registerRenameProvider(handle: number, pluginInfo: PluginInfo, selector: SerializedDocumentFilter[], supportsResolveLocation: boolean): void {
|
|
744
754
|
const languageSelector = this.toLanguageSelector(selector);
|
|
745
755
|
const renameProvider = this.createRenameProvider(handle, supportsResolveLocation);
|
|
@@ -56,6 +56,7 @@ import { ThemingMainImpl } from './theming-main';
|
|
|
56
56
|
import { CommentsMainImp } from './comments/comments-main';
|
|
57
57
|
import { CustomEditorsMainImpl } from './custom-editors/custom-editors-main';
|
|
58
58
|
import { SecretsMainImpl } from './secrets-main';
|
|
59
|
+
import { WebviewViewsMainImpl } from './webview-views/webview-views-main';
|
|
59
60
|
|
|
60
61
|
export function setUpPluginApi(rpc: RPCProtocol, container: interfaces.Container): void {
|
|
61
62
|
const authenticationMain = new AuthenticationMainImpl(rpc, container);
|
|
@@ -127,6 +128,9 @@ export function setUpPluginApi(rpc: RPCProtocol, container: interfaces.Container
|
|
|
127
128
|
const customEditorsMain = new CustomEditorsMainImpl(rpc, container, webviewsMain);
|
|
128
129
|
rpc.set(PLUGIN_RPC_CONTEXT.CUSTOM_EDITORS_MAIN, customEditorsMain);
|
|
129
130
|
|
|
131
|
+
const webviewViewsMain = new WebviewViewsMainImpl(rpc, container, webviewsMain);
|
|
132
|
+
rpc.set(PLUGIN_RPC_CONTEXT.WEBVIEW_VIEWS_MAIN, webviewViewsMain);
|
|
133
|
+
|
|
130
134
|
const storageMain = new StorageMainImpl(container);
|
|
131
135
|
rpc.set(PLUGIN_RPC_CONTEXT.STORAGE_MAIN, storageMain);
|
|
132
136
|
|