@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
|
@@ -338,6 +338,7 @@ export interface CodeLensSymbol {
|
|
|
338
338
|
}
|
|
339
339
|
|
|
340
340
|
export interface CodeAction {
|
|
341
|
+
cacheId: number;
|
|
341
342
|
title: string;
|
|
342
343
|
command?: Command;
|
|
343
344
|
edit?: WorkspaceEdit;
|
|
@@ -511,11 +512,6 @@ export interface RenameLocation {
|
|
|
511
512
|
text: string;
|
|
512
513
|
}
|
|
513
514
|
|
|
514
|
-
export interface RenameProvider {
|
|
515
|
-
provideRenameEdits(model: monaco.editor.ITextModel, position: Position, newName: string): PromiseLike<WorkspaceEdit & Rejection>;
|
|
516
|
-
resolveRenameLocation?(model: monaco.editor.ITextModel, position: Position): PromiseLike<RenameLocation & Rejection>;
|
|
517
|
-
}
|
|
518
|
-
|
|
519
515
|
export interface CallHierarchyDefinition {
|
|
520
516
|
name: string;
|
|
521
517
|
kind: SymbolKind;
|
|
@@ -574,22 +570,22 @@ export interface LinePreview {
|
|
|
574
570
|
character: number;
|
|
575
571
|
}
|
|
576
572
|
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
scopes: ReadonlyArray<string>;
|
|
573
|
+
/**
|
|
574
|
+
* @deprecated Use {@link theia.AuthenticationSession} instead.
|
|
575
|
+
*/
|
|
576
|
+
export interface AuthenticationSession extends theia.AuthenticationSession {
|
|
582
577
|
}
|
|
583
578
|
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
579
|
+
/**
|
|
580
|
+
* @deprecated Use {@link theia.AuthenticationProviderAuthenticationSessionsChangeEvent} instead.
|
|
581
|
+
*/
|
|
582
|
+
export interface AuthenticationSessionsChangeEvent extends theia.AuthenticationProviderAuthenticationSessionsChangeEvent {
|
|
588
583
|
}
|
|
589
584
|
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
585
|
+
/**
|
|
586
|
+
* @deprecated Use {@link theia.AuthenticationProviderInformation} instead.
|
|
587
|
+
*/
|
|
588
|
+
export interface AuthenticationProviderInformation extends theia.AuthenticationProviderInformation {
|
|
593
589
|
}
|
|
594
590
|
|
|
595
591
|
export interface CommentOptions {
|
|
@@ -65,18 +65,20 @@ import {
|
|
|
65
65
|
CallHierarchyDefinition,
|
|
66
66
|
CallHierarchyReference,
|
|
67
67
|
SearchInWorkspaceResult,
|
|
68
|
-
AuthenticationSession,
|
|
69
|
-
AuthenticationSessionsChangeEvent,
|
|
70
|
-
AuthenticationProviderInformation,
|
|
71
68
|
Comment,
|
|
72
69
|
CommentOptions,
|
|
73
70
|
CommentThreadCollapsibleState,
|
|
74
71
|
CommentThread,
|
|
75
|
-
CommentThreadChangedEvent
|
|
72
|
+
CommentThreadChangedEvent
|
|
76
73
|
} from './plugin-api-rpc-model';
|
|
77
74
|
import { ExtPluginApi } from './plugin-ext-api-contribution';
|
|
78
75
|
import { KeysToAnyValues, KeysToKeysToAnyValue } from './types';
|
|
79
|
-
import {
|
|
76
|
+
import {
|
|
77
|
+
AuthenticationProviderAuthenticationSessionsChangeEvent,
|
|
78
|
+
CancellationToken,
|
|
79
|
+
Progress,
|
|
80
|
+
ProgressOptions,
|
|
81
|
+
} from '@theia/plugin';
|
|
80
82
|
import { DebuggerDescription } from '@theia/debug/lib/common/debug-service';
|
|
81
83
|
import { DebugProtocol } from 'vscode-debugprotocol';
|
|
82
84
|
import { SymbolInformation } from '@theia/core/shared/vscode-languageserver-protocol';
|
|
@@ -93,6 +95,7 @@ import type {
|
|
|
93
95
|
import { SerializableEnvironmentVariableCollection } from '@theia/terminal/lib/common/base-terminal-protocol';
|
|
94
96
|
import { ThemeType } from '@theia/core/lib/common/theme';
|
|
95
97
|
import { Disposable } from '@theia/core/lib/common/disposable';
|
|
98
|
+
// eslint-disable-next-line @theia/runtime-import-check
|
|
96
99
|
import { PickOptions, QuickInputButtonHandle, QuickPickItem, WidgetOpenerOptions } from '@theia/core/lib/browser';
|
|
97
100
|
|
|
98
101
|
export interface PreferenceData {
|
|
@@ -621,6 +624,7 @@ export interface WorkspaceMain {
|
|
|
621
624
|
$onTextDocumentContentChange(uri: string, content: string): void;
|
|
622
625
|
$updateWorkspaceFolders(start: number, deleteCount?: number, ...rootsToAdd: string[]): Promise<void>;
|
|
623
626
|
$getWorkspace(): Promise<files.FileStat | undefined>;
|
|
627
|
+
$requestWorkspaceTrust(options?: theia.WorkspaceTrustRequestOptions): Promise<boolean | undefined>;
|
|
624
628
|
}
|
|
625
629
|
|
|
626
630
|
export interface WorkspaceExt {
|
|
@@ -628,6 +632,7 @@ export interface WorkspaceExt {
|
|
|
628
632
|
$onWorkspaceLocationChanged(event: files.FileStat | undefined): void;
|
|
629
633
|
$provideTextDocumentContent(uri: string): Promise<string | undefined>;
|
|
630
634
|
$onTextSearchResult(searchRequestId: number, done: boolean, result?: SearchInWorkspaceResult): void;
|
|
635
|
+
$onWorkspaceTrustChanged(trust: boolean | undefined): void;
|
|
631
636
|
}
|
|
632
637
|
|
|
633
638
|
export interface TimelineExt {
|
|
@@ -1439,6 +1444,8 @@ export interface LanguagesExt {
|
|
|
1439
1444
|
context: CodeActionContext,
|
|
1440
1445
|
token: CancellationToken
|
|
1441
1446
|
): Promise<CodeAction[] | undefined>;
|
|
1447
|
+
$releaseCodeActions(handle: number, cacheIds: number[]): void;
|
|
1448
|
+
$resolveCodeAction(handle: number, cacheId: number, token: CancellationToken): Promise<WorkspaceEditDto | undefined>;
|
|
1442
1449
|
$provideDocumentSymbols(handle: number, resource: UriComponents, token: CancellationToken): Promise<DocumentSymbol[] | undefined>;
|
|
1443
1450
|
$provideWorkspaceSymbols(handle: number, query: string, token: CancellationToken): PromiseLike<SymbolInformation[]>;
|
|
1444
1451
|
$resolveWorkspaceSymbol(handle: number, symbol: SymbolInformation, token: CancellationToken): PromiseLike<SymbolInformation | undefined>;
|
|
@@ -1549,6 +1556,27 @@ export interface WebviewsMain {
|
|
|
1549
1556
|
$unregisterSerializer(viewType: string): void;
|
|
1550
1557
|
}
|
|
1551
1558
|
|
|
1559
|
+
export interface WebviewViewsExt {
|
|
1560
|
+
$resolveWebviewView(handle: string,
|
|
1561
|
+
viewType: string,
|
|
1562
|
+
title: string | undefined,
|
|
1563
|
+
state: any,
|
|
1564
|
+
cancellation: CancellationToken): Promise<void>;
|
|
1565
|
+
$onDidChangeWebviewViewVisibility(handle: string, visible: boolean): void;
|
|
1566
|
+
$disposeWebviewView(handle: string): void;
|
|
1567
|
+
}
|
|
1568
|
+
|
|
1569
|
+
export interface WebviewViewsMain extends Disposable {
|
|
1570
|
+
$registerWebviewViewProvider(viewType: string,
|
|
1571
|
+
options: { retainContextWhenHidden?: boolean, serializeBuffersForPostMessage: boolean }): void;
|
|
1572
|
+
$unregisterWebviewViewProvider(viewType: string): void;
|
|
1573
|
+
|
|
1574
|
+
$setWebviewViewTitle(handle: string, value: string | undefined): void;
|
|
1575
|
+
$setWebviewViewDescription(handle: string, value: string | undefined): void;
|
|
1576
|
+
|
|
1577
|
+
$show(handle: string, preserveFocus: boolean): void;
|
|
1578
|
+
}
|
|
1579
|
+
|
|
1552
1580
|
export interface CustomEditorsExt {
|
|
1553
1581
|
$resolveWebviewEditor(
|
|
1554
1582
|
resource: UriComponents,
|
|
@@ -1743,6 +1771,7 @@ export const PLUGIN_RPC_CONTEXT = {
|
|
|
1743
1771
|
CONNECTION_MAIN: createProxyIdentifier<ConnectionMain>('ConnectionMain'),
|
|
1744
1772
|
WEBVIEWS_MAIN: createProxyIdentifier<WebviewsMain>('WebviewsMain'),
|
|
1745
1773
|
CUSTOM_EDITORS_MAIN: createProxyIdentifier<CustomEditorsMain>('CustomEditorsMain'),
|
|
1774
|
+
WEBVIEW_VIEWS_MAIN: createProxyIdentifier<WebviewViewsMain>('WebviewViewsMain'),
|
|
1746
1775
|
STORAGE_MAIN: createProxyIdentifier<StorageMain>('StorageMain'),
|
|
1747
1776
|
TASKS_MAIN: createProxyIdentifier<TasksMain>('TasksMain'),
|
|
1748
1777
|
DEBUG_MAIN: createProxyIdentifier<DebugMain>('DebugMain'),
|
|
@@ -1777,6 +1806,7 @@ export const MAIN_RPC_CONTEXT = {
|
|
|
1777
1806
|
CONNECTION_EXT: createProxyIdentifier<ConnectionExt>('ConnectionExt'),
|
|
1778
1807
|
WEBVIEWS_EXT: createProxyIdentifier<WebviewsExt>('WebviewsExt'),
|
|
1779
1808
|
CUSTOM_EDITORS_EXT: createProxyIdentifier<CustomEditorsExt>('CustomEditorsExt'),
|
|
1809
|
+
WEBVIEW_VIEWS_EXT: createProxyIdentifier<WebviewViewsExt>('WebviewViewsExt'),
|
|
1780
1810
|
STORAGE_EXT: createProxyIdentifier<StorageExt>('StorageExt'),
|
|
1781
1811
|
TASKS_EXT: createProxyIdentifier<TasksExt>('TasksExt'),
|
|
1782
1812
|
DEBUG_EXT: createProxyIdentifier<DebugExt>('DebugExt'),
|
|
@@ -1812,21 +1842,23 @@ export interface TasksMain {
|
|
|
1812
1842
|
}
|
|
1813
1843
|
|
|
1814
1844
|
export interface AuthenticationExt {
|
|
1815
|
-
$getSessions(id: string): Promise<ReadonlyArray<AuthenticationSession>>;
|
|
1816
|
-
$
|
|
1817
|
-
$
|
|
1818
|
-
$onDidChangeAuthenticationSessions(id: string, label: string
|
|
1819
|
-
$onDidChangeAuthenticationProviders(added: AuthenticationProviderInformation[], removed: AuthenticationProviderInformation[]): Promise<void>;
|
|
1845
|
+
$getSessions(id: string, scopes?: string[]): Promise<ReadonlyArray<theia.AuthenticationSession>>;
|
|
1846
|
+
$createSession(id: string, scopes: string[]): Promise<theia.AuthenticationSession>;
|
|
1847
|
+
$removeSession(id: string, sessionId: string): Promise<void>;
|
|
1848
|
+
$onDidChangeAuthenticationSessions(id: string, label: string): Promise<void>;
|
|
1849
|
+
$onDidChangeAuthenticationProviders(added: theia.AuthenticationProviderInformation[], removed: theia.AuthenticationProviderInformation[]): Promise<void>;
|
|
1850
|
+
$setProviders(providers: theia.AuthenticationProviderInformation[]): Promise<void>;
|
|
1820
1851
|
}
|
|
1821
1852
|
|
|
1822
1853
|
export interface AuthenticationMain {
|
|
1823
1854
|
$registerAuthenticationProvider(id: string, label: string, supportsMultipleAccounts: boolean): void;
|
|
1824
1855
|
$unregisterAuthenticationProvider(id: string): void;
|
|
1825
1856
|
$getProviderIds(): Promise<string[]>;
|
|
1826
|
-
$
|
|
1827
|
-
$
|
|
1828
|
-
|
|
1829
|
-
|
|
1857
|
+
$ensureProvider(id: string): Promise<void>;
|
|
1858
|
+
$sendDidChangeSessions(providerId: string, event: AuthenticationProviderAuthenticationSessionsChangeEvent): void;
|
|
1859
|
+
$getSession(providerId: string, scopes: readonly string[], extensionId: string, extensionName: string,
|
|
1860
|
+
options: theia.AuthenticationGetSessionOptions): Promise<theia.AuthenticationSession | undefined>;
|
|
1861
|
+
$removeSession(providerId: string, sessionId: string): Promise<void>;
|
|
1830
1862
|
}
|
|
1831
1863
|
|
|
1832
1864
|
export interface RawColorInfo {
|
|
@@ -128,10 +128,16 @@ export interface PluginPackageViewContainer {
|
|
|
128
128
|
icon: string;
|
|
129
129
|
}
|
|
130
130
|
|
|
131
|
+
export enum PluginViewType {
|
|
132
|
+
Tree = 'tree',
|
|
133
|
+
Webview = 'webview'
|
|
134
|
+
}
|
|
135
|
+
|
|
131
136
|
export interface PluginPackageView {
|
|
132
137
|
id: string;
|
|
133
138
|
name: string;
|
|
134
139
|
when?: string;
|
|
140
|
+
type?: string;
|
|
135
141
|
}
|
|
136
142
|
|
|
137
143
|
export interface PluginPackageViewWelcome {
|
|
@@ -696,6 +702,7 @@ export interface View {
|
|
|
696
702
|
id: string;
|
|
697
703
|
name: string;
|
|
698
704
|
when?: string;
|
|
705
|
+
type?: string;
|
|
699
706
|
}
|
|
700
707
|
|
|
701
708
|
/**
|
|
@@ -62,6 +62,7 @@ import { JsonSchemaStore } from '@theia/core/lib/browser/json-schema-store';
|
|
|
62
62
|
import { FileService, FileSystemProviderActivationEvent } from '@theia/filesystem/lib/browser/file-service';
|
|
63
63
|
import { PluginCustomEditorRegistry } from '../../main/browser/custom-editors/plugin-custom-editor-registry';
|
|
64
64
|
import { CustomEditorWidget } from '../../main/browser/custom-editors/custom-editor-widget';
|
|
65
|
+
import { Measurement, Stopwatch } from '@theia/core/lib/common';
|
|
65
66
|
|
|
66
67
|
export type PluginHost = 'frontend' | string;
|
|
67
68
|
export type DebugActivationEvent = 'onDebugResolve' | 'onDebugInitialConfigurations' | 'onDebugAdapterProtocolTracker' | 'onDebugDynamicConfigurations';
|
|
@@ -154,6 +155,9 @@ export class HostedPluginSupport {
|
|
|
154
155
|
@inject(PluginCustomEditorRegistry)
|
|
155
156
|
protected readonly customEditorRegistry: PluginCustomEditorRegistry;
|
|
156
157
|
|
|
158
|
+
@inject(Stopwatch)
|
|
159
|
+
protected readonly stopwatch: Stopwatch;
|
|
160
|
+
|
|
157
161
|
private theiaReadyPromise: Promise<any>;
|
|
158
162
|
|
|
159
163
|
protected readonly managers = new Map<string, PluginManagerExt>();
|
|
@@ -302,15 +306,15 @@ export class HostedPluginSupport {
|
|
|
302
306
|
*/
|
|
303
307
|
protected async syncPlugins(): Promise<void> {
|
|
304
308
|
let initialized = 0;
|
|
305
|
-
const waitPluginsMeasurement = this.
|
|
306
|
-
let syncPluginsMeasurement:
|
|
309
|
+
const waitPluginsMeasurement = this.measure('waitForDeployment');
|
|
310
|
+
let syncPluginsMeasurement: Measurement | undefined;
|
|
307
311
|
|
|
308
312
|
const toUnload = new Set(this.contributions.keys());
|
|
309
313
|
try {
|
|
310
314
|
const pluginIds: string[] = [];
|
|
311
315
|
const deployedPluginIds = await this.server.getDeployedPluginIds();
|
|
312
|
-
|
|
313
|
-
syncPluginsMeasurement = this.
|
|
316
|
+
waitPluginsMeasurement.log('Waiting for backend deployment');
|
|
317
|
+
syncPluginsMeasurement = this.measure('syncPlugins');
|
|
314
318
|
for (const pluginId of deployedPluginIds) {
|
|
315
319
|
toUnload.delete(pluginId);
|
|
316
320
|
if (!this.contributions.has(pluginId)) {
|
|
@@ -337,9 +341,14 @@ export class HostedPluginSupport {
|
|
|
337
341
|
if (initialized || toUnload.size) {
|
|
338
342
|
this.onDidChangePluginsEmitter.fire(undefined);
|
|
339
343
|
}
|
|
344
|
+
|
|
345
|
+
if (!syncPluginsMeasurement) {
|
|
346
|
+
// await didn't complete normally
|
|
347
|
+
waitPluginsMeasurement.error('Backend deployment failed.');
|
|
348
|
+
}
|
|
340
349
|
}
|
|
341
350
|
|
|
342
|
-
|
|
351
|
+
syncPluginsMeasurement?.log(`Sync of ${this.getPluginCount(initialized)}`);
|
|
343
352
|
}
|
|
344
353
|
|
|
345
354
|
/**
|
|
@@ -348,7 +357,7 @@ export class HostedPluginSupport {
|
|
|
348
357
|
*/
|
|
349
358
|
protected loadContributions(toDisconnect: DisposableCollection): Map<PluginHost, PluginContributions[]> {
|
|
350
359
|
let loaded = 0;
|
|
351
|
-
const loadPluginsMeasurement = this.
|
|
360
|
+
const loadPluginsMeasurement = this.measure('loadPlugins');
|
|
352
361
|
|
|
353
362
|
const hostContributions = new Map<PluginHost, PluginContributions[]>();
|
|
354
363
|
for (const contributions of this.contributions.values()) {
|
|
@@ -377,14 +386,14 @@ export class HostedPluginSupport {
|
|
|
377
386
|
}
|
|
378
387
|
}
|
|
379
388
|
|
|
380
|
-
|
|
389
|
+
loadPluginsMeasurement.log(`Load contributions of ${this.getPluginCount(loaded)}`);
|
|
381
390
|
|
|
382
391
|
return hostContributions;
|
|
383
392
|
}
|
|
384
393
|
|
|
385
394
|
protected async startPlugins(contributionsByHost: Map<PluginHost, PluginContributions[]>, toDisconnect: DisposableCollection): Promise<void> {
|
|
386
395
|
let started = 0;
|
|
387
|
-
const startPluginsMeasurement = this.
|
|
396
|
+
const startPluginsMeasurement = this.measure('startPlugins');
|
|
388
397
|
|
|
389
398
|
const [hostLogPath, hostStoragePath, hostGlobalStoragePath] = await Promise.all([
|
|
390
399
|
this.pluginPathsService.getHostLogPath(),
|
|
@@ -447,7 +456,7 @@ export class HostedPluginSupport {
|
|
|
447
456
|
return;
|
|
448
457
|
}
|
|
449
458
|
|
|
450
|
-
|
|
459
|
+
startPluginsMeasurement.log(`Start of ${this.getPluginCount(started)}`);
|
|
451
460
|
}
|
|
452
461
|
|
|
453
462
|
protected async obtainManager(host: string, hostContributions: PluginContributions[], toDisconnect: DisposableCollection): Promise<PluginManagerExt | undefined> {
|
|
@@ -693,37 +702,8 @@ export class HostedPluginSupport {
|
|
|
693
702
|
await Promise.all(activation);
|
|
694
703
|
}
|
|
695
704
|
|
|
696
|
-
protected
|
|
697
|
-
|
|
698
|
-
const endMarker = `${name}-end`;
|
|
699
|
-
performance.clearMeasures(name);
|
|
700
|
-
performance.clearMarks(startMarker);
|
|
701
|
-
performance.clearMarks(endMarker);
|
|
702
|
-
|
|
703
|
-
performance.mark(startMarker);
|
|
704
|
-
return () => {
|
|
705
|
-
performance.mark(endMarker);
|
|
706
|
-
performance.measure(name, startMarker, endMarker);
|
|
707
|
-
|
|
708
|
-
const entries = performance.getEntriesByName(name);
|
|
709
|
-
const duration = entries.length > 0 ? entries[0].duration : Number.NaN;
|
|
710
|
-
|
|
711
|
-
performance.clearMeasures(name);
|
|
712
|
-
performance.clearMarks(startMarker);
|
|
713
|
-
performance.clearMarks(endMarker);
|
|
714
|
-
return duration;
|
|
715
|
-
};
|
|
716
|
-
}
|
|
717
|
-
|
|
718
|
-
protected logMeasurement(measurementName: string, measurement: () => number): void {
|
|
719
|
-
const duration = measurement();
|
|
720
|
-
if (duration === Number.NaN) {
|
|
721
|
-
// Measurement was prevented by native API, do not log NaN duration
|
|
722
|
-
return;
|
|
723
|
-
}
|
|
724
|
-
|
|
725
|
-
const timeFromFrontendStart = `Finished ${(performance.now() / 1000).toFixed(3)} s after frontend start`;
|
|
726
|
-
console.log(`[${this.clientId}] ${measurementName} took: ${duration.toFixed(1)} ms [${timeFromFrontendStart}]`);
|
|
705
|
+
protected measure(name: string): Measurement {
|
|
706
|
+
return this.stopwatch.start(name, { context: this.clientId });
|
|
727
707
|
}
|
|
728
708
|
|
|
729
709
|
protected getPluginCount(plugins: number): string {
|
|
@@ -21,6 +21,7 @@ import { PluginDeployerHandler, PluginDeployerEntry, PluginEntryPoint, DeployedP
|
|
|
21
21
|
import { HostedPluginReader } from './plugin-reader';
|
|
22
22
|
import { Deferred } from '@theia/core/lib/common/promise-util';
|
|
23
23
|
import { HostedPluginLocalizationService } from './hosted-plugin-localization-service';
|
|
24
|
+
import { Stopwatch } from '@theia/core/lib/common';
|
|
24
25
|
|
|
25
26
|
@injectable()
|
|
26
27
|
export class HostedPluginDeployerHandler implements PluginDeployerHandler {
|
|
@@ -34,6 +35,9 @@ export class HostedPluginDeployerHandler implements PluginDeployerHandler {
|
|
|
34
35
|
@inject(HostedPluginLocalizationService)
|
|
35
36
|
private readonly localizationService: HostedPluginLocalizationService;
|
|
36
37
|
|
|
38
|
+
@inject(Stopwatch)
|
|
39
|
+
protected readonly stopwatch: Stopwatch;
|
|
40
|
+
|
|
37
41
|
private readonly deployedLocations = new Map<string, Set<string>>();
|
|
38
42
|
|
|
39
43
|
/**
|
|
@@ -118,9 +122,11 @@ export class HostedPluginDeployerHandler implements PluginDeployerHandler {
|
|
|
118
122
|
*/
|
|
119
123
|
protected async deployPlugin(entry: PluginDeployerEntry, entryPoint: keyof PluginEntryPoint): Promise<void> {
|
|
120
124
|
const pluginPath = entry.path();
|
|
125
|
+
const deployPlugin = this.stopwatch.start('deployPlugin');
|
|
121
126
|
try {
|
|
122
127
|
const manifest = await this.reader.readPackage(pluginPath);
|
|
123
128
|
if (!manifest) {
|
|
129
|
+
deployPlugin.error(`Failed to read ${entryPoint} plugin manifest from '${pluginPath}''`);
|
|
124
130
|
return;
|
|
125
131
|
}
|
|
126
132
|
|
|
@@ -132,6 +138,7 @@ export class HostedPluginDeployerHandler implements PluginDeployerHandler {
|
|
|
132
138
|
|
|
133
139
|
const deployedPlugins = entryPoint === 'backend' ? this.deployedBackendPlugins : this.deployedFrontendPlugins;
|
|
134
140
|
if (deployedPlugins.has(metadata.model.id)) {
|
|
141
|
+
deployPlugin.debug(`Skipped ${entryPoint} plugin ${metadata.model.name} already deployed`);
|
|
135
142
|
return;
|
|
136
143
|
}
|
|
137
144
|
|
|
@@ -140,9 +147,9 @@ export class HostedPluginDeployerHandler implements PluginDeployerHandler {
|
|
|
140
147
|
deployed.contributes = this.reader.readContribution(manifest);
|
|
141
148
|
this.localizationService.deployLocalizations(deployed);
|
|
142
149
|
deployedPlugins.set(metadata.model.id, deployed);
|
|
143
|
-
|
|
150
|
+
deployPlugin.log(`Deployed ${entryPoint} plugin "${metadata.model.name}@${metadata.model.version}" from "${metadata.model.entryPoint[entryPoint] || pluginPath}"`);
|
|
144
151
|
} catch (e) {
|
|
145
|
-
|
|
152
|
+
deployPlugin.error(`Failed to deploy ${entryPoint} plugin from '${pluginPath}' path`, e);
|
|
146
153
|
}
|
|
147
154
|
}
|
|
148
155
|
|
|
@@ -153,14 +160,27 @@ export class HostedPluginDeployerHandler implements PluginDeployerHandler {
|
|
|
153
160
|
if (!deployedLocations) {
|
|
154
161
|
return false;
|
|
155
162
|
}
|
|
163
|
+
|
|
164
|
+
const undeployPlugin = this.stopwatch.start('undeployPlugin');
|
|
156
165
|
this.deployedLocations.delete(pluginId);
|
|
166
|
+
let undeployError: unknown;
|
|
167
|
+
const failedLocations: string[] = [];
|
|
168
|
+
|
|
157
169
|
for (const location of deployedLocations) {
|
|
158
170
|
try {
|
|
159
171
|
await fs.remove(location);
|
|
160
172
|
} catch (e) {
|
|
161
|
-
|
|
173
|
+
failedLocations.push(location);
|
|
174
|
+
undeployError = undeployError ?? e;
|
|
162
175
|
}
|
|
163
176
|
}
|
|
177
|
+
|
|
178
|
+
if (undeployError) {
|
|
179
|
+
undeployPlugin.error(`[${pluginId}]: failed to undeploy from locations "${failedLocations}". First reason:`, undeployError);
|
|
180
|
+
} else {
|
|
181
|
+
undeployPlugin.log(`[${pluginId}]: undeployed from "${location}"`);
|
|
182
|
+
}
|
|
183
|
+
|
|
164
184
|
return true;
|
|
165
185
|
}
|
|
166
186
|
}
|
|
@@ -58,7 +58,8 @@ export class HostedPluginReader implements BackendApplicationContribution {
|
|
|
58
58
|
// the request was already closed
|
|
59
59
|
return;
|
|
60
60
|
}
|
|
61
|
-
|
|
61
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
62
|
+
if ((e as any)['code'] === 'ENOENT') {
|
|
62
63
|
res.status(404).send(`No such file found in '${escape_html(pluginId)}' plugin.`);
|
|
63
64
|
} else {
|
|
64
65
|
res.status(500).send(`Failed to transfer a file from '${escape_html(pluginId)}' plugin.`);
|
|
@@ -21,7 +21,7 @@ import { PluginPackage, PluginModel } from '../../common/plugin-protocol';
|
|
|
21
21
|
|
|
22
22
|
@injectable()
|
|
23
23
|
export class TheiaPluginScannerElectron extends TheiaPluginScanner {
|
|
24
|
-
getModel(plugin: PluginPackage): PluginModel {
|
|
24
|
+
override getModel(plugin: PluginPackage): PluginModel {
|
|
25
25
|
const result = super.getModel(plugin);
|
|
26
26
|
if (result.entryPoint.frontend) {
|
|
27
27
|
result.entryPoint.frontend = path.resolve(plugin.packagePath, result.entryPoint.frontend);
|