@theia/plugin-ext 1.53.0-next.4 → 1.53.0-next.55
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/README.md +54 -54
- package/lib/common/plugin-api-rpc.d.ts +19 -4
- package/lib/common/plugin-api-rpc.d.ts.map +1 -1
- package/lib/common/plugin-api-rpc.js +4 -2
- package/lib/common/plugin-api-rpc.js.map +1 -1
- package/lib/common/rpc-protocol.d.ts +14 -13
- package/lib/common/rpc-protocol.d.ts.map +1 -1
- package/lib/common/rpc-protocol.js +56 -53
- package/lib/common/rpc-protocol.js.map +1 -1
- package/lib/hosted/browser/hosted-plugin.d.ts +1 -0
- package/lib/hosted/browser/hosted-plugin.d.ts.map +1 -1
- package/lib/hosted/browser/hosted-plugin.js +22 -12
- package/lib/hosted/browser/hosted-plugin.js.map +1 -1
- package/lib/hosted/node/scanners/scanner-theia.d.ts.map +1 -1
- package/lib/hosted/node/scanners/scanner-theia.js +13 -1
- package/lib/hosted/node/scanners/scanner-theia.js.map +1 -1
- package/lib/main/browser/authentication-main.d.ts +6 -5
- package/lib/main/browser/authentication-main.d.ts.map +1 -1
- package/lib/main/browser/authentication-main.js +15 -9
- package/lib/main/browser/authentication-main.js.map +1 -1
- package/lib/main/browser/custom-editors/custom-editor-opener.d.ts +9 -3
- package/lib/main/browser/custom-editors/custom-editor-opener.d.ts.map +1 -1
- package/lib/main/browser/custom-editors/custom-editor-opener.js +120 -31
- package/lib/main/browser/custom-editors/custom-editor-opener.js.map +1 -1
- package/lib/main/browser/custom-editors/custom-editor-widget.d.ts +7 -4
- package/lib/main/browser/custom-editors/custom-editor-widget.d.ts.map +1 -1
- package/lib/main/browser/custom-editors/custom-editor-widget.js +21 -7
- package/lib/main/browser/custom-editors/custom-editor-widget.js.map +1 -1
- package/lib/main/browser/custom-editors/custom-editors-main.d.ts +3 -4
- package/lib/main/browser/custom-editors/custom-editors-main.d.ts.map +1 -1
- package/lib/main/browser/custom-editors/custom-editors-main.js +5 -55
- package/lib/main/browser/custom-editors/custom-editors-main.js.map +1 -1
- package/lib/main/browser/custom-editors/plugin-custom-editor-registry.d.ts +4 -3
- package/lib/main/browser/custom-editors/plugin-custom-editor-registry.d.ts.map +1 -1
- package/lib/main/browser/custom-editors/plugin-custom-editor-registry.js +24 -16
- package/lib/main/browser/custom-editors/plugin-custom-editor-registry.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/menus/menus-contribution-handler.d.ts.map +1 -1
- package/lib/main/browser/menus/menus-contribution-handler.js +1 -1
- package/lib/main/browser/menus/menus-contribution-handler.js.map +1 -1
- package/lib/main/browser/menus/plugin-menu-command-adapter.d.ts +1 -0
- package/lib/main/browser/menus/plugin-menu-command-adapter.d.ts.map +1 -1
- package/lib/main/browser/menus/plugin-menu-command-adapter.js +22 -1
- package/lib/main/browser/menus/plugin-menu-command-adapter.js.map +1 -1
- package/lib/main/browser/menus/vscode-theia-menu-mappings.d.ts +2 -2
- package/lib/main/browser/menus/vscode-theia-menu-mappings.d.ts.map +1 -1
- package/lib/main/browser/menus/vscode-theia-menu-mappings.js +2 -0
- package/lib/main/browser/menus/vscode-theia-menu-mappings.js.map +1 -1
- package/lib/main/browser/notebooks/notebook-documents-and-editors-main.js +1 -1
- package/lib/main/browser/notebooks/notebook-documents-and-editors-main.js.map +1 -1
- package/lib/main/browser/notebooks/notebook-documents-main.d.ts.map +1 -1
- package/lib/main/browser/notebooks/notebook-documents-main.js +22 -3
- package/lib/main/browser/notebooks/notebook-documents-main.js.map +1 -1
- package/lib/main/browser/notebooks/notebook-editors-main.d.ts +1 -1
- package/lib/main/browser/notebooks/notebook-editors-main.d.ts.map +1 -1
- package/lib/main/browser/notebooks/notebook-editors-main.js +16 -2
- package/lib/main/browser/notebooks/notebook-editors-main.js.map +1 -1
- package/lib/main/browser/notebooks/renderers/cell-output-webview.d.ts +1 -1
- package/lib/main/browser/notebooks/renderers/cell-output-webview.d.ts.map +1 -1
- package/lib/main/browser/notebooks/renderers/cell-output-webview.js +152 -77
- package/lib/main/browser/notebooks/renderers/cell-output-webview.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 +38 -19
- package/lib/main/browser/notebooks/renderers/output-webview-internal.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 +18 -0
- package/lib/main/browser/plugin-ext-frontend-module.js.map +1 -1
- package/lib/main/browser/plugin-icon-theme-service.js +20 -20
- package/lib/main/browser/plugin-shared-style.js +14 -14
- package/lib/main/browser/uri-main.d.ts +16 -0
- package/lib/main/browser/uri-main.d.ts.map +1 -0
- package/lib/main/browser/uri-main.js +64 -0
- package/lib/main/browser/uri-main.js.map +1 -0
- package/lib/main/browser/view/plugin-view-registry.js +3 -3
- package/lib/main/browser/webview/webview-frontend-security-warnings.js +2 -2
- package/lib/main/browser/webview/webview-secondary-window-support.js +10 -10
- package/lib/main/browser/webview/webview.d.ts +1 -3
- package/lib/main/browser/webview/webview.d.ts.map +1 -1
- package/lib/main/browser/webview/webview.js +5 -4
- package/lib/main/browser/webview/webview.js.map +1 -1
- package/lib/main/browser/webviews-main.d.ts.map +1 -1
- package/lib/main/browser/webviews-main.js +6 -1
- package/lib/main/browser/webviews-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/node/plugin-service.d.ts +1 -1
- package/lib/main/node/webview-backend-security-warnings.js +6 -6
- package/lib/plugin/authentication-ext.d.ts +3 -2
- package/lib/plugin/authentication-ext.d.ts.map +1 -1
- package/lib/plugin/authentication-ext.js +8 -5
- package/lib/plugin/authentication-ext.js.map +1 -1
- package/lib/plugin/custom-editors.d.ts +2 -4
- package/lib/plugin/custom-editors.d.ts.map +1 -1
- package/lib/plugin/custom-editors.js +5 -7
- package/lib/plugin/custom-editors.js.map +1 -1
- package/lib/plugin/env.d.ts +2 -0
- package/lib/plugin/env.d.ts.map +1 -1
- package/lib/plugin/env.js +4 -1
- package/lib/plugin/env.js.map +1 -1
- package/lib/plugin/known-commands.d.ts.map +1 -1
- package/lib/plugin/known-commands.js +1 -0
- package/lib/plugin/known-commands.js.map +1 -1
- package/lib/plugin/languages.d.ts +1 -0
- package/lib/plugin/languages.d.ts.map +1 -1
- package/lib/plugin/notebook/notebook-kernels.d.ts +2 -0
- package/lib/plugin/notebook/notebook-kernels.d.ts.map +1 -1
- package/lib/plugin/plugin-context.d.ts.map +1 -1
- package/lib/plugin/plugin-context.js +17 -6
- 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 +2 -1
- package/lib/plugin/plugin-manager.js.map +1 -1
- package/lib/plugin/scm.d.ts +1 -0
- package/lib/plugin/scm.d.ts.map +1 -1
- package/lib/plugin/terminal-ext.d.ts +3 -0
- package/lib/plugin/terminal-ext.d.ts.map +1 -1
- package/lib/plugin/terminal-ext.js +2 -0
- package/lib/plugin/terminal-ext.js.map +1 -1
- package/lib/plugin/type-converters.d.ts +6 -0
- package/lib/plugin/type-converters.d.ts.map +1 -1
- package/lib/plugin/type-converters.js +24 -3
- package/lib/plugin/type-converters.js.map +1 -1
- package/lib/plugin/types-impl.d.ts +8 -2
- package/lib/plugin/types-impl.d.ts.map +1 -1
- package/lib/plugin/types-impl.js +9 -1
- package/lib/plugin/types-impl.js.map +1 -1
- package/lib/plugin/uri-ext.d.ts +37 -0
- package/lib/plugin/uri-ext.d.ts.map +1 -0
- package/lib/plugin/uri-ext.js +50 -0
- package/lib/plugin/uri-ext.js.map +1 -0
- package/lib/plugin/webviews.js +1 -1
- package/lib/plugin/webviews.js.map +1 -1
- package/lib/plugin/workspace.d.ts +4 -0
- package/lib/plugin/workspace.d.ts.map +1 -1
- package/package.json +29 -29
- package/src/common/arrays.ts +70 -70
- package/src/common/assert.ts +23 -23
- package/src/common/cache.ts +51 -51
- package/src/common/character-classifier.ts +73 -73
- package/src/common/collections.ts +54 -54
- package/src/common/commands.ts +19 -19
- package/src/common/connection.ts +137 -137
- package/src/common/disposable-util.ts +39 -39
- package/src/common/editor-options.ts +74 -74
- package/src/common/env.ts +19 -19
- package/src/common/errors.ts +63 -63
- package/src/common/id-generator.ts +26 -26
- package/src/common/index.ts +24 -24
- package/src/common/language-pack-service.ts +34 -34
- package/src/common/link-computer.ts +354 -354
- package/src/common/object-identifier.ts +33 -33
- package/src/common/objects.ts +50 -50
- package/src/common/paths-util.ts +158 -158
- package/src/common/plugin-api-rpc-model.ts +907 -907
- package/src/common/plugin-api-rpc.ts +2752 -2738
- package/src/common/plugin-ext-api-contribution.ts +115 -115
- package/src/common/plugin-identifiers.ts +84 -84
- package/src/common/plugin-protocol.ts +1094 -1094
- package/src/common/reference-map.ts +38 -38
- package/src/common/rpc-protocol.ts +306 -310
- package/src/common/semantic-tokens-dto.ts +182 -182
- package/src/common/test-types.ts +154 -154
- package/src/common/types.ts +129 -129
- package/src/common/uint.ts +37 -37
- package/src/common/uri-components.ts +81 -81
- package/src/hosted/browser/hosted-plugin-watcher.ts +54 -54
- package/src/hosted/browser/hosted-plugin.ts +635 -624
- package/src/hosted/browser/plugin-worker.ts +52 -52
- package/src/hosted/browser/worker/debug-stub.ts +29 -29
- package/src/hosted/browser/worker/plugin-manifest-loader.ts +114 -114
- package/src/hosted/browser/worker/worker-env-ext.ts +40 -40
- package/src/hosted/browser/worker/worker-main.ts +212 -212
- package/src/hosted/browser/worker/worker-plugin-module.ts +80 -80
- package/src/hosted/common/hosted-plugin.ts +456 -456
- package/src/hosted/node/hosted-plugin-cli-contribution.ts +75 -75
- package/src/hosted/node/hosted-plugin-deployer-handler.ts +274 -274
- package/src/hosted/node/hosted-plugin-localization-service.ts +410 -410
- package/src/hosted/node/hosted-plugin-process.ts +248 -248
- package/src/hosted/node/hosted-plugin-protocol.ts +49 -49
- package/src/hosted/node/hosted-plugin.ts +116 -116
- package/src/hosted/node/metadata-scanner.ts +64 -64
- package/src/hosted/node/plugin-activation-events.ts +112 -112
- package/src/hosted/node/plugin-ext-hosted-backend-module.ts +94 -94
- package/src/hosted/node/plugin-host-module.ts +69 -69
- package/src/hosted/node/plugin-host-proxy.ts +82 -82
- package/src/hosted/node/plugin-host-rpc.ts +377 -377
- package/src/hosted/node/plugin-host.ts +110 -110
- package/src/hosted/node/plugin-language-pack-service.ts +43 -43
- package/src/hosted/node/plugin-manifest-loader.ts +32 -32
- package/src/hosted/node/plugin-reader.ts +136 -136
- package/src/hosted/node/plugin-service.ts +197 -197
- package/src/hosted/node/scanners/backend-init-theia.ts +71 -71
- package/src/hosted/node/scanners/file-plugin-uri-factory.ts +32 -32
- package/src/hosted/node/scanners/grammars-reader.ts +57 -57
- package/src/hosted/node/scanners/plugin-uri-factory.ts +33 -33
- package/src/hosted/node/scanners/scanner-theia.ts +963 -952
- package/src/hosted/node-electron/plugin-ext-hosted-electron-backend-module.ts +26 -26
- package/src/hosted/node-electron/scanner-theia-electron.ts +32 -32
- package/src/main/browser/authentication-main.ts +401 -388
- package/src/main/browser/clipboard-main.ts +38 -38
- package/src/main/browser/command-registry-main.ts +130 -130
- package/src/main/browser/commands.ts +104 -104
- package/src/main/browser/comments/comment-glyph-widget.ts +66 -66
- package/src/main/browser/comments/comment-thread-widget.tsx +696 -696
- package/src/main/browser/comments/comments-context-key-service.ts +68 -68
- package/src/main/browser/comments/comments-contribution.ts +268 -268
- package/src/main/browser/comments/comments-decorator.ts +110 -110
- package/src/main/browser/comments/comments-main.ts +482 -482
- package/src/main/browser/comments/comments-service.ts +205 -205
- package/src/main/browser/custom-editors/custom-editor-opener.tsx +205 -105
- package/src/main/browser/custom-editors/custom-editor-service.ts +108 -108
- package/src/main/browser/custom-editors/custom-editor-undo-redo-handler.ts +41 -41
- package/src/main/browser/custom-editors/custom-editor-widget-factory.ts +44 -44
- package/src/main/browser/custom-editors/custom-editor-widget.ts +127 -118
- package/src/main/browser/custom-editors/custom-editors-main.ts +526 -585
- package/src/main/browser/custom-editors/plugin-custom-editor-registry.ts +126 -120
- package/src/main/browser/data-transfer/data-transfer-type-converters.ts +68 -68
- package/src/main/browser/debug/debug-main.ts +397 -397
- package/src/main/browser/debug/plugin-debug-adapter-contribution.ts +48 -48
- package/src/main/browser/debug/plugin-debug-configuration-provider.ts +63 -63
- package/src/main/browser/debug/plugin-debug-service.ts +427 -427
- package/src/main/browser/debug/plugin-debug-session-contribution-registry.ts +76 -76
- package/src/main/browser/debug/plugin-debug-session-factory.ts +115 -115
- package/src/main/browser/decorations/decorations-main.ts +146 -146
- package/src/main/browser/dialogs/modal-notification.ts +112 -112
- package/src/main/browser/dialogs/style/modal-notification.css +123 -123
- package/src/main/browser/dialogs-main.ts +185 -185
- package/src/main/browser/documents-main.ts +275 -275
- package/src/main/browser/editors-and-documents-main.ts +425 -425
- package/src/main/browser/env-main.ts +60 -60
- package/src/main/browser/file-system-main-impl.ts +267 -267
- package/src/main/browser/hierarchy/hierarchy-types-converters.ts +189 -189
- package/src/main/browser/keybindings/keybindings-contribution-handler.ts +66 -66
- package/src/main/browser/label-service-main.ts +51 -51
- package/src/main/browser/languages-main.ts +1439 -1439
- package/src/main/browser/localization-main.ts +34 -34
- package/src/main/browser/main-context.ts +210 -206
- package/src/main/browser/main-file-system-event-service.ts +76 -76
- package/src/main/browser/menus/menus-contribution-handler.ts +172 -171
- package/src/main/browser/menus/plugin-menu-command-adapter.ts +358 -337
- package/src/main/browser/menus/vscode-theia-menu-mappings.ts +118 -116
- package/src/main/browser/message-registry-main.ts +43 -43
- package/src/main/browser/notebooks/notebook-documents-and-editors-main.ts +249 -249
- package/src/main/browser/notebooks/notebook-documents-main.ts +202 -182
- package/src/main/browser/notebooks/notebook-dto.ts +131 -131
- package/src/main/browser/notebooks/notebook-editors-main.ts +88 -75
- package/src/main/browser/notebooks/notebook-kernels-main.ts +339 -339
- package/src/main/browser/notebooks/notebook-renderers-main.ts +47 -47
- package/src/main/browser/notebooks/notebooks-main.ts +164 -164
- package/src/main/browser/notebooks/renderers/cell-output-webview.tsx +452 -375
- package/src/main/browser/notebooks/renderers/output-webview-internal.ts +636 -613
- package/src/main/browser/notebooks/renderers/webview-communication.ts +107 -107
- package/src/main/browser/notification-main.ts +26 -26
- package/src/main/browser/output-channel-registry-main.ts +53 -53
- package/src/main/browser/plugin-authentication-service.ts +71 -71
- package/src/main/browser/plugin-contribution-handler.ts +698 -698
- package/src/main/browser/plugin-ext-frontend-module.ts +291 -272
- package/src/main/browser/plugin-ext-widget.tsx +132 -132
- package/src/main/browser/plugin-frontend-contribution.ts +70 -70
- package/src/main/browser/plugin-frontend-view-contribution.ts +38 -38
- package/src/main/browser/plugin-icon-service.ts +92 -92
- package/src/main/browser/plugin-icon-theme-service.ts +625 -625
- package/src/main/browser/plugin-shared-style.ts +154 -154
- package/src/main/browser/plugin-storage.ts +55 -55
- package/src/main/browser/plugin-terminal-registry.ts +27 -27
- package/src/main/browser/preference-registry-main.ts +123 -123
- package/src/main/browser/quick-open-main.ts +367 -367
- package/src/main/browser/scm-main.ts +472 -472
- package/src/main/browser/secrets-main.ts +82 -82
- package/src/main/browser/selection-provider-command.ts +45 -45
- package/src/main/browser/status-bar-message-registry-main.ts +90 -90
- package/src/main/browser/style/comments.css +345 -345
- package/src/main/browser/style/index.css +84 -84
- package/src/main/browser/style/plugin-sidebar.css +73 -73
- package/src/main/browser/style/tree.css +54 -54
- package/src/main/browser/style/webview.css +55 -55
- package/src/main/browser/tabs/tabs-main.ts +384 -384
- package/src/main/browser/tasks-main.ts +268 -268
- package/src/main/browser/terminal-main.ts +370 -370
- package/src/main/browser/test-main.ts +632 -632
- package/src/main/browser/text-editor-main.ts +478 -478
- package/src/main/browser/text-editor-model-service.ts +111 -111
- package/src/main/browser/text-editors-main.ts +234 -234
- package/src/main/browser/theme-icon-override.ts +246 -246
- package/src/main/browser/theming-main.ts +42 -42
- package/src/main/browser/timeline-main.ts +80 -80
- package/src/main/browser/uri-main.ts +72 -0
- package/src/main/browser/view/dnd-file-content-store.ts +42 -42
- package/src/main/browser/view/plugin-tree-view-node-label-provider.ts +81 -81
- package/src/main/browser/view/plugin-view-registry.ts +967 -967
- package/src/main/browser/view/plugin-view-widget.ts +221 -221
- package/src/main/browser/view/tree-view-decorator-service.ts +51 -51
- package/src/main/browser/view/tree-view-widget.tsx +931 -931
- package/src/main/browser/view/tree-views-main.ts +205 -205
- package/src/main/browser/view/view-context-key-service.ts +64 -64
- package/src/main/browser/webview/pre/fake.html +14 -14
- package/src/main/browser/webview/pre/host.js +130 -130
- package/src/main/browser/webview/pre/index.html +17 -17
- package/src/main/browser/webview/pre/main.js +682 -682
- package/src/main/browser/webview/pre/service-worker.js +296 -295
- package/src/main/browser/webview/webview-context-keys.ts +62 -62
- package/src/main/browser/webview/webview-environment.ts +87 -87
- package/src/main/browser/webview/webview-frontend-security-warnings.ts +59 -59
- package/src/main/browser/webview/webview-preferences.ts +72 -72
- package/src/main/browser/webview/webview-resource-cache.ts +88 -88
- package/src/main/browser/webview/webview-secondary-window-support.ts +47 -47
- package/src/main/browser/webview/webview-theme-data-provider.ts +124 -124
- package/src/main/browser/webview/webview.ts +718 -719
- package/src/main/browser/webview-views/webview-views-main.ts +154 -154
- package/src/main/browser/webview-views/webview-views.ts +43 -43
- package/src/main/browser/webviews-main.ts +287 -282
- package/src/main/browser/window-activity-tracker.ts +96 -96
- package/src/main/browser/window-state-main.ts +85 -85
- package/src/main/browser/workspace-main.ts +424 -424
- package/src/main/common/basic-message-registry-main.ts +53 -53
- package/src/main/common/basic-notification-main.ts +86 -86
- package/src/main/common/env-main.ts +44 -44
- package/src/main/common/plugin-paths-protocol.ts +26 -26
- package/src/main/common/plugin-theia-environment.ts +36 -36
- package/src/main/common/webview-protocol.ts +28 -28
- package/src/main/electron-browser/plugin-ext-frontend-electron-module.ts +25 -25
- package/src/main/electron-browser/webview/electron-webview-widget-factory.ts +59 -59
- package/src/main/node/errors.spec.ts +37 -37
- package/src/main/node/handlers/plugin-theia-directory-handler.ts +137 -137
- package/src/main/node/handlers/plugin-theia-file-handler.ts +66 -66
- package/src/main/node/paths/const.ts +21 -21
- package/src/main/node/paths/plugin-paths-service.ts +163 -163
- package/src/main/node/plugin-cli-contribution.ts +85 -85
- package/src/main/node/plugin-deployer-contribution.ts +35 -35
- package/src/main/node/plugin-deployer-directory-handler-context-impl.ts +45 -45
- package/src/main/node/plugin-deployer-entry-impl.ts +132 -132
- package/src/main/node/plugin-deployer-file-handler-context-impl.ts +33 -33
- package/src/main/node/plugin-deployer-impl.ts +375 -375
- package/src/main/node/plugin-deployer-proxy-entry-impl.ts +96 -96
- package/src/main/node/plugin-deployer-resolver-context-impl.ts +55 -55
- package/src/main/node/plugin-ext-backend-module.ts +106 -106
- package/src/main/node/plugin-github-resolver.ts +139 -139
- package/src/main/node/plugin-http-resolver.ts +92 -92
- package/src/main/node/plugin-localization-server.ts +42 -42
- package/src/main/node/plugin-mgmt-cli-contribution.ts +64 -64
- package/src/main/node/plugin-remote-cli-contribution.ts +36 -36
- package/src/main/node/plugin-remote-copy-contribution.ts +36 -36
- package/src/main/node/plugin-server-handler.ts +69 -69
- package/src/main/node/plugin-service.ts +97 -97
- package/src/main/node/plugin-theia-deployer-participant.ts +32 -32
- package/src/main/node/plugin-uninstallation-manager.ts +74 -74
- package/src/main/node/plugins-key-value-storage.spec.ts +110 -110
- package/src/main/node/plugins-key-value-storage.ts +161 -161
- package/src/main/node/resolvers/local-directory-plugin-deployer-resolver.ts +37 -37
- package/src/main/node/resolvers/local-plugin-deployer-resolver.ts +56 -56
- package/src/main/node/temp-dir-util.ts +36 -36
- package/src/main/node/webview-backend-security-warnings.ts +45 -45
- package/src/main/style/status-bar.css +35 -35
- package/src/plugin/authentication-ext.ts +140 -136
- package/src/plugin/clipboard-ext.ts +43 -43
- package/src/plugin/command-registry.ts +219 -219
- package/src/plugin/comments.ts +549 -549
- package/src/plugin/custom-editors.ts +334 -336
- package/src/plugin/debug/debug-ext.ts +549 -549
- package/src/plugin/debug/plugin-debug-adapter-creator.ts +50 -50
- package/src/plugin/debug/plugin-debug-adapter-session.ts +106 -106
- package/src/plugin/debug/plugin-debug-adapter-tracker.ts +85 -85
- package/src/plugin/decorations.ts +140 -140
- package/src/plugin/dialogs.ts +96 -96
- package/src/plugin/document-data.ts +366 -366
- package/src/plugin/documents.ts +283 -283
- package/src/plugin/editors-and-documents.ts +176 -176
- package/src/plugin/env.ts +134 -129
- package/src/plugin/file-system-event-service-ext-impl.ts +256 -256
- package/src/plugin/file-system-ext-impl.ts +415 -415
- package/src/plugin/known-commands.spec.ts +50 -50
- package/src/plugin/known-commands.ts +429 -428
- package/src/plugin/label-service.ts +36 -36
- package/src/plugin/languages/call-hierarchy.ts +124 -124
- package/src/plugin/languages/code-action.ts +162 -162
- package/src/plugin/languages/color.ts +75 -75
- package/src/plugin/languages/completion.ts +183 -183
- package/src/plugin/languages/declaration.ts +72 -72
- package/src/plugin/languages/definition.ts +73 -73
- package/src/plugin/languages/diagnostics.ts +325 -325
- package/src/plugin/languages/document-drop-edit.ts +44 -44
- package/src/plugin/languages/document-formatting.ts +47 -47
- package/src/plugin/languages/document-highlight.ts +61 -61
- package/src/plugin/languages/evaluatable-expression.ts +47 -47
- package/src/plugin/languages/folding.ts +46 -46
- package/src/plugin/languages/hover.ts +58 -58
- package/src/plugin/languages/implementation.ts +73 -73
- package/src/plugin/languages/inlay-hints.ts +149 -149
- package/src/plugin/languages/inline-completion.ts +126 -126
- package/src/plugin/languages/inline-values.ts +50 -50
- package/src/plugin/languages/lens.ts +102 -102
- package/src/plugin/languages/link-provider.ts +81 -81
- package/src/plugin/languages/linked-editing-range.ts +48 -48
- package/src/plugin/languages/on-type-formatting.ts +50 -50
- package/src/plugin/languages/outline.ts +126 -126
- package/src/plugin/languages/range-formatting.ts +48 -48
- package/src/plugin/languages/reference.ts +58 -58
- package/src/plugin/languages/rename.ts +130 -130
- package/src/plugin/languages/selection-range.ts +80 -80
- package/src/plugin/languages/semantic-highlighting.ts +211 -211
- package/src/plugin/languages/signature.ts +82 -82
- package/src/plugin/languages/type-definition.ts +73 -73
- package/src/plugin/languages/type-hierarchy.ts +117 -117
- package/src/plugin/languages/util.ts +26 -26
- package/src/plugin/languages/workspace-symbol.ts +66 -66
- package/src/plugin/languages-utils.ts +68 -68
- package/src/plugin/languages.ts +1022 -1022
- package/src/plugin/localization-ext.ts +89 -89
- package/src/plugin/markdown-string.ts +115 -115
- package/src/plugin/message-registry.ts +70 -70
- package/src/plugin/node/debug/debug.spec.ts +98 -98
- package/src/plugin/node/debug/plugin-node-debug-adapter-creator.ts +167 -167
- package/src/plugin/node/env-node-ext.ts +64 -64
- package/src/plugin/node/plugin-container-module.ts +165 -165
- package/src/plugin/notebook/notebook-document.ts +446 -446
- package/src/plugin/notebook/notebook-documents.ts +58 -58
- package/src/plugin/notebook/notebook-editor.ts +116 -116
- package/src/plugin/notebook/notebook-editors.ts +71 -71
- package/src/plugin/notebook/notebook-kernels.ts +631 -631
- package/src/plugin/notebook/notebook-renderers.ts +71 -71
- package/src/plugin/notebook/notebooks.ts +449 -449
- package/src/plugin/notification.ts +80 -80
- package/src/plugin/output-channel/log-output-channel.ts +108 -108
- package/src/plugin/output-channel/output-channel-item.ts +73 -73
- package/src/plugin/output-channel-registry.ts +52 -52
- package/src/plugin/path.spec.ts +40 -40
- package/src/plugin/path.ts +68 -68
- package/src/plugin/plugin-context.ts +1606 -1595
- package/src/plugin/plugin-icon-path.ts +53 -53
- package/src/plugin/plugin-manager.ts +508 -507
- package/src/plugin/plugin-storage.ts +138 -138
- package/src/plugin/preference-registry.spec.ts +288 -288
- package/src/plugin/preference-registry.ts +335 -335
- package/src/plugin/prefix-sum-computer.ts +218 -218
- package/src/plugin/quick-open.ts +735 -735
- package/src/plugin/scm.ts +919 -919
- package/src/plugin/secrets-ext.ts +104 -104
- package/src/plugin/status-bar/status-bar-item.ts +193 -193
- package/src/plugin/status-bar-message-registry.ts +103 -103
- package/src/plugin/tabs.ts +431 -431
- package/src/plugin/tasks/task-provider.ts +57 -57
- package/src/plugin/tasks/tasks.ts +252 -252
- package/src/plugin/telemetry-ext.ts +298 -298
- package/src/plugin/terminal-ext.ts +569 -566
- package/src/plugin/test-item.ts +174 -174
- package/src/plugin/tests.ts +545 -545
- package/src/plugin/text-editor.ts +581 -581
- package/src/plugin/text-editors.ts +157 -157
- package/src/plugin/theming.ts +73 -73
- package/src/plugin/timeline.ts +186 -186
- package/src/plugin/tree/tree-views.ts +682 -682
- package/src/plugin/type-converters.spec.ts +476 -476
- package/src/plugin/type-converters.ts +1768 -1748
- package/src/plugin/types-impl.spec.ts +85 -85
- package/src/plugin/types-impl.ts +4011 -4001
- package/src/plugin/uri-ext.ts +60 -0
- package/src/plugin/webview-views.ts +228 -228
- package/src/plugin/webviews.ts +468 -468
- package/src/plugin/window-state.ts +75 -75
- package/src/plugin/word-helper.ts +162 -162
- package/src/plugin/workspace.ts +505 -505
- package/src/plugin-ext-backend-electron-module.ts +24 -24
- package/src/plugin-ext-backend-module.ts +24 -24
- package/src/plugin-ext-frontend-electron-module.ts +19 -19
- package/src/plugin-ext-frontend-module.ts +19 -19
- package/lib/common/proxy-handler.d.ts +0 -73
- package/lib/common/proxy-handler.d.ts.map +0 -1
- package/lib/common/proxy-handler.js +0 -106
- package/lib/common/proxy-handler.js.map +0 -1
- package/src/common/proxy-handler.ts +0 -143
|
@@ -1,182 +1,202 @@
|
|
|
1
|
-
// *****************************************************************************
|
|
2
|
-
// Copyright (C) 2023 TypeFox and others.
|
|
3
|
-
//
|
|
4
|
-
// This program and the accompanying materials are made available under the
|
|
5
|
-
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
-
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
-
//
|
|
8
|
-
// This Source Code may also be made available under the following Secondary
|
|
9
|
-
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
-
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
-
// with the GNU Classpath Exception which is available at
|
|
12
|
-
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
-
//
|
|
14
|
-
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
-
// *****************************************************************************
|
|
16
|
-
|
|
17
|
-
import { DisposableCollection, Event } from '@theia/core';
|
|
18
|
-
import { URI, UriComponents } from '@theia/core/lib/common/uri';
|
|
19
|
-
import { interfaces } from '@theia/core/shared/inversify';
|
|
20
|
-
import { NotebookModelResolverService } from '@theia/notebook/lib/browser';
|
|
21
|
-
import { NotebookModel } from '@theia/notebook/lib/browser/view-model/notebook-model';
|
|
22
|
-
import { NotebookCellsChangeType } from '@theia/notebook/lib/common';
|
|
23
|
-
import { NotebookMonacoTextModelService } from '@theia/notebook/lib/browser/service/notebook-monaco-text-model-service';
|
|
24
|
-
import { MAIN_RPC_CONTEXT, NotebookCellsChangedEventDto, NotebookDataDto, NotebookDocumentsExt, NotebookDocumentsMain } from '../../../common';
|
|
25
|
-
import { RPCProtocol } from '../../../common/rpc-protocol';
|
|
26
|
-
import { NotebookDto } from './notebook-dto';
|
|
27
|
-
import { MonacoEditorModel } from '@theia/monaco/lib/browser/monaco-editor-model';
|
|
28
|
-
import { NotebookOpenHandler } from '@theia/notebook/lib/browser/notebook-open-handler';
|
|
29
|
-
|
|
30
|
-
export class NotebookDocumentsMainImpl implements NotebookDocumentsMain {
|
|
31
|
-
|
|
32
|
-
protected readonly disposables = new DisposableCollection();
|
|
33
|
-
|
|
34
|
-
protected readonly proxy: NotebookDocumentsExt;
|
|
35
|
-
protected readonly documentEventListenersMapping = new Map<string, DisposableCollection>();
|
|
36
|
-
|
|
37
|
-
protected readonly notebookModelResolverService: NotebookModelResolverService;
|
|
38
|
-
|
|
39
|
-
protected readonly notebookMonacoTextModelService: NotebookMonacoTextModelService;
|
|
40
|
-
protected readonly notebookOpenHandler: NotebookOpenHandler;
|
|
41
|
-
|
|
42
|
-
constructor(
|
|
43
|
-
rpc: RPCProtocol,
|
|
44
|
-
container: interfaces.Container
|
|
45
|
-
) {
|
|
46
|
-
this.proxy = rpc.getProxy(MAIN_RPC_CONTEXT.NOTEBOOK_DOCUMENTS_EXT);
|
|
47
|
-
this.notebookModelResolverService = container.get(NotebookModelResolverService);
|
|
48
|
-
this.notebookOpenHandler = container.get(NotebookOpenHandler);
|
|
49
|
-
|
|
50
|
-
// forward dirty and save events
|
|
51
|
-
this.disposables.push(this.notebookModelResolverService.onDidChangeDirty(model => this.proxy.$acceptDirtyStateChanged(model.uri.toComponents(), model.isDirty())));
|
|
52
|
-
this.disposables.push(this.notebookModelResolverService.onDidSaveNotebook(e => this.proxy.$acceptModelSaved(e)));
|
|
53
|
-
|
|
54
|
-
this.notebookMonacoTextModelService = container.get(NotebookMonacoTextModelService) as NotebookMonacoTextModelService;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
get onDidAddNotebookCellModel(): Event<MonacoEditorModel> {
|
|
58
|
-
return this.notebookMonacoTextModelService.onDidCreateNotebookCellModel;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
dispose(): void {
|
|
62
|
-
this.disposables.dispose();
|
|
63
|
-
// this.modelReferenceCollection.dispose();
|
|
64
|
-
this.documentEventListenersMapping.forEach(value => value.dispose());
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
handleNotebooksAdded(notebooks: readonly NotebookModel[]): void {
|
|
68
|
-
|
|
69
|
-
for (const notebook of notebooks) {
|
|
70
|
-
const listener = notebook.onDidChangeContent(events => {
|
|
71
|
-
|
|
72
|
-
const eventDto: NotebookCellsChangedEventDto = {
|
|
73
|
-
versionId: 1, // TODO implement version ID support
|
|
74
|
-
rawEvents: []
|
|
75
|
-
};
|
|
76
|
-
|
|
77
|
-
for (const e of events) {
|
|
78
|
-
|
|
79
|
-
switch (e.kind) {
|
|
80
|
-
case NotebookCellsChangeType.ModelChange:
|
|
81
|
-
eventDto.rawEvents.push({
|
|
82
|
-
kind: e.kind,
|
|
83
|
-
changes: e.changes.map(diff =>
|
|
84
|
-
({ ...diff, newItems: diff.newItems.map(NotebookDto.toNotebookCellDto) }))
|
|
85
|
-
});
|
|
86
|
-
break;
|
|
87
|
-
case NotebookCellsChangeType.Move:
|
|
88
|
-
eventDto.rawEvents.push({
|
|
89
|
-
kind: e.kind,
|
|
90
|
-
index: e.index,
|
|
91
|
-
length: e.length,
|
|
92
|
-
newIdx: e.newIdx,
|
|
93
|
-
});
|
|
94
|
-
break;
|
|
95
|
-
case NotebookCellsChangeType.Output:
|
|
96
|
-
eventDto.rawEvents.push({
|
|
97
|
-
kind: e.kind,
|
|
98
|
-
index: e.index,
|
|
99
|
-
outputs: e.outputs.map(NotebookDto.toNotebookOutputDto)
|
|
100
|
-
});
|
|
101
|
-
break;
|
|
102
|
-
case NotebookCellsChangeType.OutputItem:
|
|
103
|
-
eventDto.rawEvents.push({
|
|
104
|
-
kind: e.kind,
|
|
105
|
-
index: e.index,
|
|
106
|
-
outputId: e.outputId,
|
|
107
|
-
outputItems: e.outputItems.map(NotebookDto.toNotebookOutputItemDto),
|
|
108
|
-
append: e.append
|
|
109
|
-
});
|
|
110
|
-
break;
|
|
111
|
-
case NotebookCellsChangeType.ChangeCellLanguage:
|
|
112
|
-
case NotebookCellsChangeType.ChangeCellContent:
|
|
113
|
-
case NotebookCellsChangeType.ChangeCellMetadata:
|
|
114
|
-
case NotebookCellsChangeType.ChangeCellInternalMetadata:
|
|
115
|
-
eventDto.rawEvents.push(e);
|
|
116
|
-
break;
|
|
117
|
-
case NotebookCellsChangeType.ChangeDocumentMetadata:
|
|
118
|
-
eventDto.rawEvents.push({
|
|
119
|
-
kind: e.kind,
|
|
120
|
-
metadata: e.metadata
|
|
121
|
-
});
|
|
122
|
-
break;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
const hasDocumentMetadataChangeEvent = events.find(e => e.kind === NotebookCellsChangeType.ChangeDocumentMetadata);
|
|
127
|
-
|
|
128
|
-
// using the model resolver service to know if the model is dirty or not.
|
|
129
|
-
// assuming this is the first listener it can mean that at first the model
|
|
130
|
-
// is marked as dirty and that another event is fired
|
|
131
|
-
this.proxy.$acceptModelChanged(
|
|
132
|
-
notebook.uri.toComponents(),
|
|
133
|
-
eventDto,
|
|
134
|
-
notebook.isDirty(),
|
|
135
|
-
hasDocumentMetadataChangeEvent ? notebook.metadata : undefined
|
|
136
|
-
);
|
|
137
|
-
});
|
|
138
|
-
|
|
139
|
-
this.documentEventListenersMapping.set(notebook.uri.toString(), new DisposableCollection(listener));
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
handleNotebooksRemoved(uris: UriComponents[]): void {
|
|
144
|
-
for (const uri of uris) {
|
|
145
|
-
this.documentEventListenersMapping.get(uri.toString())?.dispose();
|
|
146
|
-
this.documentEventListenersMapping.delete(uri.toString());
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
async $tryCreateNotebook(options: { viewType: string; content?: NotebookDataDto }): Promise<UriComponents> {
|
|
151
|
-
const ref = await this.notebookModelResolverService.resolveUntitledResource({ untitledResource: undefined }, options.viewType);
|
|
152
|
-
|
|
153
|
-
// untitled notebooks are disposed when they get saved. we should not hold a reference
|
|
154
|
-
// to such a disposed notebook and therefore dispose the reference as well
|
|
155
|
-
// ref.onWillDispose(() => {
|
|
156
|
-
// ref.dispose();
|
|
157
|
-
// });
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2023 TypeFox and others.
|
|
3
|
+
//
|
|
4
|
+
// This program and the accompanying materials are made available under the
|
|
5
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
//
|
|
8
|
+
// This Source Code may also be made available under the following Secondary
|
|
9
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
// with the GNU Classpath Exception which is available at
|
|
12
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
//
|
|
14
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
+
// *****************************************************************************
|
|
16
|
+
|
|
17
|
+
import { DisposableCollection, Event } from '@theia/core';
|
|
18
|
+
import { URI, UriComponents } from '@theia/core/lib/common/uri';
|
|
19
|
+
import { interfaces } from '@theia/core/shared/inversify';
|
|
20
|
+
import { NotebookModelResolverService } from '@theia/notebook/lib/browser';
|
|
21
|
+
import { NotebookModel } from '@theia/notebook/lib/browser/view-model/notebook-model';
|
|
22
|
+
import { NotebookCellsChangeType } from '@theia/notebook/lib/common';
|
|
23
|
+
import { NotebookMonacoTextModelService } from '@theia/notebook/lib/browser/service/notebook-monaco-text-model-service';
|
|
24
|
+
import { MAIN_RPC_CONTEXT, NotebookCellsChangedEventDto, NotebookDataDto, NotebookDocumentsExt, NotebookDocumentsMain, NotebookRawContentEventDto } from '../../../common';
|
|
25
|
+
import { RPCProtocol } from '../../../common/rpc-protocol';
|
|
26
|
+
import { NotebookDto } from './notebook-dto';
|
|
27
|
+
import { MonacoEditorModel } from '@theia/monaco/lib/browser/monaco-editor-model';
|
|
28
|
+
import { NotebookOpenHandler } from '@theia/notebook/lib/browser/notebook-open-handler';
|
|
29
|
+
|
|
30
|
+
export class NotebookDocumentsMainImpl implements NotebookDocumentsMain {
|
|
31
|
+
|
|
32
|
+
protected readonly disposables = new DisposableCollection();
|
|
33
|
+
|
|
34
|
+
protected readonly proxy: NotebookDocumentsExt;
|
|
35
|
+
protected readonly documentEventListenersMapping = new Map<string, DisposableCollection>();
|
|
36
|
+
|
|
37
|
+
protected readonly notebookModelResolverService: NotebookModelResolverService;
|
|
38
|
+
|
|
39
|
+
protected readonly notebookMonacoTextModelService: NotebookMonacoTextModelService;
|
|
40
|
+
protected readonly notebookOpenHandler: NotebookOpenHandler;
|
|
41
|
+
|
|
42
|
+
constructor(
|
|
43
|
+
rpc: RPCProtocol,
|
|
44
|
+
container: interfaces.Container
|
|
45
|
+
) {
|
|
46
|
+
this.proxy = rpc.getProxy(MAIN_RPC_CONTEXT.NOTEBOOK_DOCUMENTS_EXT);
|
|
47
|
+
this.notebookModelResolverService = container.get(NotebookModelResolverService);
|
|
48
|
+
this.notebookOpenHandler = container.get(NotebookOpenHandler);
|
|
49
|
+
|
|
50
|
+
// forward dirty and save events
|
|
51
|
+
this.disposables.push(this.notebookModelResolverService.onDidChangeDirty(model => this.proxy.$acceptDirtyStateChanged(model.uri.toComponents(), model.isDirty())));
|
|
52
|
+
this.disposables.push(this.notebookModelResolverService.onDidSaveNotebook(e => this.proxy.$acceptModelSaved(e)));
|
|
53
|
+
|
|
54
|
+
this.notebookMonacoTextModelService = container.get(NotebookMonacoTextModelService) as NotebookMonacoTextModelService;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
get onDidAddNotebookCellModel(): Event<MonacoEditorModel> {
|
|
58
|
+
return this.notebookMonacoTextModelService.onDidCreateNotebookCellModel;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
dispose(): void {
|
|
62
|
+
this.disposables.dispose();
|
|
63
|
+
// this.modelReferenceCollection.dispose();
|
|
64
|
+
this.documentEventListenersMapping.forEach(value => value.dispose());
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
handleNotebooksAdded(notebooks: readonly NotebookModel[]): void {
|
|
68
|
+
|
|
69
|
+
for (const notebook of notebooks) {
|
|
70
|
+
const listener = notebook.onDidChangeContent(events => {
|
|
71
|
+
|
|
72
|
+
const eventDto: NotebookCellsChangedEventDto = {
|
|
73
|
+
versionId: 1, // TODO implement version ID support
|
|
74
|
+
rawEvents: []
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
for (const e of events) {
|
|
78
|
+
|
|
79
|
+
switch (e.kind) {
|
|
80
|
+
case NotebookCellsChangeType.ModelChange:
|
|
81
|
+
eventDto.rawEvents.push({
|
|
82
|
+
kind: e.kind,
|
|
83
|
+
changes: e.changes.map(diff =>
|
|
84
|
+
({ ...diff, newItems: diff.newItems.map(NotebookDto.toNotebookCellDto) }))
|
|
85
|
+
});
|
|
86
|
+
break;
|
|
87
|
+
case NotebookCellsChangeType.Move:
|
|
88
|
+
eventDto.rawEvents.push({
|
|
89
|
+
kind: e.kind,
|
|
90
|
+
index: e.index,
|
|
91
|
+
length: e.length,
|
|
92
|
+
newIdx: e.newIdx,
|
|
93
|
+
});
|
|
94
|
+
break;
|
|
95
|
+
case NotebookCellsChangeType.Output:
|
|
96
|
+
eventDto.rawEvents.push({
|
|
97
|
+
kind: e.kind,
|
|
98
|
+
index: e.index,
|
|
99
|
+
outputs: e.outputs.map(NotebookDto.toNotebookOutputDto)
|
|
100
|
+
});
|
|
101
|
+
break;
|
|
102
|
+
case NotebookCellsChangeType.OutputItem:
|
|
103
|
+
eventDto.rawEvents.push({
|
|
104
|
+
kind: e.kind,
|
|
105
|
+
index: e.index,
|
|
106
|
+
outputId: e.outputId,
|
|
107
|
+
outputItems: e.outputItems.map(NotebookDto.toNotebookOutputItemDto),
|
|
108
|
+
append: e.append
|
|
109
|
+
});
|
|
110
|
+
break;
|
|
111
|
+
case NotebookCellsChangeType.ChangeCellLanguage:
|
|
112
|
+
case NotebookCellsChangeType.ChangeCellContent:
|
|
113
|
+
case NotebookCellsChangeType.ChangeCellMetadata:
|
|
114
|
+
case NotebookCellsChangeType.ChangeCellInternalMetadata:
|
|
115
|
+
eventDto.rawEvents.push(e);
|
|
116
|
+
break;
|
|
117
|
+
case NotebookCellsChangeType.ChangeDocumentMetadata:
|
|
118
|
+
eventDto.rawEvents.push({
|
|
119
|
+
kind: e.kind,
|
|
120
|
+
metadata: e.metadata
|
|
121
|
+
});
|
|
122
|
+
break;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
const hasDocumentMetadataChangeEvent = events.find(e => e.kind === NotebookCellsChangeType.ChangeDocumentMetadata);
|
|
127
|
+
|
|
128
|
+
// using the model resolver service to know if the model is dirty or not.
|
|
129
|
+
// assuming this is the first listener it can mean that at first the model
|
|
130
|
+
// is marked as dirty and that another event is fired
|
|
131
|
+
this.proxy.$acceptModelChanged(
|
|
132
|
+
notebook.uri.toComponents(),
|
|
133
|
+
eventDto,
|
|
134
|
+
notebook.isDirty(),
|
|
135
|
+
hasDocumentMetadataChangeEvent ? notebook.metadata : undefined
|
|
136
|
+
);
|
|
137
|
+
});
|
|
138
|
+
|
|
139
|
+
this.documentEventListenersMapping.set(notebook.uri.toString(), new DisposableCollection(listener));
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
handleNotebooksRemoved(uris: UriComponents[]): void {
|
|
144
|
+
for (const uri of uris) {
|
|
145
|
+
this.documentEventListenersMapping.get(uri.toString())?.dispose();
|
|
146
|
+
this.documentEventListenersMapping.delete(uri.toString());
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
async $tryCreateNotebook(options: { viewType: string; content?: NotebookDataDto }): Promise<UriComponents> {
|
|
151
|
+
const ref = await this.notebookModelResolverService.resolveUntitledResource({ untitledResource: undefined }, options.viewType);
|
|
152
|
+
|
|
153
|
+
// untitled notebooks are disposed when they get saved. we should not hold a reference
|
|
154
|
+
// to such a disposed notebook and therefore dispose the reference as well
|
|
155
|
+
// ref.onWillDispose(() => {
|
|
156
|
+
// ref.dispose();
|
|
157
|
+
// });
|
|
158
|
+
|
|
159
|
+
const uriComponents = ref.uri.toComponents();
|
|
160
|
+
// untitled notebooks are dirty by default
|
|
161
|
+
this.proxy.$acceptDirtyStateChanged(uriComponents, true);
|
|
162
|
+
|
|
163
|
+
// apply content changes...
|
|
164
|
+
if (options.content) {
|
|
165
|
+
const data = NotebookDto.fromNotebookDataDto(options.content);
|
|
166
|
+
ref.setData(data);
|
|
167
|
+
|
|
168
|
+
// Create and send a change events
|
|
169
|
+
const rawEvents: NotebookRawContentEventDto[] = [];
|
|
170
|
+
if (options.content.cells && options.content.cells.length > 0) {
|
|
171
|
+
rawEvents.push({
|
|
172
|
+
kind: NotebookCellsChangeType.ModelChange,
|
|
173
|
+
changes: [{ start: 0, deleteCount: 0, newItems: ref.cells.map(NotebookDto.toNotebookCellDto) }]
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
if (options.content.metadata) {
|
|
177
|
+
rawEvents.push({
|
|
178
|
+
kind: NotebookCellsChangeType.ChangeDocumentMetadata,
|
|
179
|
+
metadata: options.content.metadata
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
if (rawEvents.length > 0) {
|
|
183
|
+
this.proxy.$acceptModelChanged(uriComponents, { versionId: 1, rawEvents }, true);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
return uriComponents;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
async $tryOpenNotebook(uriComponents: UriComponents): Promise<UriComponents> {
|
|
190
|
+
const uri = URI.fromComponents(uriComponents);
|
|
191
|
+
await this.notebookModelResolverService.resolve(uri);
|
|
192
|
+
return uri.toComponents();
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
async $trySaveNotebook(uriComponents: UriComponents): Promise<boolean> {
|
|
196
|
+
const uri = URI.fromComponents(uriComponents);
|
|
197
|
+
const ref = await this.notebookModelResolverService.resolve(uri);
|
|
198
|
+
await ref.save();
|
|
199
|
+
ref.dispose();
|
|
200
|
+
return true;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
@@ -1,131 +1,131 @@
|
|
|
1
|
-
// *****************************************************************************
|
|
2
|
-
// Copyright (C) 2023 TypeFox and others.
|
|
3
|
-
//
|
|
4
|
-
// This program and the accompanying materials are made available under the
|
|
5
|
-
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
-
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
-
//
|
|
8
|
-
// This Source Code may also be made available under the following Secondary
|
|
9
|
-
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
-
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
-
// with the GNU Classpath Exception which is available at
|
|
12
|
-
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
-
//
|
|
14
|
-
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
-
// *****************************************************************************
|
|
16
|
-
|
|
17
|
-
import { OS } from '@theia/core';
|
|
18
|
-
import * as notebookCommon from '@theia/notebook/lib/common';
|
|
19
|
-
import { NotebookCellModel } from '@theia/notebook/lib/browser/view-model/notebook-cell-model';
|
|
20
|
-
import * as rpc from '../../../common';
|
|
21
|
-
import { CellExecutionUpdateType } from '@theia/notebook/lib/common';
|
|
22
|
-
import { CellExecuteUpdate, CellExecutionComplete } from '@theia/notebook/lib/browser';
|
|
23
|
-
|
|
24
|
-
export namespace NotebookDto {
|
|
25
|
-
|
|
26
|
-
export function toNotebookOutputItemDto(item: notebookCommon.CellOutputItem): rpc.NotebookOutputItemDto {
|
|
27
|
-
return {
|
|
28
|
-
mime: item.mime,
|
|
29
|
-
valueBytes: item.data
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export function toNotebookOutputDto(output: notebookCommon.CellOutput): rpc.NotebookOutputDto {
|
|
34
|
-
return {
|
|
35
|
-
outputId: output.outputId,
|
|
36
|
-
metadata: output.metadata,
|
|
37
|
-
items: output.outputs.map(toNotebookOutputItemDto)
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
export function toNotebookCellDataDto(cell: notebookCommon.CellData): rpc.NotebookCellDataDto {
|
|
42
|
-
return {
|
|
43
|
-
cellKind: cell.cellKind,
|
|
44
|
-
language: cell.language,
|
|
45
|
-
source: cell.source,
|
|
46
|
-
internalMetadata: cell.internalMetadata,
|
|
47
|
-
metadata: cell.metadata,
|
|
48
|
-
outputs: cell.outputs.map(toNotebookOutputDto)
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
export function toNotebookDataDto(data: notebookCommon.NotebookData): rpc.NotebookDataDto {
|
|
53
|
-
return {
|
|
54
|
-
metadata: data.metadata,
|
|
55
|
-
cells: data.cells.map(toNotebookCellDataDto)
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
export function fromNotebookOutputItemDto(item: rpc.NotebookOutputItemDto): notebookCommon.CellOutputItem {
|
|
60
|
-
return {
|
|
61
|
-
mime: item.mime,
|
|
62
|
-
data: item.valueBytes
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
export function fromNotebookOutputDto(output: rpc.NotebookOutputDto): notebookCommon.CellOutput {
|
|
67
|
-
return {
|
|
68
|
-
outputId: output.outputId,
|
|
69
|
-
metadata: output.metadata,
|
|
70
|
-
outputs: output.items.map(fromNotebookOutputItemDto)
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
export function fromNotebookCellDataDto(cell: rpc.NotebookCellDataDto): notebookCommon.CellData {
|
|
75
|
-
return {
|
|
76
|
-
cellKind: cell.cellKind,
|
|
77
|
-
language: cell.language,
|
|
78
|
-
source: cell.source,
|
|
79
|
-
outputs: cell.outputs.map(fromNotebookOutputDto),
|
|
80
|
-
metadata: cell.metadata,
|
|
81
|
-
internalMetadata: cell.internalMetadata
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
export function fromNotebookDataDto(data: rpc.NotebookDataDto): notebookCommon.NotebookData {
|
|
86
|
-
return {
|
|
87
|
-
metadata: data.metadata,
|
|
88
|
-
cells: data.cells.map(fromNotebookCellDataDto)
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
export function toNotebookCellDto(cell: NotebookCellModel): rpc.NotebookCellDto {
|
|
93
|
-
const eol = OS.backend.EOL;
|
|
94
|
-
return {
|
|
95
|
-
handle: cell.handle,
|
|
96
|
-
uri: cell.uri.toComponents(),
|
|
97
|
-
source: cell.text.split(/\r?\n/g),
|
|
98
|
-
eol,
|
|
99
|
-
language: cell.language,
|
|
100
|
-
cellKind: cell.cellKind,
|
|
101
|
-
outputs: cell.outputs.map(toNotebookOutputDto),
|
|
102
|
-
metadata: cell.metadata,
|
|
103
|
-
internalMetadata: cell.internalMetadata,
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
export function fromCellExecuteUpdateDto(data: rpc.CellExecuteUpdateDto): CellExecuteUpdate {
|
|
108
|
-
if (data.editType === CellExecutionUpdateType.Output) {
|
|
109
|
-
return {
|
|
110
|
-
editType: data.editType,
|
|
111
|
-
cellHandle: data.cellHandle,
|
|
112
|
-
append: data.append,
|
|
113
|
-
outputs: data.outputs.map(fromNotebookOutputDto)
|
|
114
|
-
};
|
|
115
|
-
} else if (data.editType === CellExecutionUpdateType.OutputItems) {
|
|
116
|
-
return {
|
|
117
|
-
editType: data.editType,
|
|
118
|
-
outputId: data.outputId,
|
|
119
|
-
append: data.append,
|
|
120
|
-
items: data.items.map(fromNotebookOutputItemDto)
|
|
121
|
-
};
|
|
122
|
-
} else {
|
|
123
|
-
return data;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
export function fromCellExecuteCompleteDto(data: rpc.CellExecutionCompleteDto): CellExecutionComplete {
|
|
128
|
-
return data;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
}
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2023 TypeFox and others.
|
|
3
|
+
//
|
|
4
|
+
// This program and the accompanying materials are made available under the
|
|
5
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
//
|
|
8
|
+
// This Source Code may also be made available under the following Secondary
|
|
9
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
// with the GNU Classpath Exception which is available at
|
|
12
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
//
|
|
14
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
+
// *****************************************************************************
|
|
16
|
+
|
|
17
|
+
import { OS } from '@theia/core';
|
|
18
|
+
import * as notebookCommon from '@theia/notebook/lib/common';
|
|
19
|
+
import { NotebookCellModel } from '@theia/notebook/lib/browser/view-model/notebook-cell-model';
|
|
20
|
+
import * as rpc from '../../../common';
|
|
21
|
+
import { CellExecutionUpdateType } from '@theia/notebook/lib/common';
|
|
22
|
+
import { CellExecuteUpdate, CellExecutionComplete } from '@theia/notebook/lib/browser';
|
|
23
|
+
|
|
24
|
+
export namespace NotebookDto {
|
|
25
|
+
|
|
26
|
+
export function toNotebookOutputItemDto(item: notebookCommon.CellOutputItem): rpc.NotebookOutputItemDto {
|
|
27
|
+
return {
|
|
28
|
+
mime: item.mime,
|
|
29
|
+
valueBytes: item.data
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export function toNotebookOutputDto(output: notebookCommon.CellOutput): rpc.NotebookOutputDto {
|
|
34
|
+
return {
|
|
35
|
+
outputId: output.outputId,
|
|
36
|
+
metadata: output.metadata,
|
|
37
|
+
items: output.outputs.map(toNotebookOutputItemDto)
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export function toNotebookCellDataDto(cell: notebookCommon.CellData): rpc.NotebookCellDataDto {
|
|
42
|
+
return {
|
|
43
|
+
cellKind: cell.cellKind,
|
|
44
|
+
language: cell.language,
|
|
45
|
+
source: cell.source,
|
|
46
|
+
internalMetadata: cell.internalMetadata,
|
|
47
|
+
metadata: cell.metadata,
|
|
48
|
+
outputs: cell.outputs.map(toNotebookOutputDto)
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export function toNotebookDataDto(data: notebookCommon.NotebookData): rpc.NotebookDataDto {
|
|
53
|
+
return {
|
|
54
|
+
metadata: data.metadata,
|
|
55
|
+
cells: data.cells.map(toNotebookCellDataDto)
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export function fromNotebookOutputItemDto(item: rpc.NotebookOutputItemDto): notebookCommon.CellOutputItem {
|
|
60
|
+
return {
|
|
61
|
+
mime: item.mime,
|
|
62
|
+
data: item.valueBytes
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export function fromNotebookOutputDto(output: rpc.NotebookOutputDto): notebookCommon.CellOutput {
|
|
67
|
+
return {
|
|
68
|
+
outputId: output.outputId,
|
|
69
|
+
metadata: output.metadata,
|
|
70
|
+
outputs: output.items.map(fromNotebookOutputItemDto)
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export function fromNotebookCellDataDto(cell: rpc.NotebookCellDataDto): notebookCommon.CellData {
|
|
75
|
+
return {
|
|
76
|
+
cellKind: cell.cellKind,
|
|
77
|
+
language: cell.language,
|
|
78
|
+
source: cell.source,
|
|
79
|
+
outputs: cell.outputs.map(fromNotebookOutputDto),
|
|
80
|
+
metadata: cell.metadata,
|
|
81
|
+
internalMetadata: cell.internalMetadata
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export function fromNotebookDataDto(data: rpc.NotebookDataDto): notebookCommon.NotebookData {
|
|
86
|
+
return {
|
|
87
|
+
metadata: data.metadata,
|
|
88
|
+
cells: data.cells.map(fromNotebookCellDataDto)
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
export function toNotebookCellDto(cell: NotebookCellModel): rpc.NotebookCellDto {
|
|
93
|
+
const eol = OS.backend.EOL;
|
|
94
|
+
return {
|
|
95
|
+
handle: cell.handle,
|
|
96
|
+
uri: cell.uri.toComponents(),
|
|
97
|
+
source: cell.text.split(/\r?\n/g),
|
|
98
|
+
eol,
|
|
99
|
+
language: cell.language,
|
|
100
|
+
cellKind: cell.cellKind,
|
|
101
|
+
outputs: cell.outputs.map(toNotebookOutputDto),
|
|
102
|
+
metadata: cell.metadata,
|
|
103
|
+
internalMetadata: cell.internalMetadata,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
export function fromCellExecuteUpdateDto(data: rpc.CellExecuteUpdateDto): CellExecuteUpdate {
|
|
108
|
+
if (data.editType === CellExecutionUpdateType.Output) {
|
|
109
|
+
return {
|
|
110
|
+
editType: data.editType,
|
|
111
|
+
cellHandle: data.cellHandle,
|
|
112
|
+
append: data.append,
|
|
113
|
+
outputs: data.outputs.map(fromNotebookOutputDto)
|
|
114
|
+
};
|
|
115
|
+
} else if (data.editType === CellExecutionUpdateType.OutputItems) {
|
|
116
|
+
return {
|
|
117
|
+
editType: data.editType,
|
|
118
|
+
outputId: data.outputId,
|
|
119
|
+
append: data.append,
|
|
120
|
+
items: data.items.map(fromNotebookOutputItemDto)
|
|
121
|
+
};
|
|
122
|
+
} else {
|
|
123
|
+
return data;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
export function fromCellExecuteCompleteDto(data: rpc.CellExecutionCompleteDto): CellExecutionComplete {
|
|
128
|
+
return data;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
}
|