@theia/plugin-ext 1.77.0-next.49 → 1.77.0-next.57
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.map +1 -1
- package/lib/common/plugin-api-rpc.d.ts +2 -0
- package/lib/common/plugin-api-rpc.d.ts.map +1 -1
- package/lib/common/plugin-api-rpc.js.map +1 -1
- package/lib/hosted/browser/hosted-plugin.d.ts.map +1 -1
- package/lib/hosted/browser/hosted-plugin.js +4 -2
- package/lib/hosted/browser/hosted-plugin.js.map +1 -1
- package/lib/hosted/browser/hosted-plugin.spec.d.ts +2 -0
- package/lib/hosted/browser/hosted-plugin.spec.d.ts.map +1 -0
- package/lib/hosted/browser/hosted-plugin.spec.js +59 -0
- package/lib/hosted/browser/hosted-plugin.spec.js.map +1 -0
- package/lib/hosted/browser/worker/worker-main.js +2 -1
- package/lib/hosted/browser/worker/worker-main.js.map +1 -1
- package/lib/hosted/browser-only/browser-only-plugin-paths-service.js +1 -1
- package/lib/hosted/browser-only/browser-only-plugin-paths-service.js.map +1 -1
- package/lib/hosted/browser-only/browser-only-plugin-paths-service.spec.js +2 -1
- package/lib/hosted/browser-only/browser-only-plugin-paths-service.spec.js.map +1 -1
- package/lib/hosted/node/hosted-plugin-localization-service.js +2 -2
- package/lib/hosted/node/hosted-plugin-localization-service.js.map +1 -1
- package/lib/hosted/node/hosted-plugin-process.js +1 -1
- package/lib/hosted/node/hosted-plugin-process.js.map +1 -1
- package/lib/hosted/node/plugin-deployer-handler-impl.js +1 -1
- package/lib/hosted/node/plugin-deployer-handler-impl.js.map +1 -1
- package/lib/hosted/node/plugin-ext-hosted-backend-module.js +2 -1
- package/lib/hosted/node/plugin-ext-hosted-backend-module.js.map +1 -1
- package/lib/hosted/node/plugin-host-proxy.d.ts.map +1 -1
- package/lib/hosted/node/plugin-host-proxy.js +10 -6
- package/lib/hosted/node/plugin-host-proxy.js.map +1 -1
- package/lib/hosted/node/plugin-host-rpc.js +1 -1
- package/lib/hosted/node/plugin-host-rpc.js.map +1 -1
- package/lib/hosted/node/plugin-host.js +2 -1
- package/lib/hosted/node/plugin-host.js.map +1 -1
- package/lib/hosted/node/plugin-reader.js +6 -6
- package/lib/hosted/node/plugin-reader.js.map +1 -1
- package/lib/hosted/node/plugin-reader.spec.js +4 -3
- package/lib/hosted/node/plugin-reader.spec.js.map +1 -1
- package/lib/hosted/node/plugin-require-override.d.ts.map +1 -1
- package/lib/hosted/node/plugin-require-override.js +3 -1
- package/lib/hosted/node/plugin-require-override.js.map +1 -1
- package/lib/hosted/node/plugin-require-override.spec.d.ts +2 -0
- package/lib/hosted/node/plugin-require-override.spec.d.ts.map +1 -0
- package/lib/hosted/node/plugin-require-override.spec.js +40 -0
- package/lib/hosted/node/plugin-require-override.spec.js.map +1 -0
- 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/scanner-theia.js +2 -2
- package/lib/hosted/node/scanners/scanner-theia.js.map +1 -1
- package/lib/hosted/node/scanners/scanner-theia.spec.js +5 -4
- package/lib/hosted/node/scanners/scanner-theia.spec.js.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/commands.js +1 -1
- package/lib/main/browser/commands.js.map +1 -1
- package/lib/main/browser/comments/comment-thread-widget.js +3 -2
- package/lib/main/browser/comments/comment-thread-widget.js.map +1 -1
- package/lib/main/browser/comments/comments-contribution.js +1 -1
- package/lib/main/browser/comments/comments-contribution.js.map +1 -1
- package/lib/main/browser/custom-editors/custom-editor-opener.spec.js +3 -2
- package/lib/main/browser/custom-editors/custom-editor-opener.spec.js.map +1 -1
- package/lib/main/browser/custom-editors/custom-editor-widget.js +1 -1
- package/lib/main/browser/custom-editors/custom-editor-widget.js.map +1 -1
- package/lib/main/browser/custom-editors/custom-editors-main.js +2 -1
- package/lib/main/browser/custom-editors/custom-editors-main.js.map +1 -1
- package/lib/main/browser/decorations/decorations-main.js +2 -1
- package/lib/main/browser/decorations/decorations-main.js.map +1 -1
- package/lib/main/browser/dialogs-main.js +2 -1
- package/lib/main/browser/dialogs-main.js.map +1 -1
- package/lib/main/browser/documents-main.js +3 -2
- package/lib/main/browser/documents-main.js.map +1 -1
- package/lib/main/browser/file-system-main-impl.js +3 -2
- package/lib/main/browser/file-system-main-impl.js.map +1 -1
- package/lib/main/browser/hierarchy/hierarchy-types-converters.js +3 -2
- package/lib/main/browser/hierarchy/hierarchy-types-converters.js.map +1 -1
- package/lib/main/browser/languages-main.js +3 -3
- package/lib/main/browser/languages-main.js.map +1 -1
- package/lib/main/browser/languages-main.spec.js +2 -1
- package/lib/main/browser/languages-main.spec.js.map +1 -1
- package/lib/main/browser/main-file-system-event-service.spec.js +2 -1
- package/lib/main/browser/main-file-system-event-service.spec.js.map +1 -1
- package/lib/main/browser/menus/menus-contribution-handler.d.ts.map +1 -1
- package/lib/main/browser/menus/menus-contribution-handler.js +1 -12
- package/lib/main/browser/menus/menus-contribution-handler.js.map +1 -1
- package/lib/main/browser/notebooks/renderers/output-webview-internal.d.ts.map +1 -1
- package/lib/main/browser/notebooks/renderers/output-webview-internal.js +3 -2
- package/lib/main/browser/notebooks/renderers/output-webview-internal.js.map +1 -1
- package/lib/main/browser/plugin-contribution-handler.js +1 -1
- package/lib/main/browser/plugin-contribution-handler.js.map +1 -1
- package/lib/main/browser/plugin-ext-widget.js +1 -1
- package/lib/main/browser/plugin-ext-widget.js.map +1 -1
- package/lib/main/browser/plugin-icon-service.js +1 -1
- package/lib/main/browser/plugin-icon-service.js.map +1 -1
- package/lib/main/browser/plugin-icon-theme-service.d.ts +2 -2
- package/lib/main/browser/plugin-icon-theme-service.d.ts.map +1 -1
- package/lib/main/browser/plugin-icon-theme-service.js +2 -2
- package/lib/main/browser/plugin-icon-theme-service.js.map +1 -1
- package/lib/main/browser/plugin-icon-theme-service.spec.js +2 -1
- package/lib/main/browser/plugin-icon-theme-service.spec.js.map +1 -1
- package/lib/main/browser/plugin-shared-style.js.map +1 -1
- package/lib/main/browser/scm-main.d.ts +3 -1
- package/lib/main/browser/scm-main.d.ts.map +1 -1
- package/lib/main/browser/scm-main.js +6 -3
- package/lib/main/browser/scm-main.js.map +1 -1
- package/lib/main/browser/scm-main.spec.js +31 -0
- package/lib/main/browser/scm-main.spec.js.map +1 -1
- package/lib/main/browser/status-bar-message-registry-main.js +2 -1
- package/lib/main/browser/status-bar-message-registry-main.js.map +1 -1
- package/lib/main/browser/text-editor-main.js +2 -1
- package/lib/main/browser/text-editor-main.js.map +1 -1
- package/lib/main/browser/text-editors-main.js +2 -1
- package/lib/main/browser/text-editors-main.js.map +1 -1
- package/lib/main/browser/view/plugin-tree-view-node-label-provider.js +1 -1
- 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 +7 -2
- package/lib/main/browser/view/plugin-view-registry.d.ts.map +1 -1
- package/lib/main/browser/view/plugin-view-registry.js +19 -3
- package/lib/main/browser/view/plugin-view-registry.js.map +1 -1
- package/lib/main/browser/view/plugin-view-registry.spec.js +82 -1
- package/lib/main/browser/view/plugin-view-registry.spec.js.map +1 -1
- package/lib/main/browser/view/tree-view-decorator-service.js +1 -1
- package/lib/main/browser/view/tree-view-decorator-service.js.map +1 -1
- package/lib/main/browser/view/tree-view-widget.js +2 -2
- package/lib/main/browser/view/tree-view-widget.js.map +1 -1
- package/lib/main/browser/webview/pre/main.spec.d.ts +2 -0
- package/lib/main/browser/webview/pre/main.spec.d.ts.map +1 -0
- package/lib/main/browser/webview/pre/main.spec.js +45 -0
- package/lib/main/browser/webview/pre/main.spec.js.map +1 -0
- package/lib/main/browser/webview/webview-theme-data-provider.d.ts +1 -1
- package/lib/main/browser/webview/webview-theme-data-provider.d.ts.map +1 -1
- package/lib/main/browser/webview/webview.d.ts.map +1 -1
- package/lib/main/browser/webview/webview.js +6 -3
- package/lib/main/browser/webview/webview.js.map +1 -1
- package/lib/main/browser/window-state-main.js +2 -1
- package/lib/main/browser/window-state-main.js.map +1 -1
- package/lib/main/browser/workspace-main.js +1 -1
- package/lib/main/browser/workspace-main.js.map +1 -1
- package/lib/main/common/plugin-theia-environment.js +1 -1
- package/lib/main/common/plugin-theia-environment.js.map +1 -1
- package/lib/main/node/handlers/plugin-theia-directory-handler.js +4 -4
- 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 +4 -4
- package/lib/main/node/paths/plugin-paths-service.js.map +1 -1
- package/lib/main/node/plugin-deployer-directory-handler-context-impl.js +2 -1
- package/lib/main/node/plugin-deployer-directory-handler-context-impl.js.map +1 -1
- package/lib/main/node/plugin-deployer-file-handler-context-impl.js +3 -2
- package/lib/main/node/plugin-deployer-file-handler-context-impl.js.map +1 -1
- package/lib/main/node/plugin-deployer-impl.js +1 -1
- package/lib/main/node/plugin-deployer-impl.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-service.d.ts +1 -1
- package/lib/main/node/plugin-service.d.ts.map +1 -1
- package/lib/main/node/plugin-service.js +4 -4
- package/lib/main/node/plugin-service.js.map +1 -1
- package/lib/main/node/plugins-key-value-storage.js +2 -2
- package/lib/main/node/plugins-key-value-storage.js.map +1 -1
- package/lib/main/node/plugins-key-value-storage.spec.js +2 -1
- package/lib/main/node/plugins-key-value-storage.spec.js.map +1 -1
- package/lib/main/node/resolvers/local-directory-plugin-deployer-resolver.js +2 -2
- package/lib/main/node/resolvers/local-directory-plugin-deployer-resolver.js.map +1 -1
- package/lib/main/node/resolvers/local-directory-plugin-deployer-resolver.spec.js +4 -3
- package/lib/main/node/resolvers/local-directory-plugin-deployer-resolver.spec.js.map +1 -1
- package/lib/main/node/resolvers/local-plugin-deployer-resolver.js +3 -3
- package/lib/main/node/resolvers/local-plugin-deployer-resolver.js.map +1 -1
- package/lib/main/node/temp-dir-util.js +3 -2
- package/lib/main/node/temp-dir-util.js.map +1 -1
- package/lib/plugin/comments.d.ts +1 -1
- package/lib/plugin/comments.d.ts.map +1 -1
- package/lib/plugin/custom-editors.js +2 -1
- package/lib/plugin/custom-editors.js.map +1 -1
- package/lib/plugin/decorations.spec.js +2 -1
- package/lib/plugin/decorations.spec.js.map +1 -1
- package/lib/plugin/document-data.d.ts.map +1 -1
- package/lib/plugin/document-data.js +0 -1
- package/lib/plugin/document-data.js.map +1 -1
- package/lib/plugin/documents.js +2 -1
- package/lib/plugin/documents.js.map +1 -1
- package/lib/plugin/editors-and-documents.js +1 -1
- package/lib/plugin/editors-and-documents.js.map +1 -1
- package/lib/plugin/file-system-event-service-ext-impl.d.ts +1 -1
- package/lib/plugin/file-system-event-service-ext-impl.d.ts.map +1 -1
- package/lib/plugin/file-system-event-service-ext-impl.js +3 -2
- package/lib/plugin/file-system-event-service-ext-impl.js.map +1 -1
- package/lib/plugin/file-system-ext-impl.js +5 -4
- package/lib/plugin/file-system-ext-impl.js.map +1 -1
- package/lib/plugin/file-system-watcher.spec.js +2 -1
- package/lib/plugin/file-system-watcher.spec.js.map +1 -1
- package/lib/plugin/known-commands.js +5 -5
- package/lib/plugin/known-commands.js.map +1 -1
- package/lib/plugin/known-commands.spec.js +2 -1
- package/lib/plugin/known-commands.spec.js.map +1 -1
- package/lib/plugin/languages/call-hierarchy.js +2 -1
- package/lib/plugin/languages/call-hierarchy.js.map +1 -1
- package/lib/plugin/languages/code-action.js +2 -1
- package/lib/plugin/languages/code-action.js.map +1 -1
- package/lib/plugin/languages/color.js +2 -1
- package/lib/plugin/languages/color.js.map +1 -1
- package/lib/plugin/languages/completion.js +2 -1
- package/lib/plugin/languages/completion.js.map +1 -1
- package/lib/plugin/languages/declaration.js +3 -2
- package/lib/plugin/languages/declaration.js.map +1 -1
- package/lib/plugin/languages/definition.js +3 -2
- package/lib/plugin/languages/definition.js.map +1 -1
- package/lib/plugin/languages/document-drop-edit.js +4 -3
- package/lib/plugin/languages/document-drop-edit.js.map +1 -1
- package/lib/plugin/languages/document-formatting.js +2 -1
- package/lib/plugin/languages/document-formatting.js.map +1 -1
- package/lib/plugin/languages/document-highlight.js +3 -2
- package/lib/plugin/languages/document-highlight.js.map +1 -1
- package/lib/plugin/languages/evaluatable-expression.js +2 -1
- package/lib/plugin/languages/evaluatable-expression.js.map +1 -1
- package/lib/plugin/languages/folding.js +2 -1
- package/lib/plugin/languages/folding.js.map +1 -1
- package/lib/plugin/languages/hover.js +2 -1
- package/lib/plugin/languages/hover.js.map +1 -1
- package/lib/plugin/languages/implementation.js +3 -2
- package/lib/plugin/languages/implementation.js.map +1 -1
- package/lib/plugin/languages/inlay-hints.js +2 -1
- package/lib/plugin/languages/inlay-hints.js.map +1 -1
- package/lib/plugin/languages/inline-completion.js +2 -1
- package/lib/plugin/languages/inline-completion.js.map +1 -1
- package/lib/plugin/languages/inline-values.js +2 -1
- package/lib/plugin/languages/inline-values.js.map +1 -1
- package/lib/plugin/languages/lens.js +2 -1
- package/lib/plugin/languages/lens.js.map +1 -1
- package/lib/plugin/languages/link-provider.js +2 -1
- package/lib/plugin/languages/link-provider.js.map +1 -1
- package/lib/plugin/languages/multi-document-highlight.js +3 -2
- package/lib/plugin/languages/multi-document-highlight.js.map +1 -1
- package/lib/plugin/languages/on-type-formatting.js +2 -1
- package/lib/plugin/languages/on-type-formatting.js.map +1 -1
- package/lib/plugin/languages/outline.js +3 -2
- package/lib/plugin/languages/outline.js.map +1 -1
- package/lib/plugin/languages/range-formatting.js +2 -1
- package/lib/plugin/languages/range-formatting.js.map +1 -1
- package/lib/plugin/languages/reference.js +2 -1
- package/lib/plugin/languages/reference.js.map +1 -1
- package/lib/plugin/languages/rename.js +2 -1
- package/lib/plugin/languages/rename.js.map +1 -1
- package/lib/plugin/languages/selection-range.js +2 -1
- package/lib/plugin/languages/selection-range.js.map +1 -1
- package/lib/plugin/languages/signature.js +2 -1
- package/lib/plugin/languages/signature.js.map +1 -1
- package/lib/plugin/languages/type-definition.js +3 -2
- package/lib/plugin/languages/type-definition.js.map +1 -1
- package/lib/plugin/languages/type-hierarchy.js +2 -1
- package/lib/plugin/languages/type-hierarchy.js.map +1 -1
- package/lib/plugin/languages/util.js +2 -1
- package/lib/plugin/languages/util.js.map +1 -1
- package/lib/plugin/languages/workspace-symbol.js +2 -1
- package/lib/plugin/languages/workspace-symbol.js.map +1 -1
- package/lib/plugin/node/debug/debug.spec.js +2 -1
- package/lib/plugin/node/debug/debug.spec.js.map +1 -1
- package/lib/plugin/node/debug/plugin-node-debug-adapter-creator.js +3 -2
- package/lib/plugin/node/debug/plugin-node-debug-adapter-creator.js.map +1 -1
- package/lib/plugin/node/env-node-ext.js +1 -1
- package/lib/plugin/node/env-node-ext.js.map +1 -1
- package/lib/plugin/notebook/notebook-document.js +3 -2
- package/lib/plugin/notebook/notebook-document.js.map +1 -1
- package/lib/plugin/notebook/notebook-editors.js +2 -1
- package/lib/plugin/notebook/notebook-editors.js.map +1 -1
- package/lib/plugin/notebook/notebooks.js +2 -1
- package/lib/plugin/notebook/notebooks.js.map +1 -1
- package/lib/plugin/path.spec.js +2 -1
- package/lib/plugin/path.spec.js.map +1 -1
- package/lib/plugin/plugin-context.js.map +1 -1
- package/lib/plugin/plugin-icon-path.js +2 -1
- package/lib/plugin/plugin-icon-path.js.map +1 -1
- package/lib/plugin/plugin-manager.js +1 -1
- package/lib/plugin/plugin-manager.js.map +1 -1
- package/lib/plugin/preference-registry.spec.js +2 -1
- package/lib/plugin/preference-registry.spec.js.map +1 -1
- package/lib/plugin/quick-open.js +2 -1
- package/lib/plugin/quick-open.js.map +1 -1
- package/lib/plugin/relative-pattern.spec.js +3 -2
- package/lib/plugin/relative-pattern.spec.js.map +1 -1
- package/lib/plugin/scm.d.ts.map +1 -1
- package/lib/plugin/scm.js +14 -1
- package/lib/plugin/scm.js.map +1 -1
- package/lib/plugin/scm.spec.js +56 -1
- package/lib/plugin/scm.spec.js.map +1 -1
- package/lib/plugin/tasks/task-provider.js +2 -1
- package/lib/plugin/tasks/task-provider.js.map +1 -1
- package/lib/plugin/tasks/tasks.js +2 -1
- package/lib/plugin/tasks/tasks.js.map +1 -1
- package/lib/plugin/telemetry-ext.spec.js +2 -1
- package/lib/plugin/telemetry-ext.spec.js.map +1 -1
- package/lib/plugin/terminal-ext.js +1 -1
- package/lib/plugin/terminal-ext.js.map +1 -1
- package/lib/plugin/terminal-ext.spec.js +2 -1
- package/lib/plugin/terminal-ext.spec.js.map +1 -1
- package/lib/plugin/tests.js +1 -1
- package/lib/plugin/tests.js.map +1 -1
- package/lib/plugin/text-editor.js +2 -1
- package/lib/plugin/text-editor.js.map +1 -1
- package/lib/plugin/text-editors.js +2 -1
- package/lib/plugin/text-editors.js.map +1 -1
- package/lib/plugin/tree/tree-views.d.ts.map +1 -1
- package/lib/plugin/tree/tree-views.js +2 -1
- package/lib/plugin/tree/tree-views.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 -4
- package/lib/plugin/type-converters.spec.js.map +1 -1
- package/lib/plugin/types-impl.js +1 -1
- package/lib/plugin/types-impl.js.map +1 -1
- package/lib/plugin/types-impl.spec.js +3 -2
- package/lib/plugin/types-impl.spec.js.map +1 -1
- package/lib/plugin/workspace.js +2 -2
- package/lib/plugin/workspace.js.map +1 -1
- package/lib/plugin/workspace.spec.js +2 -1
- package/lib/plugin/workspace.spec.js.map +1 -1
- package/lib/plugin-ext-frontend-electron-module.js +2 -1
- package/lib/plugin-ext-frontend-electron-module.js.map +1 -1
- package/lib/plugin-ext-frontend-module.js +2 -1
- package/lib/plugin-ext-frontend-module.js.map +1 -1
- package/package.json +32 -32
- package/src/common/character-classifier.ts +1 -1
- package/src/common/plugin-api-rpc.ts +2 -0
- package/src/hosted/browser/hosted-plugin.spec.ts +66 -0
- package/src/hosted/browser/hosted-plugin.ts +3 -1
- package/src/hosted/node/plugin-host-proxy.ts +6 -3
- package/src/hosted/node/plugin-reader.ts +1 -1
- package/src/hosted/node/plugin-require-override.spec.ts +44 -0
- package/src/hosted/node/plugin-require-override.ts +1 -0
- package/src/main/browser/file-system-main-impl.ts +1 -1
- package/src/main/browser/menus/menus-contribution-handler.ts +6 -13
- package/src/main/browser/notebooks/renderers/output-webview-internal.ts +6 -3
- package/src/main/browser/plugin-shared-style.ts +2 -2
- package/src/main/browser/scm-main.spec.ts +32 -0
- package/src/main/browser/scm-main.ts +6 -2
- package/src/main/browser/view/plugin-view-registry.spec.ts +134 -3
- package/src/main/browser/view/plugin-view-registry.ts +20 -3
- package/src/main/browser/view/tree-view-widget.tsx +1 -1
- package/src/main/browser/webview/pre/main.js +19 -10
- package/src/main/browser/webview/pre/main.spec.ts +46 -0
- package/src/main/browser/webview/webview.ts +7 -3
- package/src/main/node/handlers/plugin-theia-directory-handler.ts +1 -1
- package/src/main/node/handlers/plugin-theia-file-handler.ts +1 -1
- package/src/main/node/plugin-deployer-file-handler-context-impl.ts +1 -1
- package/src/main/node/plugin-service.ts +1 -1
- package/src/plugin/document-data.ts +0 -1
- package/src/plugin/file-system-event-service-ext-impl.ts +1 -1
- package/src/plugin/file-system-ext-impl.ts +2 -2
- package/src/plugin/known-commands.ts +5 -5
- package/src/plugin/plugin-context.ts +3 -3
- package/src/plugin/scm.spec.ts +67 -1
- package/src/plugin/scm.ts +18 -1
- package/src/plugin/tests.ts +2 -2
- package/src/plugin/tree/tree-views.ts +2 -1
- package/src/plugin/type-converters.spec.ts +1 -1
|
@@ -160,6 +160,7 @@ export class PluginViewRegistry implements FrontendApplicationContribution {
|
|
|
160
160
|
|
|
161
161
|
this.updateFocusedView();
|
|
162
162
|
this.shell.onDidChangeActiveWidget(() => this.updateFocusedView());
|
|
163
|
+
this.onDidExpandView(viewId => this.prepareWelcomeOnlyView(viewId).catch(e => this.logger.error(e)));
|
|
163
164
|
|
|
164
165
|
this.widgetManager.onWillCreateWidget(({ factoryId, widget, waitUntil }) => {
|
|
165
166
|
if (factoryId === EXPLORER_VIEW_CONTAINER_ID && widget instanceof ViewContainerWidget) {
|
|
@@ -786,7 +787,8 @@ export class PluginViewRegistry implements FrontendApplicationContribution {
|
|
|
786
787
|
const currentDataWidget = widget.widgets[0];
|
|
787
788
|
const webviewId = currentDataWidget instanceof WebviewWidget ? currentDataWidget.identifier?.id : undefined;
|
|
788
789
|
const viewDataWidget = await this.createViewDataWidget(view.id, webviewId);
|
|
789
|
-
|
|
790
|
+
// `onDidInitializeLayout` can dispose the data widget before it is added here.
|
|
791
|
+
if (widget.isDisposed || viewDataWidget?.isDisposed) {
|
|
790
792
|
viewDataWidget?.dispose();
|
|
791
793
|
return;
|
|
792
794
|
}
|
|
@@ -1029,8 +1031,8 @@ export class PluginViewRegistry implements FrontendApplicationContribution {
|
|
|
1029
1031
|
}
|
|
1030
1032
|
|
|
1031
1033
|
/**
|
|
1032
|
-
*
|
|
1033
|
-
*
|
|
1034
|
+
* Retrieves the restored state of the data widgets and disposes them: a view gets a new data widget
|
|
1035
|
+
* once its data provider registers or, for a view with only welcome content, once it is expanded.
|
|
1034
1036
|
*/
|
|
1035
1037
|
onDidInitializeLayout(): void {
|
|
1036
1038
|
const widgets = this.widgetManager.getWidgets(PLUGIN_VIEW_DATA_FACTORY_ID);
|
|
@@ -1108,6 +1110,21 @@ export class PluginViewRegistry implements FrontendApplicationContribution {
|
|
|
1108
1110
|
return widget;
|
|
1109
1111
|
}
|
|
1110
1112
|
|
|
1113
|
+
/**
|
|
1114
|
+
* Gives an expanded view that has `viewsWelcome` content but neither a data provider nor a
|
|
1115
|
+
* content widget its welcome widget, which `onDidInitializeLayout` disposes when it was restored.
|
|
1116
|
+
*/
|
|
1117
|
+
protected async prepareWelcomeOnlyView(viewId: string): Promise<void> {
|
|
1118
|
+
if (this.views.get(viewId)?.[1]?.type === PluginViewType.Webview
|
|
1119
|
+
|| this.viewDataProviders.has(viewId) || !this.getViewWelcomes(viewId).length) {
|
|
1120
|
+
return;
|
|
1121
|
+
}
|
|
1122
|
+
const view = await this.getView(viewId);
|
|
1123
|
+
if (view && !view.widgets.length) {
|
|
1124
|
+
await this.prepareView(view);
|
|
1125
|
+
}
|
|
1126
|
+
}
|
|
1127
|
+
|
|
1111
1128
|
protected async createViewWelcomeWidget(viewId: string): Promise<TreeViewWidget> {
|
|
1112
1129
|
const widget = await this.widgetManager.getOrCreateWidget<TreeViewWidget>(PLUGIN_VIEW_DATA_FACTORY_ID, { id: viewId });
|
|
1113
1130
|
if (!widget.model.root) {
|
|
@@ -811,7 +811,7 @@ export class TreeViewWidget extends TreeViewWelcomeWidget {
|
|
|
811
811
|
}
|
|
812
812
|
const className = [TREE_NODE_SEGMENT_CLASS, TREE_NODE_TAIL_CLASS, actionMenuNode.icon, ACTION_ITEM, 'theia-tree-view-inline-action'].join(' ');
|
|
813
813
|
const tabIndex = tabbable ? 0 : undefined;
|
|
814
|
-
const titleString = actionMenuNode.label + (AcceleratorSource.is(actionMenuNode) ? actionMenuNode.getAccelerator(undefined).join('+') : '');
|
|
814
|
+
const titleString = actionMenuNode.label + (AcceleratorSource.is(actionMenuNode) ? actionMenuNode.getAccelerator(undefined, 'logical').join('+') : '');
|
|
815
815
|
|
|
816
816
|
return <div key={index} className={className} title={titleString} tabIndex={tabIndex} onClick={e => {
|
|
817
817
|
e.stopPropagation();
|
|
@@ -34,6 +34,23 @@
|
|
|
34
34
|
(function () {
|
|
35
35
|
'use strict';
|
|
36
36
|
|
|
37
|
+
/**
|
|
38
|
+
* @param {KeyboardEvent} event
|
|
39
|
+
*/
|
|
40
|
+
const toNormalizedKeyboardInput = event => ({
|
|
41
|
+
key: event.key,
|
|
42
|
+
keyCode: event.keyCode,
|
|
43
|
+
code: event.code,
|
|
44
|
+
shiftKey: event.shiftKey,
|
|
45
|
+
altKey: event.altKey,
|
|
46
|
+
ctrlKey: event.ctrlKey,
|
|
47
|
+
metaKey: event.metaKey,
|
|
48
|
+
altGraph: event.getModifierState('AltGraph'),
|
|
49
|
+
repeat: event.repeat,
|
|
50
|
+
isComposing: event.isComposing,
|
|
51
|
+
location: event.location
|
|
52
|
+
});
|
|
53
|
+
|
|
37
54
|
/**
|
|
38
55
|
* Use polling to track focus of main webview and iframes within the webview
|
|
39
56
|
*
|
|
@@ -300,16 +317,7 @@ window.frameElement = null;
|
|
|
300
317
|
const handleInnerKeydown = (e) => {
|
|
301
318
|
preventDefaultBrowserHotkeys(e);
|
|
302
319
|
|
|
303
|
-
host.postMessage('did-keydown',
|
|
304
|
-
key: e.key,
|
|
305
|
-
keyCode: e.keyCode,
|
|
306
|
-
code: e.code,
|
|
307
|
-
shiftKey: e.shiftKey,
|
|
308
|
-
altKey: e.altKey,
|
|
309
|
-
ctrlKey: e.ctrlKey,
|
|
310
|
-
metaKey: e.metaKey,
|
|
311
|
-
repeat: e.repeat
|
|
312
|
-
});
|
|
320
|
+
host.postMessage('did-keydown', toNormalizedKeyboardInput(e));
|
|
313
321
|
};
|
|
314
322
|
|
|
315
323
|
/**
|
|
@@ -678,6 +686,7 @@ window.frameElement = null;
|
|
|
678
686
|
|
|
679
687
|
if (typeof module !== 'undefined') {
|
|
680
688
|
module.exports = createWebviewManager;
|
|
689
|
+
module.exports.toNormalizedKeyboardInput = toNormalizedKeyboardInput;
|
|
681
690
|
} else {
|
|
682
691
|
window.createWebviewManager = createWebviewManager;
|
|
683
692
|
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2026 EclipseSource and others.
|
|
3
|
+
//
|
|
4
|
+
// This program and the accompanying materials are made available under the
|
|
5
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
// https://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
//
|
|
8
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
9
|
+
// *****************************************************************************
|
|
10
|
+
|
|
11
|
+
import { expect } from 'chai';
|
|
12
|
+
|
|
13
|
+
const { toNormalizedKeyboardInput } = require('../../../../../src/main/browser/webview/pre/main.js');
|
|
14
|
+
|
|
15
|
+
describe('webview keyboard transport', () => {
|
|
16
|
+
it('serializes explicit AltGraph and normalized keyboard fields', () => {
|
|
17
|
+
const input = toNormalizedKeyboardInput({
|
|
18
|
+
key: '[',
|
|
19
|
+
keyCode: 56,
|
|
20
|
+
code: 'Digit8',
|
|
21
|
+
shiftKey: false,
|
|
22
|
+
altKey: false,
|
|
23
|
+
ctrlKey: true,
|
|
24
|
+
metaKey: false,
|
|
25
|
+
repeat: true,
|
|
26
|
+
isComposing: false,
|
|
27
|
+
location: 2,
|
|
28
|
+
getModifierState: (modifier: string) => modifier === 'AltGraph'
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
expect(input).to.deep.equal({
|
|
32
|
+
key: '[',
|
|
33
|
+
keyCode: 56,
|
|
34
|
+
code: 'Digit8',
|
|
35
|
+
shiftKey: false,
|
|
36
|
+
altKey: false,
|
|
37
|
+
ctrlKey: true,
|
|
38
|
+
metaKey: false,
|
|
39
|
+
altGraph: true,
|
|
40
|
+
repeat: true,
|
|
41
|
+
isComposing: false,
|
|
42
|
+
location: 2
|
|
43
|
+
});
|
|
44
|
+
expect(input).not.to.have.property('getModifierState');
|
|
45
|
+
});
|
|
46
|
+
});
|
|
@@ -54,6 +54,7 @@ import { ContextMenuRenderer } from '@theia/core/lib/browser';
|
|
|
54
54
|
import { ContextKeyService } from '@theia/core/lib/browser/context-key-service';
|
|
55
55
|
import { PluginViewWidget } from '../view/plugin-view-widget';
|
|
56
56
|
import { WebviewPreferences } from '../../common/webview-preferences';
|
|
57
|
+
import { NormalizedKeyboardInput } from '@theia/core/lib/browser/keyboard/keys';
|
|
57
58
|
|
|
58
59
|
// Style from core
|
|
59
60
|
const TRANSPARENT_OVERLAY_STYLE = 'theia-transparent-overlay';
|
|
@@ -325,11 +326,14 @@ export class WebviewWidget extends BaseWidget implements StatefulWidget, Extract
|
|
|
325
326
|
this.toHide.push(this.on(WebviewMessageChannels.loadLocalhost, (entry: any) =>
|
|
326
327
|
this.loadLocalhost(entry.origin)
|
|
327
328
|
));
|
|
328
|
-
this.toHide.push(this.on(WebviewMessageChannels.didKeydown, (data:
|
|
329
|
+
this.toHide.push(this.on(WebviewMessageChannels.didKeydown, (data: NormalizedKeyboardInput) => {
|
|
329
330
|
// Electron: workaround for https://github.com/electron/electron/issues/14258
|
|
330
331
|
// We have to detect keyboard events in the <webview> and dispatch them to our
|
|
331
332
|
// keybinding service because these events do not bubble to the parent window anymore.
|
|
332
|
-
this.keybindings.
|
|
333
|
+
this.keybindings.dispatchNormalizedKeyDown(data, this.element);
|
|
334
|
+
// DOM capture listeners must still observe the emulated event. Mark it as already handled so the registry's
|
|
335
|
+
// capture listener does not execute the keybinding a second time.
|
|
336
|
+
this.keybindings.dispatchKeyDown(data, this.element, true);
|
|
333
337
|
}));
|
|
334
338
|
this.toHide.push(this.on(WebviewMessageChannels.didMouseDown, (data: MouseEvent) => {
|
|
335
339
|
// We have to dispatch mousedown events so menus will be closed when clicking inside webviews.
|
|
@@ -415,7 +419,7 @@ export class WebviewWidget extends BaseWidget implements StatefulWidget, Extract
|
|
|
415
419
|
}
|
|
416
420
|
|
|
417
421
|
setContentOptions(contentOptions: WebviewContentOptions): void {
|
|
418
|
-
if (JSONExt.deepEqual(
|
|
422
|
+
if (JSONExt.deepEqual(this.contentOptions as any, contentOptions as any)) {
|
|
419
423
|
return;
|
|
420
424
|
}
|
|
421
425
|
this._contentOptions = contentOptions;
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
17
|
import * as path from 'path';
|
|
18
|
-
import
|
|
18
|
+
import filenamify from 'filenamify';
|
|
19
19
|
import * as fs from '@theia/core/shared/fs-extra';
|
|
20
20
|
import { URI, ILogger } from '@theia/core';
|
|
21
21
|
import { inject, injectable, named } from '@theia/core/shared/inversify';
|
|
@@ -20,7 +20,7 @@ import { inject, injectable, named } from '@theia/core/shared/inversify';
|
|
|
20
20
|
import { Deferred } from '@theia/core/lib/common/promise-util';
|
|
21
21
|
import { getTempDirPathAsync } from '../temp-dir-util';
|
|
22
22
|
import * as fs from '@theia/core/shared/fs-extra';
|
|
23
|
-
import
|
|
23
|
+
import filenamify from 'filenamify';
|
|
24
24
|
import { FileUri } from '@theia/core/lib/common/file-uri';
|
|
25
25
|
import { PluginTheiaEnvironment } from '../../common/plugin-theia-environment';
|
|
26
26
|
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
17
|
import { PluginDeployerEntry, PluginDeployerFileHandlerContext } from '../../common/plugin-protocol';
|
|
18
|
-
import
|
|
18
|
+
import decompress from 'decompress';
|
|
19
19
|
|
|
20
20
|
export class PluginDeployerFileHandlerContextImpl implements PluginDeployerFileHandlerContext {
|
|
21
21
|
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
import * as http from 'http';
|
|
18
18
|
import * as path from 'path';
|
|
19
19
|
const vhost = require('vhost');
|
|
20
|
-
import
|
|
20
|
+
import express from '@theia/core/shared/express';
|
|
21
21
|
import { BackendApplicationContribution } from '@theia/core/lib/node/backend-application';
|
|
22
22
|
import { inject, injectable, postConstruct, named } from '@theia/core/shared/inversify';
|
|
23
23
|
import { WebviewExternalEndpoint } from '../common/webview-protocol';
|
|
@@ -59,7 +59,6 @@ export class DocumentDataExt {
|
|
|
59
59
|
|
|
60
60
|
// Update my lines
|
|
61
61
|
const changes = e.changes;
|
|
62
|
-
// tslint:disable-next-line:one-variable-per-declaration
|
|
63
62
|
for (let i = 0, len = changes.length; i < len; i++) {
|
|
64
63
|
const change = changes[i];
|
|
65
64
|
this.acceptDeleteRange(change.range);
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
/* eslint-disable max-len */
|
|
27
27
|
/* eslint-disable @typescript-eslint/no-shadow */
|
|
28
28
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
29
|
-
/* eslint-disable @
|
|
29
|
+
/* eslint-disable @theia/explicit-return-type */
|
|
30
30
|
|
|
31
31
|
import { Emitter, Event as EventNamespace, WaitUntilEvent, AsyncEmitter, WaitUntilData } from '@theia/core/lib/common/event';
|
|
32
32
|
import { GLOB_SPLIT, GLOBSTAR, parse } from '@theia/core/lib/common/glob';
|
|
@@ -24,9 +24,9 @@
|
|
|
24
24
|
*/
|
|
25
25
|
|
|
26
26
|
/* eslint-disable arrow-body-style */
|
|
27
|
-
/* eslint-disable @
|
|
28
|
-
/* eslint-disable @typescript-eslint/tslint/config */
|
|
27
|
+
/* eslint-disable @stylistic/quotes */
|
|
29
28
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
29
|
+
/* eslint-disable @theia/explicit-return-type */
|
|
30
30
|
|
|
31
31
|
import { Schemes as Schemas, UriComponents } from '../common/uri-components';
|
|
32
32
|
import { FileChangeType, FileSystemError, URI } from './types-impl';
|
|
@@ -366,9 +366,9 @@ export namespace KnownCommands {
|
|
|
366
366
|
return L.create(l.uri.toString(), fromRangeToR(l.range));
|
|
367
367
|
}
|
|
368
368
|
|
|
369
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @
|
|
369
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @theia/explicit-return-type
|
|
370
370
|
function vscodeToMonacoArgsConverter(args: any[]) {
|
|
371
|
-
//
|
|
371
|
+
// eslint-disable-next-line @theia/explicit-return-type
|
|
372
372
|
return cloneAndChange(args, function (value) {
|
|
373
373
|
if (CallHierarchyItem.isCallHierarchyItem(value)) {
|
|
374
374
|
return fromCallHierarchyItem(value);
|
|
@@ -394,9 +394,9 @@ export namespace KnownCommands {
|
|
|
394
394
|
});
|
|
395
395
|
}
|
|
396
396
|
|
|
397
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @
|
|
397
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any, @theia/explicit-return-type
|
|
398
398
|
function monacoToVscodeArgsConverter(args: any[]) {
|
|
399
|
-
//
|
|
399
|
+
// eslint-disable-next-line @theia/explicit-return-type
|
|
400
400
|
return cloneAndChange(args, function (value) {
|
|
401
401
|
if (isModelCallHierarchyItem(value)) {
|
|
402
402
|
return toCallHierarchyItem(value);
|
|
@@ -422,7 +422,7 @@ export namespace KnownCommands {
|
|
|
422
422
|
}
|
|
423
423
|
|
|
424
424
|
function toArrayConversion<T, U>(f: (a: T) => U): (a: T[]) => U[] {
|
|
425
|
-
//
|
|
425
|
+
// eslint-disable-next-line @theia/explicit-return-type
|
|
426
426
|
return function (a: T[]) {
|
|
427
427
|
return a.map(f);
|
|
428
428
|
};
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
17
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
18
|
-
/*
|
|
18
|
+
/* eslint-disable @theia/explicit-return-type */
|
|
19
19
|
|
|
20
20
|
import type * as theia from '@theia/plugin';
|
|
21
21
|
import { CommandRegistryImpl } from './command-registry';
|
|
@@ -1698,7 +1698,7 @@ export class Plugin<T> implements theia.Plugin<T> {
|
|
|
1698
1698
|
}
|
|
1699
1699
|
|
|
1700
1700
|
get exports(): T {
|
|
1701
|
-
return
|
|
1701
|
+
return this.#pluginManager.getPluginExport(this.id) as T;
|
|
1702
1702
|
}
|
|
1703
1703
|
|
|
1704
1704
|
activate(): PromiseLike<T> {
|
|
@@ -1729,7 +1729,7 @@ export class PluginExt<T> extends Plugin<T> implements ExtensionPlugin<T> {
|
|
|
1729
1729
|
}
|
|
1730
1730
|
|
|
1731
1731
|
override get exports(): T {
|
|
1732
|
-
return
|
|
1732
|
+
return this.#pluginManager.getPluginExport(this.id) as T;
|
|
1733
1733
|
}
|
|
1734
1734
|
|
|
1735
1735
|
override activate(): PromiseLike<T> {
|
package/src/plugin/scm.spec.ts
CHANGED
|
@@ -24,7 +24,13 @@
|
|
|
24
24
|
import * as assert from 'assert';
|
|
25
25
|
import { Emitter } from '@theia/core/lib/common/event';
|
|
26
26
|
import { DisposableCollection } from '@theia/core/lib/common/disposable';
|
|
27
|
-
import { ScmCommandArg, ScmHistoryItemCommandArg } from '../common/plugin-api-rpc';
|
|
27
|
+
import { ScmCommandArg, ScmHistoryItemCommandArg, ScmMain, ScmRawResourceSplices } from '../common/plugin-api-rpc';
|
|
28
|
+
import { ScmExtImpl } from './scm';
|
|
29
|
+
import { RPCProtocol } from '../common/rpc-protocol';
|
|
30
|
+
import { CommandRegistryImpl } from './command-registry';
|
|
31
|
+
import { Plugin } from '../common';
|
|
32
|
+
import { URI } from './types-impl';
|
|
33
|
+
import { SourceControlResourceGroup, SourceControlResourceState } from '@theia/plugin';
|
|
28
34
|
|
|
29
35
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
30
36
|
|
|
@@ -152,6 +158,66 @@ class HistoryProviderBridge {
|
|
|
152
158
|
}
|
|
153
159
|
}
|
|
154
160
|
|
|
161
|
+
describe('SCM multi-diff resource snapshots (plugin side)', () => {
|
|
162
|
+
let group: SourceControlResourceGroup;
|
|
163
|
+
let updates: ScmRawResourceSplices[][];
|
|
164
|
+
|
|
165
|
+
beforeEach(() => {
|
|
166
|
+
updates = [];
|
|
167
|
+
const proxy = new Proxy({}, {
|
|
168
|
+
get: (_target, name) => name === '$spliceResourceStates'
|
|
169
|
+
? (_handle: number, splices: ScmRawResourceSplices[]): void => { updates.push(splices); }
|
|
170
|
+
: (): void => { }
|
|
171
|
+
}) as ScmMain;
|
|
172
|
+
const scm = new ScmExtImpl(
|
|
173
|
+
{ getProxy: () => proxy } as unknown as RPCProtocol,
|
|
174
|
+
{ registerArgumentProcessor: () => { } } as unknown as CommandRegistryImpl
|
|
175
|
+
);
|
|
176
|
+
const sourceControl = scm.createSourceControl({ model: { id: 'test' } } as Plugin, 'git', 'Git', undefined);
|
|
177
|
+
group = sourceControl.createResourceGroup('changes', 'Changes');
|
|
178
|
+
});
|
|
179
|
+
|
|
180
|
+
it('serializes added and deleted sides using the proposed modified field name', () => {
|
|
181
|
+
const added = URI.parse('file:///repo/added.txt');
|
|
182
|
+
const deleted = URI.parse('git:/repo/deleted.txt?ref=HEAD#original');
|
|
183
|
+
group.resourceStates = [
|
|
184
|
+
{ resourceUri: added, multiFileDiffEditorModifiedUri: added },
|
|
185
|
+
{ resourceUri: URI.file('/repo/deleted.txt'), multiDiffEditorOriginalUri: deleted }
|
|
186
|
+
];
|
|
187
|
+
const resources = updates[0][0].splices[0].rawResources;
|
|
188
|
+
assert.strictEqual(resources[0].multiDiffEditorOriginalUri, undefined);
|
|
189
|
+
assert.strictEqual(resources[0].multiDiffEditorModifiedUri?.toString(), added.toString());
|
|
190
|
+
assert.strictEqual(resources[1].multiDiffEditorOriginalUri?.toString(), deleted.toString());
|
|
191
|
+
assert.strictEqual(resources[1].multiDiffEditorModifiedUri, undefined);
|
|
192
|
+
});
|
|
193
|
+
|
|
194
|
+
for (const field of ['multiDiffEditorOriginalUri', 'multiFileDiffEditorModifiedUri'] as const) {
|
|
195
|
+
it(`detects ${field}-only additions, changes and removals, but ignores equal URIs`, () => {
|
|
196
|
+
const resourceUri = URI.file('/repo/file.txt');
|
|
197
|
+
const state: SourceControlResourceState = { resourceUri };
|
|
198
|
+
group.resourceStates = [state];
|
|
199
|
+
updates.length = 0;
|
|
200
|
+
group.resourceStates = [{ ...state }];
|
|
201
|
+
assert.strictEqual(updates.length, 0);
|
|
202
|
+
|
|
203
|
+
for (const uri of [URI.parse('git:/repo/file.txt?ref=HEAD'), URI.parse('git:/repo/file.txt?ref=HEAD~1#changed'), undefined]) {
|
|
204
|
+
const nextState = { ...state, [field]: uri };
|
|
205
|
+
group.resourceStates = [nextState];
|
|
206
|
+
assert.strictEqual(updates.length, 1);
|
|
207
|
+
const splices = updates[0][0].splices;
|
|
208
|
+
assert.strictEqual(splices.reduce((count, splice) => count + splice.deleteCount, 0), 1);
|
|
209
|
+
const resources = splices.flatMap(splice => splice.rawResources);
|
|
210
|
+
assert.strictEqual(resources.length, 1);
|
|
211
|
+
const rawField = field === 'multiFileDiffEditorModifiedUri' ? 'multiDiffEditorModifiedUri' : field;
|
|
212
|
+
assert.strictEqual(resources[0][rawField]?.toString(), uri?.toString());
|
|
213
|
+
updates.length = 0;
|
|
214
|
+
group.resourceStates = [{ ...nextState, [field]: uri ? URI.parse(uri.toString()) : undefined }];
|
|
215
|
+
assert.strictEqual(updates.length, 0);
|
|
216
|
+
}
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
});
|
|
220
|
+
|
|
155
221
|
describe('SCM history provider bridge (plugin side)', () => {
|
|
156
222
|
let bridge: HistoryProviderBridge;
|
|
157
223
|
let bridgeDisposables: DisposableCollection;
|
package/src/plugin/scm.ts
CHANGED
|
@@ -68,6 +68,10 @@ function getIconResource(decorations?: theia.SourceControlResourceThemableDecora
|
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
function comparePaths(one: string, other: string, caseSensitive = false): number {
|
|
71
|
+
if (one === other) {
|
|
72
|
+
return 0;
|
|
73
|
+
}
|
|
74
|
+
|
|
71
75
|
const oneParts = one.split(sep);
|
|
72
76
|
const otherParts = other.split(sep);
|
|
73
77
|
|
|
@@ -225,6 +229,17 @@ function compareResourceStates(a: theia.SourceControlResourceState, b: theia.Sou
|
|
|
225
229
|
return result;
|
|
226
230
|
}
|
|
227
231
|
|
|
232
|
+
result = (a.multiDiffEditorOriginalUri?.toString() ?? '').localeCompare(b.multiDiffEditorOriginalUri?.toString() ?? '');
|
|
233
|
+
if (result !== 0) {
|
|
234
|
+
return result;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
result = (a.multiFileDiffEditorModifiedUri?.toString() ?? '').localeCompare(b.multiFileDiffEditorModifiedUri?.toString() ?? '');
|
|
238
|
+
|
|
239
|
+
if (result !== 0) {
|
|
240
|
+
return result;
|
|
241
|
+
}
|
|
242
|
+
|
|
228
243
|
if (a.command && b.command) {
|
|
229
244
|
result = compareCommands(a.command, b.command);
|
|
230
245
|
} else if (a.command) {
|
|
@@ -494,7 +509,9 @@ class ScmResourceGroupImpl implements theia.SourceControlResourceGroup {
|
|
|
494
509
|
const rawResource = {
|
|
495
510
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
496
511
|
handle, sourceUri, letter: (r as any).letter, colorId: (r as any).color?.id, icons,
|
|
497
|
-
tooltip, strikeThrough, faded, contextValue, command
|
|
512
|
+
tooltip, strikeThrough, faded, contextValue, command,
|
|
513
|
+
multiDiffEditorOriginalUri: r.multiDiffEditorOriginalUri,
|
|
514
|
+
multiDiffEditorModifiedUri: r.multiFileDiffEditorModifiedUri
|
|
498
515
|
} as ScmRawResource;
|
|
499
516
|
|
|
500
517
|
return { rawResource, handle };
|
package/src/plugin/tests.ts
CHANGED
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
|
|
24
24
|
// /* eslint-disable */
|
|
25
25
|
|
|
26
|
-
/*
|
|
26
|
+
/* eslint-disable @theia/explicit-return-type */
|
|
27
27
|
|
|
28
28
|
import * as theia from '@theia/plugin';
|
|
29
29
|
import { CancellationToken, CancellationTokenSource } from '@theia/core/lib/common/cancellation';
|
|
@@ -318,7 +318,7 @@ export class TestRun implements theia.TestRun {
|
|
|
318
318
|
return true;
|
|
319
319
|
}
|
|
320
320
|
|
|
321
|
-
private updateTestState<T extends TestStateChangeDTO>(item: theia.TestItem, state: T) {
|
|
321
|
+
private updateTestState<T extends TestStateChangeDTO>(item: theia.TestItem, state: T): void {
|
|
322
322
|
if (this.checkNotEnded(item)) {
|
|
323
323
|
this.testStateDeltas.set(item, state);
|
|
324
324
|
this.changeBatcher.changeOccurred();
|
|
@@ -93,7 +93,7 @@ export class TreeViewsExtImpl implements TreeViewsExt {
|
|
|
93
93
|
this.treeViews.set(treeViewId, treeView);
|
|
94
94
|
|
|
95
95
|
return {
|
|
96
|
-
|
|
96
|
+
/* eslint-disable @theia/explicit-return-type */
|
|
97
97
|
get onDidExpandElement() {
|
|
98
98
|
return treeView.onDidExpandElement;
|
|
99
99
|
},
|
|
@@ -115,6 +115,7 @@ export class TreeViewsExtImpl implements TreeViewsExt {
|
|
|
115
115
|
get onDidChangeCheckboxState() {
|
|
116
116
|
return treeView.onDidChangeCheckboxState;
|
|
117
117
|
},
|
|
118
|
+
/* eslint-enable @theia/explicit-return-type */
|
|
118
119
|
get message(): string {
|
|
119
120
|
return treeView.message;
|
|
120
121
|
},
|
|
@@ -150,7 +150,7 @@ describe('Type converters:', () => {
|
|
|
150
150
|
|
|
151
151
|
it('should convert array of markups to model markdown', () => {
|
|
152
152
|
// given
|
|
153
|
-
// eslint-disable-next-line
|
|
153
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
154
154
|
const markups: (theia.MarkdownString | theia.MarkedString)[] = [
|
|
155
155
|
pluginMarkdown,
|
|
156
156
|
aStringWithMarkdown,
|