@theia/plugin-ext 1.34.3 → 1.34.4
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/LICENSE +641 -641
- package/README.md +54 -54
- package/lib/common/arrays.d.ts +19 -19
- package/lib/common/arrays.js +46 -46
- package/lib/common/assert.d.ts +1 -1
- package/lib/common/assert.js +25 -25
- package/lib/common/cache.d.ts +11 -11
- package/lib/common/cache.js +47 -47
- package/lib/common/character-classifier.d.ts +18 -18
- package/lib/common/character-classifier.js +60 -60
- package/lib/common/collections.d.ts +4 -4
- package/lib/common/collections.js +39 -39
- package/lib/common/connection.d.ts +54 -54
- package/lib/common/connection.js +107 -107
- package/lib/common/disposable-util.d.ts +6 -6
- package/lib/common/disposable-util.js +37 -37
- package/lib/common/editor-options.d.ts +30 -30
- package/lib/common/editor-options.js +72 -72
- package/lib/common/env.d.ts +3 -3
- package/lib/common/env.js +17 -17
- package/lib/common/errors.d.ts +3 -3
- package/lib/common/errors.js +42 -42
- package/lib/common/id-generator.d.ts +6 -6
- package/lib/common/id-generator.js +28 -28
- package/lib/common/index.d.ts +3 -3
- package/lib/common/index.js +33 -33
- package/lib/common/link-computer.d.ts +41 -41
- package/lib/common/link-computer.js +275 -275
- package/lib/common/object-identifier.d.ts +8 -8
- package/lib/common/object-identifier.js +32 -32
- package/lib/common/objects.d.ts +1 -1
- package/lib/common/objects.js +46 -46
- package/lib/common/paths-util.d.ts +3 -3
- package/lib/common/paths-util.js +144 -144
- package/lib/common/plugin-api-rpc-model.d.ts +728 -728
- package/lib/common/plugin-api-rpc-model.js +173 -173
- package/lib/common/plugin-api-rpc.d.ts +1710 -1710
- package/lib/common/plugin-api-rpc.js +279 -279
- package/lib/common/plugin-ext-api-contribution.d.ts +58 -58
- package/lib/common/plugin-ext-api-contribution.js +5 -5
- package/lib/common/plugin-identifiers.d.ts +40 -40
- package/lib/common/plugin-identifiers.js +80 -80
- package/lib/common/plugin-protocol.d.ts +840 -840
- package/lib/common/plugin-protocol.js +67 -67
- package/lib/common/proxy-handler.d.ts +65 -65
- package/lib/common/proxy-handler.js +97 -97
- package/lib/common/reference-map.d.ts +7 -7
- package/lib/common/reference-map.js +39 -39
- package/lib/common/rpc-protocol.d.ts +65 -65
- package/lib/common/rpc-protocol.js +229 -229
- package/lib/common/semantic-tokens-dto.d.ts +18 -18
- package/lib/common/semantic-tokens-dto.js +162 -162
- package/lib/common/types.d.ts +37 -37
- package/lib/common/types.js +121 -121
- package/lib/common/uint.d.ts +7 -7
- package/lib/common/uint.js +33 -33
- package/lib/common/uri-components.d.ts +39 -39
- package/lib/common/uri-components.js +66 -66
- package/lib/hosted/browser/hosted-plugin-watcher.d.ts +15 -15
- package/lib/hosted/browser/hosted-plugin-watcher.js +59 -59
- package/lib/hosted/browser/hosted-plugin.d.ts +145 -145
- package/lib/hosted/browser/hosted-plugin.js +787 -787
- package/lib/hosted/browser/plugin-worker.d.ts +6 -6
- package/lib/hosted/browser/plugin-worker.js +57 -57
- package/lib/hosted/browser/worker/debug-stub.d.ts +3 -3
- package/lib/hosted/browser/worker/debug-stub.js +29 -29
- package/lib/hosted/browser/worker/plugin-manifest-loader.d.ts +2 -2
- package/lib/hosted/browser/worker/plugin-manifest-loader.js +107 -107
- package/lib/hosted/browser/worker/worker-env-ext.d.ts +14 -14
- package/lib/hosted/browser/worker/worker-env-ext.js +38 -38
- package/lib/hosted/browser/worker/worker-main.d.ts +1 -1
- package/lib/hosted/browser/worker/worker-main.js +192 -192
- package/lib/hosted/node/hosted-plugin-cli-contribution.d.ts +16 -16
- package/lib/hosted/node/hosted-plugin-cli-contribution.js +76 -76
- package/lib/hosted/node/hosted-plugin-deployer-handler.d.ts +42 -42
- package/lib/hosted/node/hosted-plugin-deployer-handler.js +264 -264
- package/lib/hosted/node/hosted-plugin-localization-service.d.ts +34 -34
- package/lib/hosted/node/hosted-plugin-localization-service.js +239 -239
- package/lib/hosted/node/hosted-plugin-process.d.ts +47 -47
- package/lib/hosted/node/hosted-plugin-process.js +224 -224
- package/lib/hosted/node/hosted-plugin-protocol.d.ts +21 -21
- package/lib/hosted/node/hosted-plugin-protocol.js +36 -36
- package/lib/hosted/node/hosted-plugin.d.ts +36 -36
- package/lib/hosted/node/hosted-plugin.js +118 -118
- package/lib/hosted/node/metadata-scanner.d.ts +17 -17
- package/lib/hosted/node/metadata-scanner.js +82 -82
- package/lib/hosted/node/plugin-ext-hosted-backend-module.d.ts +3 -3
- package/lib/hosted/node/plugin-ext-hosted-backend-module.js +73 -73
- package/lib/hosted/node/plugin-host-proxy.d.ts +17 -17
- package/lib/hosted/node/plugin-host-proxy.js +69 -69
- package/lib/hosted/node/plugin-host-rpc.d.ts +21 -21
- package/lib/hosted/node/plugin-host-rpc.js +216 -216
- package/lib/hosted/node/plugin-host.d.ts +1 -1
- package/lib/hosted/node/plugin-host.js +101 -101
- package/lib/hosted/node/plugin-manifest-loader.d.ts +1 -1
- package/lib/hosted/node/plugin-manifest-loader.js +34 -34
- package/lib/hosted/node/plugin-reader.d.ts +25 -25
- package/lib/hosted/node/plugin-reader.js +141 -141
- package/lib/hosted/node/plugin-service.d.ts +39 -39
- package/lib/hosted/node/plugin-service.js +193 -193
- package/lib/hosted/node/scanners/backend-init-theia.d.ts +2 -2
- package/lib/hosted/node/scanners/backend-init-theia.js +60 -60
- package/lib/hosted/node/scanners/file-plugin-uri-factory.d.ts +10 -10
- package/lib/hosted/node/scanners/file-plugin-uri-factory.js +40 -40
- package/lib/hosted/node/scanners/grammars-reader.d.ts +5 -5
- package/lib/hosted/node/scanners/grammars-reader.js +63 -63
- package/lib/hosted/node/scanners/plugin-uri-factory.d.ts +16 -16
- package/lib/hosted/node/scanners/plugin-uri-factory.js +19 -19
- package/lib/hosted/node/scanners/scanner-theia.d.ts +56 -56
- package/lib/hosted/node/scanners/scanner-theia.js +842 -842
- package/lib/hosted/node-electron/plugin-ext-hosted-electron-backend-module.d.ts +2 -2
- package/lib/hosted/node-electron/plugin-ext-hosted-electron-backend-module.js +26 -26
- package/lib/hosted/node-electron/scanner-theia-electron.d.ts +5 -5
- package/lib/hosted/node-electron/scanner-theia-electron.js +40 -40
- package/lib/main/browser/authentication-main.d.ts +51 -51
- package/lib/main/browser/authentication-main.js +299 -299
- package/lib/main/browser/clipboard-main.d.ts +9 -9
- package/lib/main/browser/clipboard-main.js +32 -32
- package/lib/main/browser/command-registry-main.d.ts +23 -23
- package/lib/main/browser/command-registry-main.js +97 -97
- package/lib/main/browser/commands.d.ts +12 -12
- package/lib/main/browser/commands.js +102 -102
- package/lib/main/browser/comments/comment-glyph-widget.d.ts +12 -12
- package/lib/main/browser/comments/comment-glyph-widget.js +42 -42
- package/lib/main/browser/comments/comment-thread-widget.d.ts +153 -153
- package/lib/main/browser/comments/comment-thread-widget.js +466 -466
- package/lib/main/browser/comments/comments-context-key-service.d.ts +17 -17
- package/lib/main/browser/comments/comments-context-key-service.js +80 -80
- package/lib/main/browser/comments/comments-contribution.d.ts +31 -31
- package/lib/main/browser/comments/comments-contribution.js +264 -264
- package/lib/main/browser/comments/comments-decorator.d.ts +15 -15
- package/lib/main/browser/comments/comments-decorator.js +107 -107
- package/lib/main/browser/comments/comments-main.d.ts +106 -106
- package/lib/main/browser/comments/comments-main.js +341 -341
- package/lib/main/browser/comments/comments-service.d.ts +75 -75
- package/lib/main/browser/comments/comments-service.js +120 -120
- package/lib/main/browser/custom-editors/custom-editor-contribution.d.ts +6 -6
- package/lib/main/browser/custom-editors/custom-editor-contribution.js +50 -50
- package/lib/main/browser/custom-editors/custom-editor-opener.d.ts +21 -21
- package/lib/main/browser/custom-editors/custom-editor-opener.js +111 -111
- package/lib/main/browser/custom-editors/custom-editor-service.d.ts +16 -16
- package/lib/main/browser/custom-editors/custom-editor-service.js +102 -102
- package/lib/main/browser/custom-editors/custom-editor-widget-factory.d.ts +9 -9
- package/lib/main/browser/custom-editors/custom-editor-widget-factory.js +39 -39
- package/lib/main/browser/custom-editors/custom-editor-widget.d.ts +36 -36
- package/lib/main/browser/custom-editors/custom-editor-widget.js +115 -115
- package/lib/main/browser/custom-editors/custom-editors-main.d.ts +120 -120
- package/lib/main/browser/custom-editors/custom-editors-main.js +447 -447
- package/lib/main/browser/custom-editors/plugin-custom-editor-registry.d.ts +23 -23
- package/lib/main/browser/custom-editors/plugin-custom-editor-registry.js +142 -142
- package/lib/main/browser/custom-editors/undo-redo-service.d.ts +23 -23
- package/lib/main/browser/custom-editors/undo-redo-service.js +110 -110
- package/lib/main/browser/debug/debug-main.d.ts +48 -48
- package/lib/main/browser/debug/debug-main.js +295 -295
- package/lib/main/browser/debug/plugin-debug-adapter-contribution.d.ts +18 -18
- package/lib/main/browser/debug/plugin-debug-adapter-contribution.js +42 -42
- package/lib/main/browser/debug/plugin-debug-configuration-provider.d.ts +12 -12
- package/lib/main/browser/debug/plugin-debug-configuration-provider.js +38 -38
- package/lib/main/browser/debug/plugin-debug-service.d.ts +52 -52
- package/lib/main/browser/debug/plugin-debug-service.js +283 -283
- package/lib/main/browser/debug/plugin-debug-session-contribution-registry.d.ts +30 -30
- package/lib/main/browser/debug/plugin-debug-session-contribution-registry.js +75 -75
- package/lib/main/browser/debug/plugin-debug-session-factory.d.ts +55 -55
- package/lib/main/browser/debug/plugin-debug-session-factory.js +70 -70
- package/lib/main/browser/decorations/decorations-main.d.ts +15 -15
- package/lib/main/browser/decorations/decorations-main.js +119 -119
- package/lib/main/browser/dialogs/modal-notification.d.ts +18 -18
- package/lib/main/browser/dialogs/modal-notification.js +107 -107
- package/lib/main/browser/dialogs-main.d.ts +16 -16
- package/lib/main/browser/dialogs-main.js +162 -162
- package/lib/main/browser/documents-main.d.ts +50 -50
- package/lib/main/browser/documents-main.js +249 -249
- package/lib/main/browser/editors-and-documents-main.d.ts +32 -32
- package/lib/main/browser/editors-and-documents-main.js +301 -301
- package/lib/main/browser/env-main.d.ts +15 -15
- package/lib/main/browser/env-main.js +82 -82
- package/lib/main/browser/file-system-main-impl.d.ts +27 -27
- package/lib/main/browser/file-system-main-impl.js +199 -199
- package/lib/main/browser/hierarchy/hierarchy-types-converters.d.ts +24 -24
- package/lib/main/browser/hierarchy/hierarchy-types-converters.js +174 -174
- package/lib/main/browser/keybindings/keybindings-contribution-handler.d.ts +9 -9
- package/lib/main/browser/keybindings/keybindings-contribution-handler.js +77 -77
- package/lib/main/browser/label-service-main.d.ts +10 -10
- package/lib/main/browser/label-service-main.js +46 -46
- package/lib/main/browser/languages-main.d.ts +136 -136
- package/lib/main/browser/languages-main.js +1116 -1116
- package/lib/main/browser/main-context.d.ts +3 -3
- package/lib/main/browser/main-context.js +137 -137
- package/lib/main/browser/main-file-system-event-service.d.ts +7 -7
- package/lib/main/browser/main-file-system-event-service.js +65 -65
- package/lib/main/browser/menus/menus-contribution-handler.d.ts +29 -29
- package/lib/main/browser/menus/menus-contribution-handler.js +194 -194
- package/lib/main/browser/menus/plugin-menu-command-adapter.d.ts +43 -43
- package/lib/main/browser/menus/plugin-menu-command-adapter.js +279 -279
- package/lib/main/browser/menus/vscode-theia-menu-mappings.d.ts +17 -17
- package/lib/main/browser/menus/vscode-theia-menu-mappings.js +93 -93
- package/lib/main/browser/message-registry-main.d.ts +8 -8
- package/lib/main/browser/message-registry-main.js +52 -52
- package/lib/main/browser/notification-main.d.ts +18 -18
- package/lib/main/browser/notification-main.js +75 -75
- package/lib/main/browser/output-channel-registry-main.d.ts +10 -10
- package/lib/main/browser/output-channel-registry-main.js +60 -60
- package/lib/main/browser/plugin-authentication-service.d.ts +13 -13
- package/lib/main/browser/plugin-authentication-service.js +80 -80
- package/lib/main/browser/plugin-contribution-handler.d.ts +66 -66
- package/lib/main/browser/plugin-contribution-handler.js +580 -580
- package/lib/main/browser/plugin-ext-frontend-module.d.ts +7 -7
- package/lib/main/browser/plugin-ext-frontend-module.js +216 -216
- package/lib/main/browser/plugin-ext-widget.d.ts +28 -28
- package/lib/main/browser/plugin-ext-widget.js +129 -129
- package/lib/main/browser/plugin-frontend-contribution.d.ts +6 -6
- package/lib/main/browser/plugin-frontend-contribution.js +45 -45
- package/lib/main/browser/plugin-frontend-view-contribution.d.ts +6 -6
- package/lib/main/browser/plugin-frontend-view-contribution.js +50 -50
- package/lib/main/browser/plugin-icon-theme-service.d.ts +135 -135
- package/lib/main/browser/plugin-icon-theme-service.js +519 -519
- package/lib/main/browser/plugin-shared-style.d.ts +36 -36
- package/lib/main/browser/plugin-shared-style.js +126 -126
- package/lib/main/browser/plugin-storage.d.ts +13 -13
- package/lib/main/browser/plugin-storage.js +46 -46
- package/lib/main/browser/plugin-terminal-registry.d.ts +4 -4
- package/lib/main/browser/plugin-terminal-registry.js +34 -34
- package/lib/main/browser/preference-registry-main.d.ts +19 -19
- package/lib/main/browser/preference-registry-main.js +104 -104
- package/lib/main/browser/quick-open-main.d.ts +31 -31
- package/lib/main/browser/quick-open-main.js +274 -274
- package/lib/main/browser/scm-main.d.ts +100 -100
- package/lib/main/browser/scm-main.js +330 -330
- package/lib/main/browser/secrets-main.d.ts +12 -12
- package/lib/main/browser/secrets-main.js +67 -67
- package/lib/main/browser/selection-provider-command.d.ts +12 -12
- package/lib/main/browser/selection-provider-command.js +57 -57
- package/lib/main/browser/status-bar-message-registry-main.d.ts +16 -16
- package/lib/main/browser/status-bar-message-registry-main.js +55 -55
- package/lib/main/browser/tabs/tabs-main.d.ts +40 -40
- package/lib/main/browser/tabs/tabs-main.js +282 -282
- package/lib/main/browser/tasks-main.d.ts +33 -33
- package/lib/main/browser/tasks-main.js +205 -205
- package/lib/main/browser/terminal-main.d.ts +49 -49
- package/lib/main/browser/terminal-main.js +268 -268
- package/lib/main/browser/text-editor-main.d.ts +47 -47
- package/lib/main/browser/text-editor-main.js +374 -374
- package/lib/main/browser/text-editor-model-service.d.ts +28 -28
- package/lib/main/browser/text-editor-model-service.js +108 -108
- package/lib/main/browser/text-editors-main.d.ts +38 -38
- package/lib/main/browser/text-editors-main.js +158 -158
- package/lib/main/browser/theme-icon-override.d.ts +1 -1
- package/lib/main/browser/theme-icon-override.js +247 -247
- package/lib/main/browser/theming-main.d.ts +9 -9
- package/lib/main/browser/theming-main.js +35 -35
- package/lib/main/browser/timeline-main.d.ts +13 -13
- package/lib/main/browser/timeline-main.js +46 -46
- package/lib/main/browser/view/dnd-file-content-store.d.ts +7 -7
- package/lib/main/browser/view/dnd-file-content-store.js +51 -51
- package/lib/main/browser/view/plugin-tree-view-node-label-provider.d.ts +11 -11
- package/lib/main/browser/view/plugin-tree-view-node-label-provider.js +90 -90
- package/lib/main/browser/view/plugin-view-registry.d.ts +106 -106
- package/lib/main/browser/view/plugin-view-registry.js +836 -836
- package/lib/main/browser/view/plugin-view-widget.d.ts +50 -50
- package/lib/main/browser/view/plugin-view-widget.js +166 -166
- package/lib/main/browser/view/tree-view-decorator-service.d.ts +30 -30
- package/lib/main/browser/view/tree-view-decorator-service.js +68 -68
- package/lib/main/browser/view/tree-view-widget.d.ts +160 -160
- package/lib/main/browser/view/tree-view-widget.js +761 -761
- package/lib/main/browser/view/tree-views-main.d.ts +31 -31
- package/lib/main/browser/view/tree-views-main.js +163 -163
- package/lib/main/browser/view/view-context-key-service.d.ts +30 -30
- package/lib/main/browser/view/view-context-key-service.js +84 -84
- package/lib/main/browser/view-column-service.d.ts +23 -23
- package/lib/main/browser/view-column-service.js +129 -129
- package/lib/main/browser/webview/webview-environment.d.ts +15 -15
- package/lib/main/browser/webview/webview-environment.js +93 -93
- package/lib/main/browser/webview/webview-frontend-security-warnings.d.ts +11 -11
- package/lib/main/browser/webview/webview-frontend-security-warnings.js +73 -73
- package/lib/main/browser/webview/webview-preferences.d.ts +12 -12
- package/lib/main/browser/webview/webview-preferences.js +57 -57
- package/lib/main/browser/webview/webview-resource-cache.d.ts +17 -17
- package/lib/main/browser/webview/webview-resource-cache.js +90 -90
- package/lib/main/browser/webview/webview-theme-data-provider.d.ts +30 -30
- package/lib/main/browser/webview/webview-theme-data-provider.js +132 -132
- package/lib/main/browser/webview/webview-widget-factory.d.ts +8 -8
- package/lib/main/browser/webview/webview-widget-factory.js +38 -38
- package/lib/main/browser/webview/webview.d.ts +130 -130
- package/lib/main/browser/webview/webview.js +549 -549
- package/lib/main/browser/webview-views/webview-views-main.d.ts +30 -30
- package/lib/main/browser/webview-views/webview-views-main.js +126 -126
- package/lib/main/browser/webview-views/webview-views.d.ts +14 -14
- package/lib/main/browser/webview-views/webview-views.js +22 -22
- package/lib/main/browser/webviews-main.d.ts +39 -39
- package/lib/main/browser/webviews-main.js +231 -231
- package/lib/main/browser/window-state-main.d.ts +16 -16
- package/lib/main/browser/window-state-main.js +61 -61
- package/lib/main/browser/workspace-main.d.ts +69 -69
- package/lib/main/browser/workspace-main.js +316 -316
- package/lib/main/common/plugin-paths-protocol.d.ts +8 -8
- package/lib/main/common/plugin-paths-protocol.js +21 -21
- package/lib/main/common/plugin-theia-environment.d.ts +7 -7
- package/lib/main/common/plugin-theia-environment.js +47 -47
- package/lib/main/common/webview-protocol.d.ts +12 -12
- package/lib/main/common/webview-protocol.js +31 -31
- package/lib/main/electron-browser/plugin-ext-frontend-electron-module.d.ts +3 -3
- package/lib/main/electron-browser/plugin-ext-frontend-electron-module.js +25 -25
- package/lib/main/electron-browser/webview/electron-webview-widget-factory.d.ts +22 -22
- package/lib/main/electron-browser/webview/electron-webview-widget-factory.js +64 -64
- package/lib/main/node/handlers/plugin-theia-directory-handler.d.ts +10 -10
- package/lib/main/node/handlers/plugin-theia-directory-handler.js +113 -113
- package/lib/main/node/handlers/plugin-theia-file-handler.d.ts +9 -9
- package/lib/main/node/handlers/plugin-theia-file-handler.js +66 -66
- package/lib/main/node/paths/const.d.ts +5 -5
- package/lib/main/node/paths/const.js +24 -24
- package/lib/main/node/paths/plugin-paths-service.d.ts +23 -23
- package/lib/main/node/paths/plugin-paths-service.js +169 -169
- package/lib/main/node/plugin-cli-contribution.d.ts +21 -21
- package/lib/main/node/plugin-cli-contribution.js +84 -84
- package/lib/main/node/plugin-deployer-contribution.d.ts +8 -8
- package/lib/main/node/plugin-deployer-contribution.js +47 -47
- package/lib/main/node/plugin-deployer-directory-handler-context-impl.d.ts +7 -7
- package/lib/main/node/plugin-deployer-directory-handler-context-impl.js +44 -44
- package/lib/main/node/plugin-deployer-entry-impl.d.ts +34 -34
- package/lib/main/node/plugin-deployer-entry-impl.js +109 -109
- package/lib/main/node/plugin-deployer-file-handler-context-impl.d.ts +7 -7
- package/lib/main/node/plugin-deployer-file-handler-context-impl.js +31 -31
- package/lib/main/node/plugin-deployer-impl.d.ts +61 -61
- package/lib/main/node/plugin-deployer-impl.js +341 -341
- package/lib/main/node/plugin-deployer-proxy-entry-impl.d.ts +29 -29
- package/lib/main/node/plugin-deployer-proxy-entry-impl.js +98 -98
- package/lib/main/node/plugin-deployer-resolver-context-impl.d.ts +15 -15
- package/lib/main/node/plugin-deployer-resolver-context-impl.js +42 -42
- package/lib/main/node/plugin-ext-backend-module.d.ts +2 -2
- package/lib/main/node/plugin-ext-backend-module.js +70 -70
- package/lib/main/node/plugin-github-resolver.d.ts +21 -21
- package/lib/main/node/plugin-github-resolver.js +142 -142
- package/lib/main/node/plugin-http-resolver.d.ts +18 -18
- package/lib/main/node/plugin-http-resolver.js +91 -91
- package/lib/main/node/plugin-localization-backend-contribution.d.ts +9 -9
- package/lib/main/node/plugin-localization-backend-contribution.js +58 -58
- package/lib/main/node/plugin-server-handler.d.ts +16 -16
- package/lib/main/node/plugin-server-handler.js +74 -74
- package/lib/main/node/plugin-service.d.ts +19 -19
- package/lib/main/node/plugin-service.js +91 -91
- package/lib/main/node/plugin-theia-deployer-participant.d.ts +6 -6
- package/lib/main/node/plugin-theia-deployer-participant.js +43 -43
- package/lib/main/node/plugin-uninstallation-manager.d.ts +14 -14
- package/lib/main/node/plugin-uninstallation-manager.js +84 -84
- package/lib/main/node/plugins-key-value-storage.d.ts +15 -15
- package/lib/main/node/plugins-key-value-storage.js +128 -128
- package/lib/main/node/resolvers/local-directory-plugin-deployer-resolver.d.ts +7 -7
- package/lib/main/node/resolvers/local-directory-plugin-deployer-resolver.js +43 -43
- package/lib/main/node/resolvers/local-plugin-deployer-resolver.d.ts +8 -8
- package/lib/main/node/resolvers/local-plugin-deployer-resolver.js +59 -59
- package/lib/main/node/temp-dir-util.d.ts +1 -1
- package/lib/main/node/temp-dir-util.js +30 -30
- package/lib/main/node/webview-backend-security-warnings.d.ts +5 -5
- package/lib/main/node/webview-backend-security-warnings.js +51 -51
- package/lib/plugin/authentication-ext.d.ts +34 -34
- package/lib/plugin/authentication-ext.js +94 -94
- package/lib/plugin/clipboard-ext.d.ts +9 -9
- package/lib/plugin/clipboard-ext.js +31 -31
- package/lib/plugin/command-registry.d.ts +43 -43
- package/lib/plugin/command-registry.js +176 -176
- package/lib/plugin/comments.d.ts +89 -89
- package/lib/plugin/comments.js +368 -368
- package/lib/plugin/custom-editors.d.ts +47 -47
- package/lib/plugin/custom-editors.js +255 -255
- package/lib/plugin/debug/debug-ext.d.ts +86 -86
- package/lib/plugin/debug/debug-ext.js +391 -391
- package/lib/plugin/debug/plugin-debug-adapter-creator.d.ts +10 -10
- package/lib/plugin/debug/plugin-debug-adapter-creator.js +41 -41
- package/lib/plugin/debug/plugin-debug-adapter-session.d.ts +26 -26
- package/lib/plugin/debug/plugin-debug-adapter-session.js +96 -96
- package/lib/plugin/debug/plugin-debug-adapter-tracker.d.ts +12 -12
- package/lib/plugin/debug/plugin-debug-adapter-tracker.js +77 -77
- package/lib/plugin/decorations.d.ts +14 -14
- package/lib/plugin/decorations.js +112 -112
- package/lib/plugin/dialogs.d.ts +10 -10
- package/lib/plugin/dialogs.js +91 -91
- package/lib/plugin/document-data.d.ts +38 -38
- package/lib/plugin/document-data.js +309 -309
- package/lib/plugin/documents.d.ts +56 -56
- package/lib/plugin/documents.js +253 -253
- package/lib/plugin/editors-and-documents.d.ts +26 -26
- package/lib/plugin/editors-and-documents.js +137 -137
- package/lib/plugin/env.d.ts +42 -42
- package/lib/plugin/env.js +101 -101
- package/lib/plugin/file-system-event-service-ext-impl.d.ts +40 -40
- package/lib/plugin/file-system-event-service-ext-impl.js +203 -203
- package/lib/plugin/file-system-ext-impl.d.ts +50 -50
- package/lib/plugin/file-system-ext-impl.js +354 -354
- package/lib/plugin/known-commands.d.ts +5 -5
- package/lib/plugin/known-commands.js +386 -386
- package/lib/plugin/known-commands.spec.d.ts +1 -1
- package/lib/plugin/known-commands.spec.js +42 -42
- package/lib/plugin/label-service.d.ts +11 -11
- package/lib/plugin/label-service.js +35 -35
- package/lib/plugin/languages/call-hierarchy.d.ts +20 -20
- package/lib/plugin/languages/call-hierarchy.js +101 -101
- package/lib/plugin/languages/code-action.d.ts +24 -24
- package/lib/plugin/languages/code-action.js +137 -137
- package/lib/plugin/languages/color.d.ts +12 -12
- package/lib/plugin/languages/color.js +58 -58
- package/lib/plugin/languages/completion.d.ts +20 -20
- package/lib/plugin/languages/completion.js +161 -161
- package/lib/plugin/languages/declaration.d.ts +11 -11
- package/lib/plugin/languages/declaration.js +58 -58
- package/lib/plugin/languages/definition.d.ts +11 -11
- package/lib/plugin/languages/definition.js +58 -58
- package/lib/plugin/languages/diagnostics.d.ts +49 -49
- package/lib/plugin/languages/diagnostics.js +281 -281
- package/lib/plugin/languages/document-formatting.d.ts +10 -10
- package/lib/plugin/languages/document-formatting.js +40 -40
- package/lib/plugin/languages/document-highlight.d.ts +12 -12
- package/lib/plugin/languages/document-highlight.js +50 -50
- package/lib/plugin/languages/evaluatable-expression.d.ts +11 -11
- package/lib/plugin/languages/evaluatable-expression.js +40 -40
- package/lib/plugin/languages/folding.d.ts +10 -10
- package/lib/plugin/languages/folding.js +39 -39
- package/lib/plugin/languages/hover.d.ts +11 -11
- package/lib/plugin/languages/hover.js +48 -48
- package/lib/plugin/languages/implementation.d.ts +11 -11
- package/lib/plugin/languages/implementation.js +58 -58
- package/lib/plugin/languages/inlay-hints.d.ts +19 -19
- package/lib/plugin/languages/inlay-hints.js +127 -127
- package/lib/plugin/languages/inline-completion.d.ts +20 -20
- package/lib/plugin/languages/inline-completion.js +93 -93
- package/lib/plugin/languages/inline-values.d.ts +10 -10
- package/lib/plugin/languages/inline-values.js +44 -44
- package/lib/plugin/languages/lens.d.ts +19 -19
- package/lib/plugin/languages/lens.js +89 -89
- package/lib/plugin/languages/link-provider.d.ts +14 -14
- package/lib/plugin/languages/link-provider.js +71 -71
- package/lib/plugin/languages/linked-editing-range.d.ts +11 -11
- package/lib/plugin/languages/linked-editing-range.js +40 -40
- package/lib/plugin/languages/on-type-formatting.d.ts +11 -11
- package/lib/plugin/languages/on-type-formatting.js +41 -41
- package/lib/plugin/languages/outline.d.ts +20 -20
- package/lib/plugin/languages/outline.js +115 -115
- package/lib/plugin/languages/range-formatting.d.ts +10 -10
- package/lib/plugin/languages/range-formatting.js +41 -41
- package/lib/plugin/languages/reference.d.ts +11 -11
- package/lib/plugin/languages/reference.js +47 -47
- package/lib/plugin/languages/rename.d.ts +14 -14
- package/lib/plugin/languages/rename.js +114 -114
- package/lib/plugin/languages/selection-range.d.ts +11 -11
- package/lib/plugin/languages/selection-range.js +65 -65
- package/lib/plugin/languages/semantic-highlighting.d.ts +28 -28
- package/lib/plugin/languages/semantic-highlighting.js +175 -175
- package/lib/plugin/languages/signature.d.ts +15 -15
- package/lib/plugin/languages/signature.js +71 -71
- package/lib/plugin/languages/type-definition.d.ts +11 -11
- package/lib/plugin/languages/type-definition.js +58 -58
- package/lib/plugin/languages/type-hierarchy.d.ts +18 -18
- package/lib/plugin/languages/type-hierarchy.js +95 -95
- package/lib/plugin/languages/util.d.ts +4 -4
- package/lib/plugin/languages/util.js +27 -27
- package/lib/plugin/languages/workspace-symbol.d.ts +8 -8
- package/lib/plugin/languages/workspace-symbol.js +61 -61
- package/lib/plugin/languages-utils.d.ts +5 -5
- package/lib/plugin/languages-utils.js +52 -52
- package/lib/plugin/languages.d.ts +118 -118
- package/lib/plugin/languages.js +679 -679
- package/lib/plugin/markdown-string.d.ts +24 -24
- package/lib/plugin/markdown-string.js +124 -124
- package/lib/plugin/message-registry.d.ts +8 -8
- package/lib/plugin/message-registry.js +60 -60
- package/lib/plugin/node/debug/debug.spec.d.ts +1 -1
- package/lib/plugin/node/debug/debug.spec.js +67 -67
- package/lib/plugin/node/debug/plugin-node-debug-adapter-creator.d.ts +17 -17
- package/lib/plugin/node/debug/plugin-node-debug-adapter-creator.js +154 -154
- package/lib/plugin/node/env-node-ext.d.ts +21 -21
- package/lib/plugin/node/env-node-ext.js +63 -63
- package/lib/plugin/notification.d.ts +17 -17
- package/lib/plugin/notification.js +67 -67
- package/lib/plugin/output-channel/output-channel-item.d.ts +17 -17
- package/lib/plugin/output-channel/output-channel-item.js +51 -51
- package/lib/plugin/output-channel-registry.d.ts +8 -8
- package/lib/plugin/output-channel-registry.js +35 -35
- package/lib/plugin/path.d.ts +2 -2
- package/lib/plugin/path.js +59 -59
- package/lib/plugin/path.spec.d.ts +1 -1
- package/lib/plugin/path.spec.js +34 -34
- package/lib/plugin/plugin-context.d.ts +56 -56
- package/lib/plugin/plugin-context.js +1072 -1072
- package/lib/plugin/plugin-icon-path.d.ts +11 -11
- package/lib/plugin/plugin-icon-path.js +49 -49
- package/lib/plugin/plugin-manager.d.ts +80 -80
- package/lib/plugin/plugin-manager.js +366 -366
- package/lib/plugin/plugin-storage.d.ts +36 -36
- package/lib/plugin/plugin-storage.js +99 -99
- package/lib/plugin/preference-registry.d.ts +36 -36
- package/lib/plugin/preference-registry.js +295 -295
- package/lib/plugin/preference-registry.spec.d.ts +1 -1
- package/lib/plugin/preference-registry.spec.js +251 -251
- package/lib/plugin/prefix-sum-computer.d.ts +30 -30
- package/lib/plugin/prefix-sum-computer.js +172 -172
- package/lib/plugin/quick-open.d.ts +202 -202
- package/lib/plugin/quick-open.js +637 -637
- package/lib/plugin/scm.d.ts +53 -53
- package/lib/plugin/scm.js +713 -713
- package/lib/plugin/secrets-ext.d.ts +30 -30
- package/lib/plugin/secrets-ext.js +68 -68
- package/lib/plugin/status-bar/status-bar-item.d.ts +44 -44
- package/lib/plugin/status-bar/status-bar-item.js +122 -122
- package/lib/plugin/status-bar-message-registry.d.ts +20 -20
- package/lib/plugin/status-bar-message-registry.js +84 -84
- package/lib/plugin/stubs/tests-api.d.ts +22 -22
- package/lib/plugin/stubs/tests-api.js +66 -66
- package/lib/plugin/tabs.d.ts +22 -22
- package/lib/plugin/tabs.js +358 -358
- package/lib/plugin/tasks/task-provider.d.ts +8 -8
- package/lib/plugin/tasks/task-provider.js +56 -56
- package/lib/plugin/tasks/tasks.d.ts +45 -45
- package/lib/plugin/tasks/tasks.js +210 -210
- package/lib/plugin/terminal-ext.d.ts +101 -101
- package/lib/plugin/terminal-ext.js +422 -422
- package/lib/plugin/text-editor.d.ts +100 -100
- package/lib/plugin/text-editor.js +409 -409
- package/lib/plugin/text-editors.d.ts +37 -37
- package/lib/plugin/text-editors.js +126 -126
- package/lib/plugin/theming.d.ts +15 -15
- package/lib/plugin/theming.js +61 -61
- package/lib/plugin/timeline.d.ts +20 -20
- package/lib/plugin/timeline.js +152 -152
- package/lib/plugin/tree/tree-views.d.ts +93 -93
- package/lib/plugin/tree/tree-views.js +523 -523
- package/lib/plugin/type-converters.d.ts +131 -131
- package/lib/plugin/type-converters.js +1292 -1292
- package/lib/plugin/type-converters.spec.d.ts +1 -1
- package/lib/plugin/type-converters.spec.js +391 -391
- package/lib/plugin/types-impl.d.ts +1464 -1464
- package/lib/plugin/types-impl.js +2956 -2956
- package/lib/plugin/types-impl.spec.d.ts +1 -1
- package/lib/plugin/types-impl.spec.js +78 -78
- package/lib/plugin/webview-views.d.ts +52 -52
- package/lib/plugin/webview-views.js +144 -144
- package/lib/plugin/webviews.d.ts +95 -95
- package/lib/plugin/webviews.js +340 -340
- package/lib/plugin/window-state.d.ts +16 -16
- package/lib/plugin/window-state.js +55 -55
- package/lib/plugin/word-helper.d.ts +21 -21
- package/lib/plugin/word-helper.js +125 -125
- package/lib/plugin/workspace.d.ts +53 -53
- package/lib/plugin/workspace.js +371 -371
- package/lib/plugin-ext-backend-electron-module.d.ts +3 -3
- package/lib/plugin-ext-backend-electron-module.js +24 -24
- package/lib/plugin-ext-backend-module.d.ts +3 -3
- package/lib/plugin-ext-backend-module.js +24 -24
- package/lib/plugin-ext-frontend-electron-module.d.ts +2 -2
- package/lib/plugin-ext-frontend-electron-module.js +19 -19
- package/lib/plugin-ext-frontend-module.d.ts +2 -2
- package/lib/plugin-ext-frontend-module.js +19 -19
- package/package.json +27 -27
- package/src/common/arrays.ts +54 -54
- 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 +37 -37
- 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 +37 -37
- package/src/common/id-generator.ts +26 -26
- package/src/common/index.ts +24 -24
- 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 +864 -864
- package/src/common/plugin-api-rpc.ts +2202 -2202
- package/src/common/plugin-ext-api-contribution.ts +82 -82
- package/src/common/plugin-identifiers.ts +84 -84
- package/src/common/plugin-protocol.ts +987 -987
- package/src/common/proxy-handler.ts +126 -126
- package/src/common/reference-map.ts +38 -38
- package/src/common/rpc-protocol.ts +272 -272
- package/src/common/semantic-tokens-dto.ts +182 -182
- package/src/common/types.ts +129 -129
- package/src/common/uint.ts +37 -37
- package/src/common/uri-components.ts +85 -85
- package/src/hosted/browser/hosted-plugin-watcher.ts +54 -54
- package/src/hosted/browser/hosted-plugin.ts +830 -830
- package/src/hosted/browser/plugin-worker.ts +52 -52
- package/src/hosted/browser/worker/debug-stub.ts +28 -28
- package/src/hosted/browser/worker/plugin-manifest-loader.ts +114 -114
- package/src/hosted/browser/worker/worker-env-ext.ts +41 -41
- package/src/hosted/browser/worker/worker-main.ts +221 -221
- package/src/hosted/node/hosted-plugin-cli-contribution.ts +75 -75
- package/src/hosted/node/hosted-plugin-deployer-handler.ts +261 -261
- package/src/hosted/node/hosted-plugin-localization-service.ts +254 -254
- 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-ext-hosted-backend-module.ts +80 -80
- package/src/hosted/node/plugin-host-proxy.ts +80 -80
- package/src/hosted/node/plugin-host-rpc.ts +245 -245
- package/src/hosted/node/plugin-host.ts +108 -108
- package/src/hosted/node/plugin-manifest-loader.ts +31 -31
- package/src/hosted/node/plugin-reader.ts +131 -131
- package/src/hosted/node/plugin-service.ts +175 -175
- 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 +56 -56
- package/src/hosted/node/scanners/plugin-uri-factory.ts +33 -33
- package/src/hosted/node/scanners/scanner-theia.ts +938 -938
- 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 +369 -369
- package/src/main/browser/clipboard-main.ts +38 -38
- package/src/main/browser/command-registry-main.ts +110 -110
- 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 +691 -691
- package/src/main/browser/comments/comments-context-key-service.ts +68 -68
- package/src/main/browser/comments/comments-contribution.ts +264 -264
- package/src/main/browser/comments/comments-decorator.ts +110 -110
- package/src/main/browser/comments/comments-main.ts +465 -465
- package/src/main/browser/comments/comments-service.ts +205 -205
- package/src/main/browser/custom-editors/custom-editor-contribution.ts +38 -38
- package/src/main/browser/custom-editors/custom-editor-opener.tsx +105 -105
- package/src/main/browser/custom-editors/custom-editor-service.ts +108 -108
- package/src/main/browser/custom-editors/custom-editor-widget-factory.ts +44 -44
- package/src/main/browser/custom-editors/custom-editor-widget.ts +127 -127
- package/src/main/browser/custom-editors/custom-editors-main.ts +606 -606
- package/src/main/browser/custom-editors/plugin-custom-editor-registry.ts +142 -142
- package/src/main/browser/custom-editors/undo-redo-service.ts +120 -120
- package/src/main/browser/debug/debug-main.ts +373 -373
- 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 +338 -338
- package/src/main/browser/debug/plugin-debug-session-contribution-registry.ts +76 -76
- package/src/main/browser/debug/plugin-debug-session-factory.ts +105 -105
- package/src/main/browser/decorations/decorations-main.ts +146 -146
- package/src/main/browser/dialogs/modal-notification.ts +110 -110
- 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 +289 -289
- package/src/main/browser/editors-and-documents-main.ts +394 -394
- package/src/main/browser/env-main.ts +87 -87
- package/src/main/browser/file-system-main-impl.ts +263 -263
- 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 +1387 -1387
- package/src/main/browser/main-context.ts +187 -187
- package/src/main/browser/main-file-system-event-service.ts +76 -76
- package/src/main/browser/menus/menus-contribution-handler.ts +162 -162
- package/src/main/browser/menus/plugin-menu-command-adapter.ts +264 -264
- package/src/main/browser/menus/vscode-theia-menu-mappings.ts +91 -91
- package/src/main/browser/message-registry-main.ts +56 -56
- package/src/main/browser/notification-main.ts +86 -86
- 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 +609 -609
- package/src/main/browser/plugin-ext-frontend-module.ts +249 -249
- package/src/main/browser/plugin-ext-widget.tsx +132 -132
- package/src/main/browser/plugin-frontend-contribution.ts +35 -35
- package/src/main/browser/plugin-frontend-view-contribution.ts +38 -38
- package/src/main/browser/plugin-icon-theme-service.ts +585 -585
- package/src/main/browser/plugin-shared-style.ts +133 -133
- 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 +324 -324
- package/src/main/browser/scm-main.ts +453 -453
- package/src/main/browser/secrets-main.ts +82 -82
- package/src/main/browser/selection-provider-command.ts +46 -46
- 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 +85 -85
- package/src/main/browser/style/plugin-sidebar.css +73 -73
- package/src/main/browser/style/test.svg +13 -13
- package/src/main/browser/style/tree.css +52 -52
- package/src/main/browser/style/webview.css +53 -53
- package/src/main/browser/tabs/tabs-main.ts +323 -323
- package/src/main/browser/tasks-main.ts +268 -268
- package/src/main/browser/terminal-main.ts +301 -301
- package/src/main/browser/text-editor-main.ts +463 -463
- package/src/main/browser/text-editor-model-service.ts +102 -102
- package/src/main/browser/text-editors-main.ts +206 -206
- package/src/main/browser/theme-icon-override.ts +252 -252
- package/src/main/browser/theming-main.ts +42 -42
- package/src/main/browser/timeline-main.ts +80 -80
- 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 +885 -885
- package/src/main/browser/view/plugin-view-widget.ts +173 -173
- package/src/main/browser/view/tree-view-decorator-service.ts +51 -51
- package/src/main/browser/view/tree-view-widget.tsx +859 -859
- package/src/main/browser/view/tree-views-main.ts +191 -191
- package/src/main/browser/view/view-context-key-service.ts +77 -77
- package/src/main/browser/view-column-service.ts +125 -125
- 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 +632 -632
- package/src/main/browser/webview/pre/service-worker.js +295 -295
- package/src/main/browser/webview/webview-environment.ts +83 -83
- 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-theme-data-provider.ts +124 -124
- package/src/main/browser/webview/webview-widget-factory.ts +43 -43
- package/src/main/browser/webview/webview.ts +629 -629
- package/src/main/browser/webview-views/webview-views-main.ts +142 -142
- package/src/main/browser/webview-views/webview-views.ts +38 -38
- package/src/main/browser/webviews-main.ts +269 -269
- package/src/main/browser/window-state-main.ts +76 -76
- package/src/main/browser/workspace-main.ts +383 -383
- 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 +70 -70
- package/src/main/node/handlers/plugin-theia-directory-handler.ts +105 -105
- package/src/main/node/handlers/plugin-theia-file-handler.ts +54 -54
- package/src/main/node/paths/const.ts +21 -21
- package/src/main/node/paths/plugin-paths-service.ts +170 -170
- package/src/main/node/plugin-cli-contribution.ts +85 -85
- package/src/main/node/plugin-deployer-contribution.ts +34 -34
- package/src/main/node/plugin-deployer-directory-handler-context-impl.ts +45 -45
- package/src/main/node/plugin-deployer-entry-impl.ts +130 -130
- package/src/main/node/plugin-deployer-file-handler-context-impl.ts +33 -33
- package/src/main/node/plugin-deployer-impl.ts +367 -367
- 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 +93 -93
- package/src/main/node/plugin-github-resolver.ts +148 -148
- package/src/main/node/plugin-http-resolver.ts +91 -91
- package/src/main/node/plugin-localization-backend-contribution.ts +42 -42
- package/src/main/node/plugin-server-handler.ts +69 -69
- package/src/main/node/plugin-service.ts +82 -82
- 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.ts +117 -117
- 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 +27 -27
- 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 +125 -125
- package/src/plugin/clipboard-ext.ts +37 -37
- package/src/plugin/command-registry.ts +218 -218
- package/src/plugin/comments.ts +518 -518
- package/src/plugin/custom-editors.ts +336 -336
- package/src/plugin/debug/debug-ext.ts +487 -487
- 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 +170 -170
- package/src/plugin/env.ts +134 -134
- package/src/plugin/file-system-event-service-ext-impl.ts +256 -256
- package/src/plugin/file-system-ext-impl.ts +412 -412
- package/src/plugin/known-commands.spec.ts +50 -50
- package/src/plugin/known-commands.ts +412 -412
- 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 +179 -179
- 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-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 +79 -79
- 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 +56 -56
- package/src/plugin/languages.ts +969 -969
- package/src/plugin/markdown-string.ts +115 -115
- package/src/plugin/message-registry.ts +65 -65
- package/src/plugin/node/debug/debug.spec.ts +94 -94
- package/src/plugin/node/debug/plugin-node-debug-adapter-creator.ts +167 -167
- package/src/plugin/node/env-node-ext.ts +69 -69
- package/src/plugin/notification.ts +80 -80
- package/src/plugin/output-channel/output-channel-item.ts +73 -73
- package/src/plugin/output-channel-registry.ts +39 -39
- package/src/plugin/path.spec.ts +40 -40
- package/src/plugin/path.ts +68 -68
- package/src/plugin/plugin-context.ts +1387 -1387
- package/src/plugin/plugin-icon-path.ts +50 -50
- package/src/plugin/plugin-manager.ts +446 -446
- package/src/plugin/plugin-storage.ts +120 -120
- package/src/plugin/preference-registry.spec.ts +299 -299
- package/src/plugin/preference-registry.ts +337 -337
- package/src/plugin/prefix-sum-computer.ts +218 -218
- package/src/plugin/quick-open.ts +772 -772
- package/src/plugin/scm.ts +910 -910
- package/src/plugin/secrets-ext.ts +84 -84
- package/src/plugin/status-bar/status-bar-item.ts +193 -193
- package/src/plugin/status-bar-message-registry.ts +103 -103
- package/src/plugin/stubs/tests-api.ts +96 -96
- package/src/plugin/tabs.ts +426 -426
- package/src/plugin/tasks/task-provider.ts +60 -60
- package/src/plugin/tasks/tasks.ts +247 -247
- package/src/plugin/terminal-ext.ts +494 -494
- package/src/plugin/text-editor.ts +522 -522
- package/src/plugin/text-editors.ts +150 -150
- package/src/plugin/theming.ts +73 -73
- package/src/plugin/timeline.ts +186 -186
- package/src/plugin/tree/tree-views.ts +612 -612
- package/src/plugin/type-converters.spec.ts +476 -476
- package/src/plugin/type-converters.ts +1350 -1350
- package/src/plugin/types-impl.spec.ts +85 -85
- package/src/plugin/types-impl.ts +3407 -3407
- package/src/plugin/webview-views.ts +213 -213
- package/src/plugin/webviews.ts +433 -433
- package/src/plugin/window-state.ts +68 -68
- package/src/plugin/word-helper.ts +162 -162
- package/src/plugin/workspace.ts +448 -448
- 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/src/typings/index.d.ts +25 -25
|
@@ -1,987 +1,987 @@
|
|
|
1
|
-
// *****************************************************************************
|
|
2
|
-
// Copyright (C) 2018 Red Hat, Inc. and others.
|
|
3
|
-
//
|
|
4
|
-
// This program and the accompanying materials are made available under the
|
|
5
|
-
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
-
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
-
//
|
|
8
|
-
// This Source Code may also be made available under the following Secondary
|
|
9
|
-
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
-
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
-
// with the GNU Classpath Exception which is available at
|
|
12
|
-
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
-
//
|
|
14
|
-
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
-
// *****************************************************************************
|
|
16
|
-
import { JsonRpcServer } from '@theia/core/lib/common/messaging/proxy-factory';
|
|
17
|
-
import { RPCProtocol } from './rpc-protocol';
|
|
18
|
-
import { Disposable } from '@theia/core/lib/common/disposable';
|
|
19
|
-
import { LogPart, KeysToAnyValues, KeysToKeysToAnyValue } from './types';
|
|
20
|
-
import { CharacterPair, CommentRule, PluginAPIFactory, Plugin } from './plugin-api-rpc';
|
|
21
|
-
import { ExtPluginApi } from './plugin-ext-api-contribution';
|
|
22
|
-
import { IJSONSchema, IJSONSchemaSnippet } from '@theia/core/lib/common/json-schema';
|
|
23
|
-
import { RecursivePartial } from '@theia/core/lib/common/types';
|
|
24
|
-
import { PreferenceSchema, PreferenceSchemaProperties } from '@theia/core/lib/common/preferences/preference-schema';
|
|
25
|
-
import { ProblemMatcherContribution, ProblemPatternContribution, TaskDefinition } from '@theia/task/lib/common';
|
|
26
|
-
import { ColorDefinition } from '@theia/core/lib/common/color';
|
|
27
|
-
import { ResourceLabelFormatter } from '@theia/core/lib/common/label-protocol';
|
|
28
|
-
import { PluginIdentifiers } from './plugin-identifiers';
|
|
29
|
-
|
|
30
|
-
export { PluginIdentifiers };
|
|
31
|
-
export const hostedServicePath = '/services/hostedPlugin';
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Plugin engine (API) type, i.e. 'theiaPlugin', 'vscode', etc.
|
|
35
|
-
*/
|
|
36
|
-
export type PluginEngine = string;
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* This interface describes a package.json object.
|
|
40
|
-
*/
|
|
41
|
-
export interface PluginPackage {
|
|
42
|
-
name: string;
|
|
43
|
-
// The publisher is not guaranteed to be defined for unpublished plugins. https://github.com/microsoft/vscode-vsce/commit/a38657ece04c20e4fbde15d5ac1ed39ca51cb856
|
|
44
|
-
publisher: string | undefined;
|
|
45
|
-
version: string;
|
|
46
|
-
engines: {
|
|
47
|
-
[type in PluginEngine]: string;
|
|
48
|
-
};
|
|
49
|
-
theiaPlugin?: {
|
|
50
|
-
frontend?: string;
|
|
51
|
-
backend?: string;
|
|
52
|
-
};
|
|
53
|
-
main?: string;
|
|
54
|
-
browser?: string;
|
|
55
|
-
displayName: string;
|
|
56
|
-
description: string;
|
|
57
|
-
contributes?: PluginPackageContribution;
|
|
58
|
-
packagePath: string;
|
|
59
|
-
activationEvents?: string[];
|
|
60
|
-
extensionDependencies?: string[];
|
|
61
|
-
extensionPack?: string[];
|
|
62
|
-
icon?: string;
|
|
63
|
-
extensionKind?: Array<'ui' | 'workspace'>
|
|
64
|
-
}
|
|
65
|
-
export namespace PluginPackage {
|
|
66
|
-
export function toPluginUrl(pck: PluginPackage | PluginModel, relativePath: string): string {
|
|
67
|
-
return `hostedPlugin/${getPluginId(pck)}/${encodeURIComponent(relativePath)}`;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* This interface describes a package.json contribution section object.
|
|
73
|
-
*/
|
|
74
|
-
export interface PluginPackageContribution {
|
|
75
|
-
configuration?: RecursivePartial<PreferenceSchema> | RecursivePartial<PreferenceSchema>[];
|
|
76
|
-
configurationDefaults?: RecursivePartial<PreferenceSchemaProperties>;
|
|
77
|
-
languages?: PluginPackageLanguageContribution[];
|
|
78
|
-
grammars?: PluginPackageGrammarsContribution[];
|
|
79
|
-
customEditors?: PluginPackageCustomEditor[];
|
|
80
|
-
viewsContainers?: { [location: string]: PluginPackageViewContainer[] };
|
|
81
|
-
views?: { [location: string]: PluginPackageView[] };
|
|
82
|
-
viewsWelcome?: PluginPackageViewWelcome[];
|
|
83
|
-
commands?: PluginPackageCommand | PluginPackageCommand[];
|
|
84
|
-
menus?: { [location: string]: PluginPackageMenu[] };
|
|
85
|
-
submenus?: PluginPackageSubmenu[];
|
|
86
|
-
keybindings?: PluginPackageKeybinding | PluginPackageKeybinding[];
|
|
87
|
-
debuggers?: PluginPackageDebuggersContribution[];
|
|
88
|
-
snippets?: PluginPackageSnippetsContribution[];
|
|
89
|
-
themes?: PluginThemeContribution[];
|
|
90
|
-
iconThemes?: PluginIconThemeContribution[];
|
|
91
|
-
colors?: PluginColorContribution[];
|
|
92
|
-
taskDefinitions?: PluginTaskDefinitionContribution[];
|
|
93
|
-
problemMatchers?: PluginProblemMatcherContribution[];
|
|
94
|
-
problemPatterns?: PluginProblemPatternContribution[];
|
|
95
|
-
jsonValidation?: PluginJsonValidationContribution[];
|
|
96
|
-
resourceLabelFormatters?: ResourceLabelFormatter[];
|
|
97
|
-
localizations?: PluginPackageLocalization[];
|
|
98
|
-
terminal?: PluginPackageTerminal;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
export interface PluginPackageTerminalProfile {
|
|
102
|
-
title: string,
|
|
103
|
-
id: string,
|
|
104
|
-
icon?: string
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
export interface PluginPackageTerminal {
|
|
108
|
-
profiles: PluginPackageTerminalProfile[]
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
export interface PluginPackageLocalization {
|
|
112
|
-
languageId: string;
|
|
113
|
-
languageName?: string;
|
|
114
|
-
localizedLanguageName?: string;
|
|
115
|
-
translations: PluginPackageTranslation[];
|
|
116
|
-
minimalTranslations?: { [key: string]: string };
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
export interface PluginPackageTranslation {
|
|
120
|
-
id: string;
|
|
121
|
-
path: string;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
export interface PluginPackageCustomEditor {
|
|
125
|
-
viewType: string;
|
|
126
|
-
displayName: string;
|
|
127
|
-
selector?: CustomEditorSelector[];
|
|
128
|
-
priority?: CustomEditorPriority;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
export interface CustomEditorSelector {
|
|
132
|
-
readonly filenamePattern?: string;
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
export enum CustomEditorPriority {
|
|
136
|
-
default = 'default',
|
|
137
|
-
builtin = 'builtin',
|
|
138
|
-
option = 'option',
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
export interface PluginPackageViewContainer {
|
|
142
|
-
id: string;
|
|
143
|
-
title: string;
|
|
144
|
-
icon: string;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
export enum PluginViewType {
|
|
148
|
-
Tree = 'tree',
|
|
149
|
-
Webview = 'webview'
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
export interface PluginPackageView {
|
|
153
|
-
id: string;
|
|
154
|
-
name: string;
|
|
155
|
-
when?: string;
|
|
156
|
-
type?: string;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
export interface PluginPackageViewWelcome {
|
|
160
|
-
view: string;
|
|
161
|
-
contents: string;
|
|
162
|
-
when?: string;
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
export interface PluginPackageCommand {
|
|
166
|
-
command: string;
|
|
167
|
-
title: string;
|
|
168
|
-
original?: string;
|
|
169
|
-
category?: string;
|
|
170
|
-
icon?: string | { light: string; dark: string; };
|
|
171
|
-
enablement?: string;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
export interface PluginPackageMenu {
|
|
175
|
-
command?: string;
|
|
176
|
-
submenu?: string;
|
|
177
|
-
alt?: string;
|
|
178
|
-
group?: string;
|
|
179
|
-
when?: string;
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
export interface PluginPackageSubmenu {
|
|
183
|
-
id: string;
|
|
184
|
-
label: string;
|
|
185
|
-
icon: IconUrl;
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
export interface PluginPackageKeybinding {
|
|
189
|
-
key?: string;
|
|
190
|
-
command: string;
|
|
191
|
-
when?: string;
|
|
192
|
-
mac?: string;
|
|
193
|
-
linux?: string;
|
|
194
|
-
win?: string;
|
|
195
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
196
|
-
args?: any;
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
export interface PluginPackageGrammarsContribution {
|
|
200
|
-
language?: string;
|
|
201
|
-
scopeName: string;
|
|
202
|
-
path: string;
|
|
203
|
-
embeddedLanguages?: ScopeMap;
|
|
204
|
-
tokenTypes?: ScopeMap;
|
|
205
|
-
injectTo?: string[];
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
export interface ScopeMap {
|
|
209
|
-
[scopeName: string]: string;
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
export interface PluginPackageSnippetsContribution {
|
|
213
|
-
language?: string;
|
|
214
|
-
path?: string;
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
export interface PluginColorContribution {
|
|
218
|
-
id?: string;
|
|
219
|
-
description?: string;
|
|
220
|
-
defaults?: { light?: string, dark?: string, highContrast?: string };
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
export type PluginUiTheme = 'vs' | 'vs-dark' | 'hc-black';
|
|
224
|
-
|
|
225
|
-
export interface PluginThemeContribution {
|
|
226
|
-
id?: string;
|
|
227
|
-
label?: string;
|
|
228
|
-
description?: string;
|
|
229
|
-
path?: string;
|
|
230
|
-
uiTheme?: PluginUiTheme;
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
export interface PluginIconThemeContribution {
|
|
234
|
-
id?: string;
|
|
235
|
-
label?: string;
|
|
236
|
-
description?: string;
|
|
237
|
-
path?: string;
|
|
238
|
-
uiTheme?: PluginUiTheme;
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
export interface PlatformSpecificAdapterContribution {
|
|
242
|
-
program?: string;
|
|
243
|
-
args?: string[];
|
|
244
|
-
runtime?: string;
|
|
245
|
-
runtimeArgs?: string[];
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
/**
|
|
249
|
-
* This interface describes a package.json debuggers contribution section object.
|
|
250
|
-
*/
|
|
251
|
-
export interface PluginPackageDebuggersContribution extends PlatformSpecificAdapterContribution {
|
|
252
|
-
type: string;
|
|
253
|
-
label?: string;
|
|
254
|
-
languages?: string[];
|
|
255
|
-
enableBreakpointsFor?: { languageIds: string[] };
|
|
256
|
-
configurationAttributes: { [request: string]: IJSONSchema };
|
|
257
|
-
configurationSnippets: IJSONSchemaSnippet[];
|
|
258
|
-
variables?: ScopeMap;
|
|
259
|
-
adapterExecutableCommand?: string;
|
|
260
|
-
win?: PlatformSpecificAdapterContribution;
|
|
261
|
-
winx86?: PlatformSpecificAdapterContribution;
|
|
262
|
-
windows?: PlatformSpecificAdapterContribution;
|
|
263
|
-
osx?: PlatformSpecificAdapterContribution;
|
|
264
|
-
linux?: PlatformSpecificAdapterContribution;
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
/**
|
|
268
|
-
* This interface describes a package.json languages contribution section object.
|
|
269
|
-
*/
|
|
270
|
-
export interface PluginPackageLanguageContribution {
|
|
271
|
-
id: string;
|
|
272
|
-
extensions?: string[];
|
|
273
|
-
filenames?: string[];
|
|
274
|
-
filenamePatterns?: string[];
|
|
275
|
-
firstLine?: string;
|
|
276
|
-
aliases?: string[];
|
|
277
|
-
mimetypes?: string[];
|
|
278
|
-
configuration?: string;
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
export interface PluginPackageLanguageContributionConfiguration {
|
|
282
|
-
comments?: CommentRule;
|
|
283
|
-
brackets?: CharacterPair[];
|
|
284
|
-
autoClosingPairs?: (CharacterPair | AutoClosingPairConditional)[];
|
|
285
|
-
surroundingPairs?: (CharacterPair | AutoClosingPair)[];
|
|
286
|
-
wordPattern?: string;
|
|
287
|
-
indentationRules?: IndentationRules;
|
|
288
|
-
folding?: FoldingRules;
|
|
289
|
-
onEnterRules?: OnEnterRule[];
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
export interface PluginTaskDefinitionContribution {
|
|
293
|
-
type: string;
|
|
294
|
-
required: string[];
|
|
295
|
-
properties?: IJSONSchema['properties'];
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
export interface PluginProblemMatcherContribution extends ProblemMatcherContribution {
|
|
299
|
-
name: string;
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
export interface PluginProblemPatternContribution extends ProblemPatternContribution {
|
|
303
|
-
name: string;
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
export interface PluginJsonValidationContribution {
|
|
307
|
-
fileMatch: string | string[];
|
|
308
|
-
url: string;
|
|
309
|
-
}
|
|
310
|
-
|
|
311
|
-
export const PluginScanner = Symbol('PluginScanner');
|
|
312
|
-
/**
|
|
313
|
-
* This scanner process package.json object and returns plugin metadata objects.
|
|
314
|
-
*/
|
|
315
|
-
export interface PluginScanner {
|
|
316
|
-
/**
|
|
317
|
-
* The type of plugin's API (engine name)
|
|
318
|
-
*/
|
|
319
|
-
apiType: PluginEngine;
|
|
320
|
-
|
|
321
|
-
/**
|
|
322
|
-
* Creates plugin's model.
|
|
323
|
-
*
|
|
324
|
-
* @param {PluginPackage} plugin
|
|
325
|
-
* @returns {PluginModel}
|
|
326
|
-
*/
|
|
327
|
-
getModel(plugin: PluginPackage): PluginModel;
|
|
328
|
-
|
|
329
|
-
/**
|
|
330
|
-
* Creates plugin's lifecycle.
|
|
331
|
-
*
|
|
332
|
-
* @returns {PluginLifecycle}
|
|
333
|
-
*/
|
|
334
|
-
getLifecycle(plugin: PluginPackage): PluginLifecycle;
|
|
335
|
-
|
|
336
|
-
getContribution(plugin: PluginPackage): PluginContribution | undefined;
|
|
337
|
-
|
|
338
|
-
/**
|
|
339
|
-
* A mapping between a dependency as its defined in package.json
|
|
340
|
-
* and its deployable form, e.g. `publisher.name` -> `vscode:extension/publisher.name`
|
|
341
|
-
*/
|
|
342
|
-
getDependencies(plugin: PluginPackage): Map<string, string> | undefined;
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
/**
|
|
346
|
-
* A plugin resolver is handling how to resolve a plugin link into a local resource.
|
|
347
|
-
*/
|
|
348
|
-
export const PluginDeployerResolver = Symbol('PluginDeployerResolver');
|
|
349
|
-
/**
|
|
350
|
-
* A resolver handle a set of resource
|
|
351
|
-
*/
|
|
352
|
-
export interface PluginDeployerResolver {
|
|
353
|
-
|
|
354
|
-
init?(pluginDeployerResolverInit: PluginDeployerResolverInit): void;
|
|
355
|
-
|
|
356
|
-
accept(pluginSourceId: string): boolean;
|
|
357
|
-
|
|
358
|
-
resolve(pluginResolverContext: PluginDeployerResolverContext, options?: PluginDeployOptions): Promise<void>;
|
|
359
|
-
|
|
360
|
-
}
|
|
361
|
-
|
|
362
|
-
export const PluginDeployerDirectoryHandler = Symbol('PluginDeployerDirectoryHandler');
|
|
363
|
-
export interface PluginDeployerDirectoryHandler {
|
|
364
|
-
accept(pluginDeployerEntry: PluginDeployerEntry): boolean;
|
|
365
|
-
|
|
366
|
-
handle(context: PluginDeployerDirectoryHandlerContext): Promise<void>;
|
|
367
|
-
}
|
|
368
|
-
|
|
369
|
-
export const PluginDeployerFileHandler = Symbol('PluginDeployerFileHandler');
|
|
370
|
-
export interface PluginDeployerFileHandler {
|
|
371
|
-
|
|
372
|
-
accept(pluginDeployerEntry: PluginDeployerEntry): boolean;
|
|
373
|
-
|
|
374
|
-
handle(context: PluginDeployerFileHandlerContext): Promise<void>;
|
|
375
|
-
}
|
|
376
|
-
|
|
377
|
-
export interface PluginDeployerResolverInit {
|
|
378
|
-
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
export interface PluginDeployerResolverContext {
|
|
382
|
-
|
|
383
|
-
addPlugin(pluginId: string, path: string): void;
|
|
384
|
-
|
|
385
|
-
getPlugins(): PluginDeployerEntry[];
|
|
386
|
-
|
|
387
|
-
getOriginId(): string;
|
|
388
|
-
|
|
389
|
-
}
|
|
390
|
-
|
|
391
|
-
export interface PluginDeployerStartContext {
|
|
392
|
-
readonly userEntries: string[]
|
|
393
|
-
readonly systemEntries: string[]
|
|
394
|
-
}
|
|
395
|
-
|
|
396
|
-
export const PluginDeployer = Symbol('PluginDeployer');
|
|
397
|
-
export interface PluginDeployer {
|
|
398
|
-
|
|
399
|
-
start(): void;
|
|
400
|
-
|
|
401
|
-
}
|
|
402
|
-
|
|
403
|
-
export const PluginDeployerParticipant = Symbol('PluginDeployerParticipant');
|
|
404
|
-
/**
|
|
405
|
-
* A participant can hook into the plugin deployer lifecycle.
|
|
406
|
-
*/
|
|
407
|
-
export interface PluginDeployerParticipant {
|
|
408
|
-
onWillStart?(context: PluginDeployerStartContext): Promise<void>;
|
|
409
|
-
}
|
|
410
|
-
|
|
411
|
-
export enum PluginDeployerEntryType {
|
|
412
|
-
|
|
413
|
-
FRONTEND,
|
|
414
|
-
|
|
415
|
-
BACKEND
|
|
416
|
-
}
|
|
417
|
-
|
|
418
|
-
/**
|
|
419
|
-
* Whether a plugin installed by a user or system.
|
|
420
|
-
*/
|
|
421
|
-
export enum PluginType {
|
|
422
|
-
System,
|
|
423
|
-
User
|
|
424
|
-
};
|
|
425
|
-
|
|
426
|
-
export interface UnresolvedPluginEntry {
|
|
427
|
-
id: string;
|
|
428
|
-
type?: PluginType;
|
|
429
|
-
}
|
|
430
|
-
|
|
431
|
-
export interface PluginDeployerEntry {
|
|
432
|
-
|
|
433
|
-
/**
|
|
434
|
-
* ID (before any resolution)
|
|
435
|
-
*/
|
|
436
|
-
id(): string;
|
|
437
|
-
|
|
438
|
-
/**
|
|
439
|
-
* Original resolved path
|
|
440
|
-
*/
|
|
441
|
-
originalPath(): string;
|
|
442
|
-
|
|
443
|
-
/**
|
|
444
|
-
* Local path on the filesystem.
|
|
445
|
-
*/
|
|
446
|
-
path(): string;
|
|
447
|
-
|
|
448
|
-
/**
|
|
449
|
-
* Get a specific entry
|
|
450
|
-
*/
|
|
451
|
-
getValue<T>(key: string): T;
|
|
452
|
-
|
|
453
|
-
/**
|
|
454
|
-
* Store a value
|
|
455
|
-
*/
|
|
456
|
-
storeValue<T>(key: string, value: T): void;
|
|
457
|
-
|
|
458
|
-
/**
|
|
459
|
-
* Update path
|
|
460
|
-
*/
|
|
461
|
-
updatePath(newPath: string): void;
|
|
462
|
-
|
|
463
|
-
getChanges(): string[];
|
|
464
|
-
|
|
465
|
-
isFile(): boolean;
|
|
466
|
-
|
|
467
|
-
isDirectory(): boolean;
|
|
468
|
-
|
|
469
|
-
/**
|
|
470
|
-
* Resolved if a resolver has handle this plugin
|
|
471
|
-
*/
|
|
472
|
-
isResolved(): boolean;
|
|
473
|
-
|
|
474
|
-
resolvedBy(): string;
|
|
475
|
-
|
|
476
|
-
/**
|
|
477
|
-
* Accepted when a handler is telling this location can go live
|
|
478
|
-
*/
|
|
479
|
-
isAccepted(...types: PluginDeployerEntryType[]): boolean;
|
|
480
|
-
|
|
481
|
-
accept(...types: PluginDeployerEntryType[]): void;
|
|
482
|
-
|
|
483
|
-
hasError(): boolean;
|
|
484
|
-
|
|
485
|
-
type: PluginType
|
|
486
|
-
/**
|
|
487
|
-
* A fs path to a directory where a plugin is located.
|
|
488
|
-
* Depending on a plugin format it can be different from `path`.
|
|
489
|
-
* Use `path` if you want to resolve something within a plugin, like `README.md` file.
|
|
490
|
-
* Use `rootPath` if you want to manipulate the entire plugin location, like delete or move it.
|
|
491
|
-
*/
|
|
492
|
-
rootPath: string
|
|
493
|
-
}
|
|
494
|
-
|
|
495
|
-
export interface PluginDeployerFileHandlerContext {
|
|
496
|
-
|
|
497
|
-
unzip(sourcePath: string, destPath: string): Promise<void>;
|
|
498
|
-
|
|
499
|
-
pluginEntry(): PluginDeployerEntry;
|
|
500
|
-
|
|
501
|
-
}
|
|
502
|
-
|
|
503
|
-
export interface PluginDeployerDirectoryHandlerContext {
|
|
504
|
-
|
|
505
|
-
copy(origin: string, target: string): Promise<void>;
|
|
506
|
-
|
|
507
|
-
pluginEntry(): PluginDeployerEntry;
|
|
508
|
-
|
|
509
|
-
}
|
|
510
|
-
|
|
511
|
-
/**
|
|
512
|
-
* This interface describes a plugin model object, which is populated from package.json.
|
|
513
|
-
*/
|
|
514
|
-
export interface PluginModel {
|
|
515
|
-
id: string;
|
|
516
|
-
name: string;
|
|
517
|
-
publisher: string;
|
|
518
|
-
version: string;
|
|
519
|
-
displayName: string;
|
|
520
|
-
description: string;
|
|
521
|
-
engine: {
|
|
522
|
-
type: PluginEngine;
|
|
523
|
-
version: string;
|
|
524
|
-
};
|
|
525
|
-
entryPoint: PluginEntryPoint;
|
|
526
|
-
packageUri: string;
|
|
527
|
-
/**
|
|
528
|
-
* @deprecated since 1.1.0 - because it lead to problems with getting a relative path
|
|
529
|
-
* needed by Icon Themes to correctly load Fonts, use packageUri instead.
|
|
530
|
-
*/
|
|
531
|
-
packagePath: string;
|
|
532
|
-
iconUrl?: string;
|
|
533
|
-
readmeUrl?: string;
|
|
534
|
-
licenseUrl?: string;
|
|
535
|
-
}
|
|
536
|
-
|
|
537
|
-
export interface PluginEntryPoint {
|
|
538
|
-
frontend?: string;
|
|
539
|
-
backend?: string;
|
|
540
|
-
}
|
|
541
|
-
|
|
542
|
-
/**
|
|
543
|
-
* This interface describes some static plugin contributions.
|
|
544
|
-
*/
|
|
545
|
-
export interface PluginContribution {
|
|
546
|
-
activationEvents?: string[];
|
|
547
|
-
configuration?: PreferenceSchema[];
|
|
548
|
-
configurationDefaults?: PreferenceSchemaProperties;
|
|
549
|
-
languages?: LanguageContribution[];
|
|
550
|
-
grammars?: GrammarsContribution[];
|
|
551
|
-
customEditors?: CustomEditor[];
|
|
552
|
-
viewsContainers?: { [location: string]: ViewContainer[] };
|
|
553
|
-
views?: { [location: string]: View[] };
|
|
554
|
-
viewsWelcome?: ViewWelcome[];
|
|
555
|
-
commands?: PluginCommand[];
|
|
556
|
-
menus?: { [location: string]: Menu[] };
|
|
557
|
-
submenus?: Submenu[];
|
|
558
|
-
keybindings?: Keybinding[];
|
|
559
|
-
debuggers?: DebuggerContribution[];
|
|
560
|
-
snippets?: SnippetContribution[];
|
|
561
|
-
themes?: ThemeContribution[];
|
|
562
|
-
iconThemes?: IconThemeContribution[];
|
|
563
|
-
colors?: ColorDefinition[];
|
|
564
|
-
taskDefinitions?: TaskDefinition[];
|
|
565
|
-
problemMatchers?: ProblemMatcherContribution[];
|
|
566
|
-
problemPatterns?: ProblemPatternContribution[];
|
|
567
|
-
resourceLabelFormatters?: ResourceLabelFormatter[];
|
|
568
|
-
localizations?: Localization[];
|
|
569
|
-
terminalProfiles?: TerminalProfile[];
|
|
570
|
-
}
|
|
571
|
-
|
|
572
|
-
export interface TerminalProfile {
|
|
573
|
-
title: string,
|
|
574
|
-
id: string,
|
|
575
|
-
icon?: string
|
|
576
|
-
}
|
|
577
|
-
|
|
578
|
-
export interface Localization {
|
|
579
|
-
languageId: string;
|
|
580
|
-
languageName?: string;
|
|
581
|
-
localizedLanguageName?: string;
|
|
582
|
-
translations: Translation[];
|
|
583
|
-
minimalTranslations?: { [key: string]: string };
|
|
584
|
-
}
|
|
585
|
-
|
|
586
|
-
export interface Translation {
|
|
587
|
-
id: string;
|
|
588
|
-
path: string;
|
|
589
|
-
version: string;
|
|
590
|
-
contents: { [scope: string]: { [key: string]: string } }
|
|
591
|
-
}
|
|
592
|
-
|
|
593
|
-
export interface SnippetContribution {
|
|
594
|
-
uri: string
|
|
595
|
-
source: string
|
|
596
|
-
language?: string
|
|
597
|
-
}
|
|
598
|
-
|
|
599
|
-
export type UiTheme = 'vs' | 'vs-dark' | 'hc-black';
|
|
600
|
-
|
|
601
|
-
export interface ThemeContribution {
|
|
602
|
-
id?: string;
|
|
603
|
-
label?: string;
|
|
604
|
-
description?: string;
|
|
605
|
-
uri: string;
|
|
606
|
-
uiTheme?: UiTheme;
|
|
607
|
-
}
|
|
608
|
-
|
|
609
|
-
export interface IconThemeContribution {
|
|
610
|
-
id: string;
|
|
611
|
-
label?: string;
|
|
612
|
-
description?: string;
|
|
613
|
-
uri: string;
|
|
614
|
-
uiTheme?: UiTheme;
|
|
615
|
-
}
|
|
616
|
-
|
|
617
|
-
export interface GrammarsContribution {
|
|
618
|
-
format: 'json' | 'plist';
|
|
619
|
-
language?: string;
|
|
620
|
-
scope: string;
|
|
621
|
-
grammar?: string | object;
|
|
622
|
-
grammarLocation?: string;
|
|
623
|
-
embeddedLanguages?: ScopeMap;
|
|
624
|
-
tokenTypes?: ScopeMap;
|
|
625
|
-
injectTo?: string[];
|
|
626
|
-
balancedBracketScopes?: string[];
|
|
627
|
-
unbalancedBracketScopes?: string[];
|
|
628
|
-
}
|
|
629
|
-
|
|
630
|
-
/**
|
|
631
|
-
* The language contribution
|
|
632
|
-
*/
|
|
633
|
-
export interface LanguageContribution {
|
|
634
|
-
id: string;
|
|
635
|
-
extensions?: string[];
|
|
636
|
-
filenames?: string[];
|
|
637
|
-
filenamePatterns?: string[];
|
|
638
|
-
firstLine?: string;
|
|
639
|
-
aliases?: string[];
|
|
640
|
-
mimetypes?: string[];
|
|
641
|
-
configuration?: LanguageConfiguration;
|
|
642
|
-
}
|
|
643
|
-
|
|
644
|
-
export interface LanguageConfiguration {
|
|
645
|
-
brackets?: CharacterPair[];
|
|
646
|
-
indentationRules?: IndentationRules;
|
|
647
|
-
surroundingPairs?: AutoClosingPair[];
|
|
648
|
-
autoClosingPairs?: AutoClosingPairConditional[];
|
|
649
|
-
comments?: CommentRule;
|
|
650
|
-
folding?: FoldingRules;
|
|
651
|
-
wordPattern?: string;
|
|
652
|
-
onEnterRules?: OnEnterRule[];
|
|
653
|
-
}
|
|
654
|
-
|
|
655
|
-
/**
|
|
656
|
-
* This interface describes a package.json debuggers contribution section object.
|
|
657
|
-
*/
|
|
658
|
-
export interface DebuggerContribution extends PlatformSpecificAdapterContribution {
|
|
659
|
-
type: string,
|
|
660
|
-
label?: string,
|
|
661
|
-
languages?: string[],
|
|
662
|
-
enableBreakpointsFor?: {
|
|
663
|
-
languageIds: string[]
|
|
664
|
-
},
|
|
665
|
-
configurationAttributes?: IJSONSchema[],
|
|
666
|
-
configurationSnippets?: IJSONSchemaSnippet[],
|
|
667
|
-
variables?: ScopeMap,
|
|
668
|
-
adapterExecutableCommand?: string
|
|
669
|
-
win?: PlatformSpecificAdapterContribution;
|
|
670
|
-
winx86?: PlatformSpecificAdapterContribution;
|
|
671
|
-
windows?: PlatformSpecificAdapterContribution;
|
|
672
|
-
osx?: PlatformSpecificAdapterContribution;
|
|
673
|
-
linux?: PlatformSpecificAdapterContribution;
|
|
674
|
-
}
|
|
675
|
-
|
|
676
|
-
export interface IndentationRules {
|
|
677
|
-
increaseIndentPattern: string;
|
|
678
|
-
decreaseIndentPattern: string;
|
|
679
|
-
unIndentedLinePattern?: string;
|
|
680
|
-
indentNextLinePattern?: string;
|
|
681
|
-
}
|
|
682
|
-
export interface AutoClosingPair {
|
|
683
|
-
close: string;
|
|
684
|
-
open: string;
|
|
685
|
-
}
|
|
686
|
-
|
|
687
|
-
export interface AutoClosingPairConditional extends AutoClosingPair {
|
|
688
|
-
notIn?: string[];
|
|
689
|
-
}
|
|
690
|
-
|
|
691
|
-
export interface FoldingMarkers {
|
|
692
|
-
start: string;
|
|
693
|
-
end: string;
|
|
694
|
-
}
|
|
695
|
-
|
|
696
|
-
export interface FoldingRules {
|
|
697
|
-
offSide?: boolean;
|
|
698
|
-
markers?: FoldingMarkers;
|
|
699
|
-
}
|
|
700
|
-
|
|
701
|
-
export interface OnEnterRule {
|
|
702
|
-
beforeText: string;
|
|
703
|
-
afterText?: string;
|
|
704
|
-
previousLineText?: string;
|
|
705
|
-
action: EnterAction;
|
|
706
|
-
}
|
|
707
|
-
|
|
708
|
-
export interface EnterAction {
|
|
709
|
-
indent: 'none' | 'indent' | 'outdent' | 'indentOutdent';
|
|
710
|
-
appendText?: string;
|
|
711
|
-
removeText?: number;
|
|
712
|
-
}
|
|
713
|
-
|
|
714
|
-
/**
|
|
715
|
-
* Custom Editors contribution
|
|
716
|
-
*/
|
|
717
|
-
export interface CustomEditor {
|
|
718
|
-
viewType: string;
|
|
719
|
-
displayName: string;
|
|
720
|
-
selector: CustomEditorSelector[];
|
|
721
|
-
priority: CustomEditorPriority;
|
|
722
|
-
}
|
|
723
|
-
|
|
724
|
-
/**
|
|
725
|
-
* Views Containers contribution
|
|
726
|
-
*/
|
|
727
|
-
export interface ViewContainer {
|
|
728
|
-
id: string;
|
|
729
|
-
title: string;
|
|
730
|
-
iconUrl: string;
|
|
731
|
-
themeIcon?: string;
|
|
732
|
-
}
|
|
733
|
-
|
|
734
|
-
/**
|
|
735
|
-
* View contribution
|
|
736
|
-
*/
|
|
737
|
-
export interface View {
|
|
738
|
-
id: string;
|
|
739
|
-
name: string;
|
|
740
|
-
when?: string;
|
|
741
|
-
type?: string;
|
|
742
|
-
}
|
|
743
|
-
|
|
744
|
-
/**
|
|
745
|
-
* View Welcome contribution
|
|
746
|
-
*/
|
|
747
|
-
export interface ViewWelcome {
|
|
748
|
-
view: string;
|
|
749
|
-
content: string;
|
|
750
|
-
when?: string;
|
|
751
|
-
order: number;
|
|
752
|
-
}
|
|
753
|
-
|
|
754
|
-
export interface PluginCommand {
|
|
755
|
-
command: string;
|
|
756
|
-
title: string;
|
|
757
|
-
originalTitle?: string;
|
|
758
|
-
category?: string;
|
|
759
|
-
iconUrl?: IconUrl;
|
|
760
|
-
themeIcon?: string;
|
|
761
|
-
enablement?: string;
|
|
762
|
-
}
|
|
763
|
-
|
|
764
|
-
export type IconUrl = string | { light: string; dark: string; };
|
|
765
|
-
|
|
766
|
-
/**
|
|
767
|
-
* Menu contribution
|
|
768
|
-
*/
|
|
769
|
-
export interface Menu {
|
|
770
|
-
command?: string;
|
|
771
|
-
submenu?: string
|
|
772
|
-
alt?: string;
|
|
773
|
-
group?: string;
|
|
774
|
-
when?: string;
|
|
775
|
-
}
|
|
776
|
-
|
|
777
|
-
export interface Submenu {
|
|
778
|
-
id: string;
|
|
779
|
-
label: string;
|
|
780
|
-
icon?: IconUrl;
|
|
781
|
-
}
|
|
782
|
-
|
|
783
|
-
/**
|
|
784
|
-
* Keybinding contribution
|
|
785
|
-
*/
|
|
786
|
-
export interface Keybinding {
|
|
787
|
-
keybinding?: string;
|
|
788
|
-
command: string;
|
|
789
|
-
when?: string;
|
|
790
|
-
mac?: string;
|
|
791
|
-
linux?: string;
|
|
792
|
-
win?: string;
|
|
793
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
794
|
-
args?: any;
|
|
795
|
-
}
|
|
796
|
-
|
|
797
|
-
/**
|
|
798
|
-
* This interface describes a plugin lifecycle object.
|
|
799
|
-
*/
|
|
800
|
-
export interface PluginLifecycle {
|
|
801
|
-
startMethod: string;
|
|
802
|
-
stopMethod: string;
|
|
803
|
-
/**
|
|
804
|
-
* Frontend module name, frontend plugin should expose this name.
|
|
805
|
-
*/
|
|
806
|
-
frontendModuleName?: string;
|
|
807
|
-
/**
|
|
808
|
-
* Path to the script which should do some initialization before frontend plugin is loaded.
|
|
809
|
-
*/
|
|
810
|
-
frontendInitPath?: string;
|
|
811
|
-
/**
|
|
812
|
-
* Path to the script which should do some initialization before backend plugin is loaded.
|
|
813
|
-
*/
|
|
814
|
-
backendInitPath?: string;
|
|
815
|
-
}
|
|
816
|
-
|
|
817
|
-
/**
|
|
818
|
-
* The export function of initialization module of backend plugin.
|
|
819
|
-
*/
|
|
820
|
-
export interface BackendInitializationFn {
|
|
821
|
-
(apiFactory: PluginAPIFactory, plugin: Plugin): void;
|
|
822
|
-
}
|
|
823
|
-
|
|
824
|
-
export interface BackendLoadingFn {
|
|
825
|
-
(rpc: RPCProtocol, plugin: Plugin): void;
|
|
826
|
-
}
|
|
827
|
-
|
|
828
|
-
export interface PluginContext {
|
|
829
|
-
subscriptions: Disposable[];
|
|
830
|
-
}
|
|
831
|
-
|
|
832
|
-
export interface ExtensionContext {
|
|
833
|
-
subscriptions: Disposable[];
|
|
834
|
-
}
|
|
835
|
-
|
|
836
|
-
export interface PluginMetadata {
|
|
837
|
-
host: string;
|
|
838
|
-
model: PluginModel;
|
|
839
|
-
lifecycle: PluginLifecycle;
|
|
840
|
-
isUnderDevelopment?: boolean;
|
|
841
|
-
outOfSync: boolean;
|
|
842
|
-
}
|
|
843
|
-
|
|
844
|
-
export const MetadataProcessor = Symbol('MetadataProcessor');
|
|
845
|
-
export interface MetadataProcessor {
|
|
846
|
-
process(pluginMetadata: PluginMetadata): void;
|
|
847
|
-
}
|
|
848
|
-
|
|
849
|
-
export function getPluginId(plugin: PluginPackage | PluginModel): string {
|
|
850
|
-
return `${plugin.publisher}_${plugin.name}`.replace(/\W/g, '_');
|
|
851
|
-
}
|
|
852
|
-
|
|
853
|
-
export function buildFrontendModuleName(plugin: PluginPackage | PluginModel): string {
|
|
854
|
-
return `${plugin.publisher}_${plugin.name}`.replace(/\W/g, '_');
|
|
855
|
-
}
|
|
856
|
-
|
|
857
|
-
export const HostedPluginClient = Symbol('HostedPluginClient');
|
|
858
|
-
export interface HostedPluginClient {
|
|
859
|
-
postMessage(pluginHost: string, buffer: Uint8Array): Promise<void>;
|
|
860
|
-
|
|
861
|
-
log(logPart: LogPart): void;
|
|
862
|
-
|
|
863
|
-
onDidDeploy(): void;
|
|
864
|
-
}
|
|
865
|
-
|
|
866
|
-
export interface PluginDependencies {
|
|
867
|
-
metadata: PluginMetadata
|
|
868
|
-
/**
|
|
869
|
-
* Actual listing of plugin dependencies.
|
|
870
|
-
* Mapping from {@link PluginIdentifiers.UnversionedId external representation} of plugin identity to a string
|
|
871
|
-
* that can be used to identify the resolver for the specific plugin case, e.g. with scheme `vscode://<id>`.
|
|
872
|
-
*/
|
|
873
|
-
mapping?: Map<string, string>
|
|
874
|
-
}
|
|
875
|
-
|
|
876
|
-
export const PluginDeployerHandler = Symbol('PluginDeployerHandler');
|
|
877
|
-
export interface PluginDeployerHandler {
|
|
878
|
-
deployFrontendPlugins(frontendPlugins: PluginDeployerEntry[]): Promise<number | undefined>;
|
|
879
|
-
deployBackendPlugins(backendPlugins: PluginDeployerEntry[]): Promise<number | undefined>;
|
|
880
|
-
|
|
881
|
-
getDeployedPluginsById(pluginId: string): DeployedPlugin[];
|
|
882
|
-
|
|
883
|
-
getDeployedPlugin(pluginId: PluginIdentifiers.VersionedId): DeployedPlugin | undefined;
|
|
884
|
-
/**
|
|
885
|
-
* Removes the plugin from the location it originally resided on disk.
|
|
886
|
-
* Unless `--uncompressed-plugins-in-place` is passed to the CLI, this operation is safe.
|
|
887
|
-
*/
|
|
888
|
-
uninstallPlugin(pluginId: PluginIdentifiers.VersionedId): Promise<boolean>;
|
|
889
|
-
/**
|
|
890
|
-
* Removes the plugin from the locations to which it had been deployed.
|
|
891
|
-
* This operation is not safe - references to deleted assets may remain.
|
|
892
|
-
*/
|
|
893
|
-
undeployPlugin(pluginId: PluginIdentifiers.VersionedId): Promise<boolean>;
|
|
894
|
-
|
|
895
|
-
getPluginDependencies(pluginToBeInstalled: PluginDeployerEntry): Promise<PluginDependencies | undefined>;
|
|
896
|
-
}
|
|
897
|
-
|
|
898
|
-
export interface GetDeployedPluginsParams {
|
|
899
|
-
pluginIds: PluginIdentifiers.VersionedId[]
|
|
900
|
-
}
|
|
901
|
-
|
|
902
|
-
export interface DeployedPlugin {
|
|
903
|
-
/**
|
|
904
|
-
* defaults to system
|
|
905
|
-
*/
|
|
906
|
-
type?: PluginType;
|
|
907
|
-
metadata: PluginMetadata;
|
|
908
|
-
contributes?: PluginContribution;
|
|
909
|
-
}
|
|
910
|
-
|
|
911
|
-
export const HostedPluginServer = Symbol('HostedPluginServer');
|
|
912
|
-
export interface HostedPluginServer extends JsonRpcServer<HostedPluginClient> {
|
|
913
|
-
|
|
914
|
-
getDeployedPluginIds(): Promise<PluginIdentifiers.VersionedId[]>;
|
|
915
|
-
|
|
916
|
-
getUninstalledPluginIds(): Promise<readonly PluginIdentifiers.VersionedId[]>;
|
|
917
|
-
|
|
918
|
-
getDeployedPlugins(params: GetDeployedPluginsParams): Promise<DeployedPlugin[]>;
|
|
919
|
-
|
|
920
|
-
getExtPluginAPI(): Promise<ExtPluginApi[]>;
|
|
921
|
-
|
|
922
|
-
onMessage(targetHost: string, message: Uint8Array): Promise<void>;
|
|
923
|
-
|
|
924
|
-
}
|
|
925
|
-
|
|
926
|
-
export const PLUGIN_HOST_BACKEND = 'main';
|
|
927
|
-
|
|
928
|
-
export interface WorkspaceStorageKind {
|
|
929
|
-
workspace?: string | undefined;
|
|
930
|
-
roots: string[];
|
|
931
|
-
}
|
|
932
|
-
export type GlobalStorageKind = undefined;
|
|
933
|
-
export type PluginStorageKind = GlobalStorageKind | WorkspaceStorageKind;
|
|
934
|
-
|
|
935
|
-
export interface PluginDeployOptions {
|
|
936
|
-
version: string;
|
|
937
|
-
/** Instructs the deployer to ignore any existing plugins with different versions */
|
|
938
|
-
ignoreOtherVersions?: boolean;
|
|
939
|
-
}
|
|
940
|
-
|
|
941
|
-
/**
|
|
942
|
-
* The JSON-RPC workspace interface.
|
|
943
|
-
*/
|
|
944
|
-
export const pluginServerJsonRpcPath = '/services/plugin-ext';
|
|
945
|
-
export const PluginServer = Symbol('PluginServer');
|
|
946
|
-
export interface PluginServer {
|
|
947
|
-
|
|
948
|
-
/**
|
|
949
|
-
* Deploy a plugin.
|
|
950
|
-
*
|
|
951
|
-
* @param type whether a plugin is installed by a system or a user, defaults to a user
|
|
952
|
-
*/
|
|
953
|
-
deploy(pluginEntry: string, type?: PluginType, options?: PluginDeployOptions): Promise<void>;
|
|
954
|
-
uninstall(pluginId: PluginIdentifiers.VersionedId): Promise<void>;
|
|
955
|
-
undeploy(pluginId: PluginIdentifiers.VersionedId): Promise<void>;
|
|
956
|
-
|
|
957
|
-
setStorageValue(key: string, value: KeysToAnyValues, kind: PluginStorageKind): Promise<boolean>;
|
|
958
|
-
getStorageValue(key: string, kind: PluginStorageKind): Promise<KeysToAnyValues>;
|
|
959
|
-
getAllStorageValues(kind: PluginStorageKind): Promise<KeysToKeysToAnyValue>;
|
|
960
|
-
}
|
|
961
|
-
|
|
962
|
-
export const ServerPluginRunner = Symbol('ServerPluginRunner');
|
|
963
|
-
export interface ServerPluginRunner {
|
|
964
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
965
|
-
acceptMessage(pluginHostId: string, jsonMessage: Uint8Array): boolean;
|
|
966
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
967
|
-
onMessage(pluginHostId: string, jsonMessage: Uint8Array): void;
|
|
968
|
-
setClient(client: HostedPluginClient): void;
|
|
969
|
-
setDefault(defaultRunner: ServerPluginRunner): void;
|
|
970
|
-
clientClosed(): void;
|
|
971
|
-
|
|
972
|
-
/**
|
|
973
|
-
* Provides additional deployed plugins.
|
|
974
|
-
*/
|
|
975
|
-
getExtraDeployedPlugins(): Promise<DeployedPlugin[]>;
|
|
976
|
-
|
|
977
|
-
/**
|
|
978
|
-
* Provides additional plugin ids.
|
|
979
|
-
*/
|
|
980
|
-
getExtraDeployedPluginIds(): Promise<PluginIdentifiers.VersionedId[]>;
|
|
981
|
-
|
|
982
|
-
}
|
|
983
|
-
|
|
984
|
-
export const PluginHostEnvironmentVariable = Symbol('PluginHostEnvironmentVariable');
|
|
985
|
-
export interface PluginHostEnvironmentVariable {
|
|
986
|
-
process(env: NodeJS.ProcessEnv): void;
|
|
987
|
-
}
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2018 Red Hat, Inc. and others.
|
|
3
|
+
//
|
|
4
|
+
// This program and the accompanying materials are made available under the
|
|
5
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
//
|
|
8
|
+
// This Source Code may also be made available under the following Secondary
|
|
9
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
// with the GNU Classpath Exception which is available at
|
|
12
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
//
|
|
14
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
// *****************************************************************************
|
|
16
|
+
import { JsonRpcServer } from '@theia/core/lib/common/messaging/proxy-factory';
|
|
17
|
+
import { RPCProtocol } from './rpc-protocol';
|
|
18
|
+
import { Disposable } from '@theia/core/lib/common/disposable';
|
|
19
|
+
import { LogPart, KeysToAnyValues, KeysToKeysToAnyValue } from './types';
|
|
20
|
+
import { CharacterPair, CommentRule, PluginAPIFactory, Plugin } from './plugin-api-rpc';
|
|
21
|
+
import { ExtPluginApi } from './plugin-ext-api-contribution';
|
|
22
|
+
import { IJSONSchema, IJSONSchemaSnippet } from '@theia/core/lib/common/json-schema';
|
|
23
|
+
import { RecursivePartial } from '@theia/core/lib/common/types';
|
|
24
|
+
import { PreferenceSchema, PreferenceSchemaProperties } from '@theia/core/lib/common/preferences/preference-schema';
|
|
25
|
+
import { ProblemMatcherContribution, ProblemPatternContribution, TaskDefinition } from '@theia/task/lib/common';
|
|
26
|
+
import { ColorDefinition } from '@theia/core/lib/common/color';
|
|
27
|
+
import { ResourceLabelFormatter } from '@theia/core/lib/common/label-protocol';
|
|
28
|
+
import { PluginIdentifiers } from './plugin-identifiers';
|
|
29
|
+
|
|
30
|
+
export { PluginIdentifiers };
|
|
31
|
+
export const hostedServicePath = '/services/hostedPlugin';
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Plugin engine (API) type, i.e. 'theiaPlugin', 'vscode', etc.
|
|
35
|
+
*/
|
|
36
|
+
export type PluginEngine = string;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* This interface describes a package.json object.
|
|
40
|
+
*/
|
|
41
|
+
export interface PluginPackage {
|
|
42
|
+
name: string;
|
|
43
|
+
// The publisher is not guaranteed to be defined for unpublished plugins. https://github.com/microsoft/vscode-vsce/commit/a38657ece04c20e4fbde15d5ac1ed39ca51cb856
|
|
44
|
+
publisher: string | undefined;
|
|
45
|
+
version: string;
|
|
46
|
+
engines: {
|
|
47
|
+
[type in PluginEngine]: string;
|
|
48
|
+
};
|
|
49
|
+
theiaPlugin?: {
|
|
50
|
+
frontend?: string;
|
|
51
|
+
backend?: string;
|
|
52
|
+
};
|
|
53
|
+
main?: string;
|
|
54
|
+
browser?: string;
|
|
55
|
+
displayName: string;
|
|
56
|
+
description: string;
|
|
57
|
+
contributes?: PluginPackageContribution;
|
|
58
|
+
packagePath: string;
|
|
59
|
+
activationEvents?: string[];
|
|
60
|
+
extensionDependencies?: string[];
|
|
61
|
+
extensionPack?: string[];
|
|
62
|
+
icon?: string;
|
|
63
|
+
extensionKind?: Array<'ui' | 'workspace'>
|
|
64
|
+
}
|
|
65
|
+
export namespace PluginPackage {
|
|
66
|
+
export function toPluginUrl(pck: PluginPackage | PluginModel, relativePath: string): string {
|
|
67
|
+
return `hostedPlugin/${getPluginId(pck)}/${encodeURIComponent(relativePath)}`;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* This interface describes a package.json contribution section object.
|
|
73
|
+
*/
|
|
74
|
+
export interface PluginPackageContribution {
|
|
75
|
+
configuration?: RecursivePartial<PreferenceSchema> | RecursivePartial<PreferenceSchema>[];
|
|
76
|
+
configurationDefaults?: RecursivePartial<PreferenceSchemaProperties>;
|
|
77
|
+
languages?: PluginPackageLanguageContribution[];
|
|
78
|
+
grammars?: PluginPackageGrammarsContribution[];
|
|
79
|
+
customEditors?: PluginPackageCustomEditor[];
|
|
80
|
+
viewsContainers?: { [location: string]: PluginPackageViewContainer[] };
|
|
81
|
+
views?: { [location: string]: PluginPackageView[] };
|
|
82
|
+
viewsWelcome?: PluginPackageViewWelcome[];
|
|
83
|
+
commands?: PluginPackageCommand | PluginPackageCommand[];
|
|
84
|
+
menus?: { [location: string]: PluginPackageMenu[] };
|
|
85
|
+
submenus?: PluginPackageSubmenu[];
|
|
86
|
+
keybindings?: PluginPackageKeybinding | PluginPackageKeybinding[];
|
|
87
|
+
debuggers?: PluginPackageDebuggersContribution[];
|
|
88
|
+
snippets?: PluginPackageSnippetsContribution[];
|
|
89
|
+
themes?: PluginThemeContribution[];
|
|
90
|
+
iconThemes?: PluginIconThemeContribution[];
|
|
91
|
+
colors?: PluginColorContribution[];
|
|
92
|
+
taskDefinitions?: PluginTaskDefinitionContribution[];
|
|
93
|
+
problemMatchers?: PluginProblemMatcherContribution[];
|
|
94
|
+
problemPatterns?: PluginProblemPatternContribution[];
|
|
95
|
+
jsonValidation?: PluginJsonValidationContribution[];
|
|
96
|
+
resourceLabelFormatters?: ResourceLabelFormatter[];
|
|
97
|
+
localizations?: PluginPackageLocalization[];
|
|
98
|
+
terminal?: PluginPackageTerminal;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
export interface PluginPackageTerminalProfile {
|
|
102
|
+
title: string,
|
|
103
|
+
id: string,
|
|
104
|
+
icon?: string
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
export interface PluginPackageTerminal {
|
|
108
|
+
profiles: PluginPackageTerminalProfile[]
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export interface PluginPackageLocalization {
|
|
112
|
+
languageId: string;
|
|
113
|
+
languageName?: string;
|
|
114
|
+
localizedLanguageName?: string;
|
|
115
|
+
translations: PluginPackageTranslation[];
|
|
116
|
+
minimalTranslations?: { [key: string]: string };
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
export interface PluginPackageTranslation {
|
|
120
|
+
id: string;
|
|
121
|
+
path: string;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
export interface PluginPackageCustomEditor {
|
|
125
|
+
viewType: string;
|
|
126
|
+
displayName: string;
|
|
127
|
+
selector?: CustomEditorSelector[];
|
|
128
|
+
priority?: CustomEditorPriority;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
export interface CustomEditorSelector {
|
|
132
|
+
readonly filenamePattern?: string;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
export enum CustomEditorPriority {
|
|
136
|
+
default = 'default',
|
|
137
|
+
builtin = 'builtin',
|
|
138
|
+
option = 'option',
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
export interface PluginPackageViewContainer {
|
|
142
|
+
id: string;
|
|
143
|
+
title: string;
|
|
144
|
+
icon: string;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
export enum PluginViewType {
|
|
148
|
+
Tree = 'tree',
|
|
149
|
+
Webview = 'webview'
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
export interface PluginPackageView {
|
|
153
|
+
id: string;
|
|
154
|
+
name: string;
|
|
155
|
+
when?: string;
|
|
156
|
+
type?: string;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
export interface PluginPackageViewWelcome {
|
|
160
|
+
view: string;
|
|
161
|
+
contents: string;
|
|
162
|
+
when?: string;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
export interface PluginPackageCommand {
|
|
166
|
+
command: string;
|
|
167
|
+
title: string;
|
|
168
|
+
original?: string;
|
|
169
|
+
category?: string;
|
|
170
|
+
icon?: string | { light: string; dark: string; };
|
|
171
|
+
enablement?: string;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
export interface PluginPackageMenu {
|
|
175
|
+
command?: string;
|
|
176
|
+
submenu?: string;
|
|
177
|
+
alt?: string;
|
|
178
|
+
group?: string;
|
|
179
|
+
when?: string;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
export interface PluginPackageSubmenu {
|
|
183
|
+
id: string;
|
|
184
|
+
label: string;
|
|
185
|
+
icon: IconUrl;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
export interface PluginPackageKeybinding {
|
|
189
|
+
key?: string;
|
|
190
|
+
command: string;
|
|
191
|
+
when?: string;
|
|
192
|
+
mac?: string;
|
|
193
|
+
linux?: string;
|
|
194
|
+
win?: string;
|
|
195
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
196
|
+
args?: any;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
export interface PluginPackageGrammarsContribution {
|
|
200
|
+
language?: string;
|
|
201
|
+
scopeName: string;
|
|
202
|
+
path: string;
|
|
203
|
+
embeddedLanguages?: ScopeMap;
|
|
204
|
+
tokenTypes?: ScopeMap;
|
|
205
|
+
injectTo?: string[];
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
export interface ScopeMap {
|
|
209
|
+
[scopeName: string]: string;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
export interface PluginPackageSnippetsContribution {
|
|
213
|
+
language?: string;
|
|
214
|
+
path?: string;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
export interface PluginColorContribution {
|
|
218
|
+
id?: string;
|
|
219
|
+
description?: string;
|
|
220
|
+
defaults?: { light?: string, dark?: string, highContrast?: string };
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
export type PluginUiTheme = 'vs' | 'vs-dark' | 'hc-black';
|
|
224
|
+
|
|
225
|
+
export interface PluginThemeContribution {
|
|
226
|
+
id?: string;
|
|
227
|
+
label?: string;
|
|
228
|
+
description?: string;
|
|
229
|
+
path?: string;
|
|
230
|
+
uiTheme?: PluginUiTheme;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
export interface PluginIconThemeContribution {
|
|
234
|
+
id?: string;
|
|
235
|
+
label?: string;
|
|
236
|
+
description?: string;
|
|
237
|
+
path?: string;
|
|
238
|
+
uiTheme?: PluginUiTheme;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
export interface PlatformSpecificAdapterContribution {
|
|
242
|
+
program?: string;
|
|
243
|
+
args?: string[];
|
|
244
|
+
runtime?: string;
|
|
245
|
+
runtimeArgs?: string[];
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
/**
|
|
249
|
+
* This interface describes a package.json debuggers contribution section object.
|
|
250
|
+
*/
|
|
251
|
+
export interface PluginPackageDebuggersContribution extends PlatformSpecificAdapterContribution {
|
|
252
|
+
type: string;
|
|
253
|
+
label?: string;
|
|
254
|
+
languages?: string[];
|
|
255
|
+
enableBreakpointsFor?: { languageIds: string[] };
|
|
256
|
+
configurationAttributes: { [request: string]: IJSONSchema };
|
|
257
|
+
configurationSnippets: IJSONSchemaSnippet[];
|
|
258
|
+
variables?: ScopeMap;
|
|
259
|
+
adapterExecutableCommand?: string;
|
|
260
|
+
win?: PlatformSpecificAdapterContribution;
|
|
261
|
+
winx86?: PlatformSpecificAdapterContribution;
|
|
262
|
+
windows?: PlatformSpecificAdapterContribution;
|
|
263
|
+
osx?: PlatformSpecificAdapterContribution;
|
|
264
|
+
linux?: PlatformSpecificAdapterContribution;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
/**
|
|
268
|
+
* This interface describes a package.json languages contribution section object.
|
|
269
|
+
*/
|
|
270
|
+
export interface PluginPackageLanguageContribution {
|
|
271
|
+
id: string;
|
|
272
|
+
extensions?: string[];
|
|
273
|
+
filenames?: string[];
|
|
274
|
+
filenamePatterns?: string[];
|
|
275
|
+
firstLine?: string;
|
|
276
|
+
aliases?: string[];
|
|
277
|
+
mimetypes?: string[];
|
|
278
|
+
configuration?: string;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
export interface PluginPackageLanguageContributionConfiguration {
|
|
282
|
+
comments?: CommentRule;
|
|
283
|
+
brackets?: CharacterPair[];
|
|
284
|
+
autoClosingPairs?: (CharacterPair | AutoClosingPairConditional)[];
|
|
285
|
+
surroundingPairs?: (CharacterPair | AutoClosingPair)[];
|
|
286
|
+
wordPattern?: string;
|
|
287
|
+
indentationRules?: IndentationRules;
|
|
288
|
+
folding?: FoldingRules;
|
|
289
|
+
onEnterRules?: OnEnterRule[];
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
export interface PluginTaskDefinitionContribution {
|
|
293
|
+
type: string;
|
|
294
|
+
required: string[];
|
|
295
|
+
properties?: IJSONSchema['properties'];
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
export interface PluginProblemMatcherContribution extends ProblemMatcherContribution {
|
|
299
|
+
name: string;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
export interface PluginProblemPatternContribution extends ProblemPatternContribution {
|
|
303
|
+
name: string;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
export interface PluginJsonValidationContribution {
|
|
307
|
+
fileMatch: string | string[];
|
|
308
|
+
url: string;
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
export const PluginScanner = Symbol('PluginScanner');
|
|
312
|
+
/**
|
|
313
|
+
* This scanner process package.json object and returns plugin metadata objects.
|
|
314
|
+
*/
|
|
315
|
+
export interface PluginScanner {
|
|
316
|
+
/**
|
|
317
|
+
* The type of plugin's API (engine name)
|
|
318
|
+
*/
|
|
319
|
+
apiType: PluginEngine;
|
|
320
|
+
|
|
321
|
+
/**
|
|
322
|
+
* Creates plugin's model.
|
|
323
|
+
*
|
|
324
|
+
* @param {PluginPackage} plugin
|
|
325
|
+
* @returns {PluginModel}
|
|
326
|
+
*/
|
|
327
|
+
getModel(plugin: PluginPackage): PluginModel;
|
|
328
|
+
|
|
329
|
+
/**
|
|
330
|
+
* Creates plugin's lifecycle.
|
|
331
|
+
*
|
|
332
|
+
* @returns {PluginLifecycle}
|
|
333
|
+
*/
|
|
334
|
+
getLifecycle(plugin: PluginPackage): PluginLifecycle;
|
|
335
|
+
|
|
336
|
+
getContribution(plugin: PluginPackage): PluginContribution | undefined;
|
|
337
|
+
|
|
338
|
+
/**
|
|
339
|
+
* A mapping between a dependency as its defined in package.json
|
|
340
|
+
* and its deployable form, e.g. `publisher.name` -> `vscode:extension/publisher.name`
|
|
341
|
+
*/
|
|
342
|
+
getDependencies(plugin: PluginPackage): Map<string, string> | undefined;
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
/**
|
|
346
|
+
* A plugin resolver is handling how to resolve a plugin link into a local resource.
|
|
347
|
+
*/
|
|
348
|
+
export const PluginDeployerResolver = Symbol('PluginDeployerResolver');
|
|
349
|
+
/**
|
|
350
|
+
* A resolver handle a set of resource
|
|
351
|
+
*/
|
|
352
|
+
export interface PluginDeployerResolver {
|
|
353
|
+
|
|
354
|
+
init?(pluginDeployerResolverInit: PluginDeployerResolverInit): void;
|
|
355
|
+
|
|
356
|
+
accept(pluginSourceId: string): boolean;
|
|
357
|
+
|
|
358
|
+
resolve(pluginResolverContext: PluginDeployerResolverContext, options?: PluginDeployOptions): Promise<void>;
|
|
359
|
+
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
export const PluginDeployerDirectoryHandler = Symbol('PluginDeployerDirectoryHandler');
|
|
363
|
+
export interface PluginDeployerDirectoryHandler {
|
|
364
|
+
accept(pluginDeployerEntry: PluginDeployerEntry): boolean;
|
|
365
|
+
|
|
366
|
+
handle(context: PluginDeployerDirectoryHandlerContext): Promise<void>;
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
export const PluginDeployerFileHandler = Symbol('PluginDeployerFileHandler');
|
|
370
|
+
export interface PluginDeployerFileHandler {
|
|
371
|
+
|
|
372
|
+
accept(pluginDeployerEntry: PluginDeployerEntry): boolean;
|
|
373
|
+
|
|
374
|
+
handle(context: PluginDeployerFileHandlerContext): Promise<void>;
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
export interface PluginDeployerResolverInit {
|
|
378
|
+
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
export interface PluginDeployerResolverContext {
|
|
382
|
+
|
|
383
|
+
addPlugin(pluginId: string, path: string): void;
|
|
384
|
+
|
|
385
|
+
getPlugins(): PluginDeployerEntry[];
|
|
386
|
+
|
|
387
|
+
getOriginId(): string;
|
|
388
|
+
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
export interface PluginDeployerStartContext {
|
|
392
|
+
readonly userEntries: string[]
|
|
393
|
+
readonly systemEntries: string[]
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
export const PluginDeployer = Symbol('PluginDeployer');
|
|
397
|
+
export interface PluginDeployer {
|
|
398
|
+
|
|
399
|
+
start(): void;
|
|
400
|
+
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
export const PluginDeployerParticipant = Symbol('PluginDeployerParticipant');
|
|
404
|
+
/**
|
|
405
|
+
* A participant can hook into the plugin deployer lifecycle.
|
|
406
|
+
*/
|
|
407
|
+
export interface PluginDeployerParticipant {
|
|
408
|
+
onWillStart?(context: PluginDeployerStartContext): Promise<void>;
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
export enum PluginDeployerEntryType {
|
|
412
|
+
|
|
413
|
+
FRONTEND,
|
|
414
|
+
|
|
415
|
+
BACKEND
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
/**
|
|
419
|
+
* Whether a plugin installed by a user or system.
|
|
420
|
+
*/
|
|
421
|
+
export enum PluginType {
|
|
422
|
+
System,
|
|
423
|
+
User
|
|
424
|
+
};
|
|
425
|
+
|
|
426
|
+
export interface UnresolvedPluginEntry {
|
|
427
|
+
id: string;
|
|
428
|
+
type?: PluginType;
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
export interface PluginDeployerEntry {
|
|
432
|
+
|
|
433
|
+
/**
|
|
434
|
+
* ID (before any resolution)
|
|
435
|
+
*/
|
|
436
|
+
id(): string;
|
|
437
|
+
|
|
438
|
+
/**
|
|
439
|
+
* Original resolved path
|
|
440
|
+
*/
|
|
441
|
+
originalPath(): string;
|
|
442
|
+
|
|
443
|
+
/**
|
|
444
|
+
* Local path on the filesystem.
|
|
445
|
+
*/
|
|
446
|
+
path(): string;
|
|
447
|
+
|
|
448
|
+
/**
|
|
449
|
+
* Get a specific entry
|
|
450
|
+
*/
|
|
451
|
+
getValue<T>(key: string): T;
|
|
452
|
+
|
|
453
|
+
/**
|
|
454
|
+
* Store a value
|
|
455
|
+
*/
|
|
456
|
+
storeValue<T>(key: string, value: T): void;
|
|
457
|
+
|
|
458
|
+
/**
|
|
459
|
+
* Update path
|
|
460
|
+
*/
|
|
461
|
+
updatePath(newPath: string): void;
|
|
462
|
+
|
|
463
|
+
getChanges(): string[];
|
|
464
|
+
|
|
465
|
+
isFile(): boolean;
|
|
466
|
+
|
|
467
|
+
isDirectory(): boolean;
|
|
468
|
+
|
|
469
|
+
/**
|
|
470
|
+
* Resolved if a resolver has handle this plugin
|
|
471
|
+
*/
|
|
472
|
+
isResolved(): boolean;
|
|
473
|
+
|
|
474
|
+
resolvedBy(): string;
|
|
475
|
+
|
|
476
|
+
/**
|
|
477
|
+
* Accepted when a handler is telling this location can go live
|
|
478
|
+
*/
|
|
479
|
+
isAccepted(...types: PluginDeployerEntryType[]): boolean;
|
|
480
|
+
|
|
481
|
+
accept(...types: PluginDeployerEntryType[]): void;
|
|
482
|
+
|
|
483
|
+
hasError(): boolean;
|
|
484
|
+
|
|
485
|
+
type: PluginType
|
|
486
|
+
/**
|
|
487
|
+
* A fs path to a directory where a plugin is located.
|
|
488
|
+
* Depending on a plugin format it can be different from `path`.
|
|
489
|
+
* Use `path` if you want to resolve something within a plugin, like `README.md` file.
|
|
490
|
+
* Use `rootPath` if you want to manipulate the entire plugin location, like delete or move it.
|
|
491
|
+
*/
|
|
492
|
+
rootPath: string
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
export interface PluginDeployerFileHandlerContext {
|
|
496
|
+
|
|
497
|
+
unzip(sourcePath: string, destPath: string): Promise<void>;
|
|
498
|
+
|
|
499
|
+
pluginEntry(): PluginDeployerEntry;
|
|
500
|
+
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
export interface PluginDeployerDirectoryHandlerContext {
|
|
504
|
+
|
|
505
|
+
copy(origin: string, target: string): Promise<void>;
|
|
506
|
+
|
|
507
|
+
pluginEntry(): PluginDeployerEntry;
|
|
508
|
+
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
/**
|
|
512
|
+
* This interface describes a plugin model object, which is populated from package.json.
|
|
513
|
+
*/
|
|
514
|
+
export interface PluginModel {
|
|
515
|
+
id: string;
|
|
516
|
+
name: string;
|
|
517
|
+
publisher: string;
|
|
518
|
+
version: string;
|
|
519
|
+
displayName: string;
|
|
520
|
+
description: string;
|
|
521
|
+
engine: {
|
|
522
|
+
type: PluginEngine;
|
|
523
|
+
version: string;
|
|
524
|
+
};
|
|
525
|
+
entryPoint: PluginEntryPoint;
|
|
526
|
+
packageUri: string;
|
|
527
|
+
/**
|
|
528
|
+
* @deprecated since 1.1.0 - because it lead to problems with getting a relative path
|
|
529
|
+
* needed by Icon Themes to correctly load Fonts, use packageUri instead.
|
|
530
|
+
*/
|
|
531
|
+
packagePath: string;
|
|
532
|
+
iconUrl?: string;
|
|
533
|
+
readmeUrl?: string;
|
|
534
|
+
licenseUrl?: string;
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
export interface PluginEntryPoint {
|
|
538
|
+
frontend?: string;
|
|
539
|
+
backend?: string;
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
/**
|
|
543
|
+
* This interface describes some static plugin contributions.
|
|
544
|
+
*/
|
|
545
|
+
export interface PluginContribution {
|
|
546
|
+
activationEvents?: string[];
|
|
547
|
+
configuration?: PreferenceSchema[];
|
|
548
|
+
configurationDefaults?: PreferenceSchemaProperties;
|
|
549
|
+
languages?: LanguageContribution[];
|
|
550
|
+
grammars?: GrammarsContribution[];
|
|
551
|
+
customEditors?: CustomEditor[];
|
|
552
|
+
viewsContainers?: { [location: string]: ViewContainer[] };
|
|
553
|
+
views?: { [location: string]: View[] };
|
|
554
|
+
viewsWelcome?: ViewWelcome[];
|
|
555
|
+
commands?: PluginCommand[];
|
|
556
|
+
menus?: { [location: string]: Menu[] };
|
|
557
|
+
submenus?: Submenu[];
|
|
558
|
+
keybindings?: Keybinding[];
|
|
559
|
+
debuggers?: DebuggerContribution[];
|
|
560
|
+
snippets?: SnippetContribution[];
|
|
561
|
+
themes?: ThemeContribution[];
|
|
562
|
+
iconThemes?: IconThemeContribution[];
|
|
563
|
+
colors?: ColorDefinition[];
|
|
564
|
+
taskDefinitions?: TaskDefinition[];
|
|
565
|
+
problemMatchers?: ProblemMatcherContribution[];
|
|
566
|
+
problemPatterns?: ProblemPatternContribution[];
|
|
567
|
+
resourceLabelFormatters?: ResourceLabelFormatter[];
|
|
568
|
+
localizations?: Localization[];
|
|
569
|
+
terminalProfiles?: TerminalProfile[];
|
|
570
|
+
}
|
|
571
|
+
|
|
572
|
+
export interface TerminalProfile {
|
|
573
|
+
title: string,
|
|
574
|
+
id: string,
|
|
575
|
+
icon?: string
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
export interface Localization {
|
|
579
|
+
languageId: string;
|
|
580
|
+
languageName?: string;
|
|
581
|
+
localizedLanguageName?: string;
|
|
582
|
+
translations: Translation[];
|
|
583
|
+
minimalTranslations?: { [key: string]: string };
|
|
584
|
+
}
|
|
585
|
+
|
|
586
|
+
export interface Translation {
|
|
587
|
+
id: string;
|
|
588
|
+
path: string;
|
|
589
|
+
version: string;
|
|
590
|
+
contents: { [scope: string]: { [key: string]: string } }
|
|
591
|
+
}
|
|
592
|
+
|
|
593
|
+
export interface SnippetContribution {
|
|
594
|
+
uri: string
|
|
595
|
+
source: string
|
|
596
|
+
language?: string
|
|
597
|
+
}
|
|
598
|
+
|
|
599
|
+
export type UiTheme = 'vs' | 'vs-dark' | 'hc-black';
|
|
600
|
+
|
|
601
|
+
export interface ThemeContribution {
|
|
602
|
+
id?: string;
|
|
603
|
+
label?: string;
|
|
604
|
+
description?: string;
|
|
605
|
+
uri: string;
|
|
606
|
+
uiTheme?: UiTheme;
|
|
607
|
+
}
|
|
608
|
+
|
|
609
|
+
export interface IconThemeContribution {
|
|
610
|
+
id: string;
|
|
611
|
+
label?: string;
|
|
612
|
+
description?: string;
|
|
613
|
+
uri: string;
|
|
614
|
+
uiTheme?: UiTheme;
|
|
615
|
+
}
|
|
616
|
+
|
|
617
|
+
export interface GrammarsContribution {
|
|
618
|
+
format: 'json' | 'plist';
|
|
619
|
+
language?: string;
|
|
620
|
+
scope: string;
|
|
621
|
+
grammar?: string | object;
|
|
622
|
+
grammarLocation?: string;
|
|
623
|
+
embeddedLanguages?: ScopeMap;
|
|
624
|
+
tokenTypes?: ScopeMap;
|
|
625
|
+
injectTo?: string[];
|
|
626
|
+
balancedBracketScopes?: string[];
|
|
627
|
+
unbalancedBracketScopes?: string[];
|
|
628
|
+
}
|
|
629
|
+
|
|
630
|
+
/**
|
|
631
|
+
* The language contribution
|
|
632
|
+
*/
|
|
633
|
+
export interface LanguageContribution {
|
|
634
|
+
id: string;
|
|
635
|
+
extensions?: string[];
|
|
636
|
+
filenames?: string[];
|
|
637
|
+
filenamePatterns?: string[];
|
|
638
|
+
firstLine?: string;
|
|
639
|
+
aliases?: string[];
|
|
640
|
+
mimetypes?: string[];
|
|
641
|
+
configuration?: LanguageConfiguration;
|
|
642
|
+
}
|
|
643
|
+
|
|
644
|
+
export interface LanguageConfiguration {
|
|
645
|
+
brackets?: CharacterPair[];
|
|
646
|
+
indentationRules?: IndentationRules;
|
|
647
|
+
surroundingPairs?: AutoClosingPair[];
|
|
648
|
+
autoClosingPairs?: AutoClosingPairConditional[];
|
|
649
|
+
comments?: CommentRule;
|
|
650
|
+
folding?: FoldingRules;
|
|
651
|
+
wordPattern?: string;
|
|
652
|
+
onEnterRules?: OnEnterRule[];
|
|
653
|
+
}
|
|
654
|
+
|
|
655
|
+
/**
|
|
656
|
+
* This interface describes a package.json debuggers contribution section object.
|
|
657
|
+
*/
|
|
658
|
+
export interface DebuggerContribution extends PlatformSpecificAdapterContribution {
|
|
659
|
+
type: string,
|
|
660
|
+
label?: string,
|
|
661
|
+
languages?: string[],
|
|
662
|
+
enableBreakpointsFor?: {
|
|
663
|
+
languageIds: string[]
|
|
664
|
+
},
|
|
665
|
+
configurationAttributes?: IJSONSchema[],
|
|
666
|
+
configurationSnippets?: IJSONSchemaSnippet[],
|
|
667
|
+
variables?: ScopeMap,
|
|
668
|
+
adapterExecutableCommand?: string
|
|
669
|
+
win?: PlatformSpecificAdapterContribution;
|
|
670
|
+
winx86?: PlatformSpecificAdapterContribution;
|
|
671
|
+
windows?: PlatformSpecificAdapterContribution;
|
|
672
|
+
osx?: PlatformSpecificAdapterContribution;
|
|
673
|
+
linux?: PlatformSpecificAdapterContribution;
|
|
674
|
+
}
|
|
675
|
+
|
|
676
|
+
export interface IndentationRules {
|
|
677
|
+
increaseIndentPattern: string;
|
|
678
|
+
decreaseIndentPattern: string;
|
|
679
|
+
unIndentedLinePattern?: string;
|
|
680
|
+
indentNextLinePattern?: string;
|
|
681
|
+
}
|
|
682
|
+
export interface AutoClosingPair {
|
|
683
|
+
close: string;
|
|
684
|
+
open: string;
|
|
685
|
+
}
|
|
686
|
+
|
|
687
|
+
export interface AutoClosingPairConditional extends AutoClosingPair {
|
|
688
|
+
notIn?: string[];
|
|
689
|
+
}
|
|
690
|
+
|
|
691
|
+
export interface FoldingMarkers {
|
|
692
|
+
start: string;
|
|
693
|
+
end: string;
|
|
694
|
+
}
|
|
695
|
+
|
|
696
|
+
export interface FoldingRules {
|
|
697
|
+
offSide?: boolean;
|
|
698
|
+
markers?: FoldingMarkers;
|
|
699
|
+
}
|
|
700
|
+
|
|
701
|
+
export interface OnEnterRule {
|
|
702
|
+
beforeText: string;
|
|
703
|
+
afterText?: string;
|
|
704
|
+
previousLineText?: string;
|
|
705
|
+
action: EnterAction;
|
|
706
|
+
}
|
|
707
|
+
|
|
708
|
+
export interface EnterAction {
|
|
709
|
+
indent: 'none' | 'indent' | 'outdent' | 'indentOutdent';
|
|
710
|
+
appendText?: string;
|
|
711
|
+
removeText?: number;
|
|
712
|
+
}
|
|
713
|
+
|
|
714
|
+
/**
|
|
715
|
+
* Custom Editors contribution
|
|
716
|
+
*/
|
|
717
|
+
export interface CustomEditor {
|
|
718
|
+
viewType: string;
|
|
719
|
+
displayName: string;
|
|
720
|
+
selector: CustomEditorSelector[];
|
|
721
|
+
priority: CustomEditorPriority;
|
|
722
|
+
}
|
|
723
|
+
|
|
724
|
+
/**
|
|
725
|
+
* Views Containers contribution
|
|
726
|
+
*/
|
|
727
|
+
export interface ViewContainer {
|
|
728
|
+
id: string;
|
|
729
|
+
title: string;
|
|
730
|
+
iconUrl: string;
|
|
731
|
+
themeIcon?: string;
|
|
732
|
+
}
|
|
733
|
+
|
|
734
|
+
/**
|
|
735
|
+
* View contribution
|
|
736
|
+
*/
|
|
737
|
+
export interface View {
|
|
738
|
+
id: string;
|
|
739
|
+
name: string;
|
|
740
|
+
when?: string;
|
|
741
|
+
type?: string;
|
|
742
|
+
}
|
|
743
|
+
|
|
744
|
+
/**
|
|
745
|
+
* View Welcome contribution
|
|
746
|
+
*/
|
|
747
|
+
export interface ViewWelcome {
|
|
748
|
+
view: string;
|
|
749
|
+
content: string;
|
|
750
|
+
when?: string;
|
|
751
|
+
order: number;
|
|
752
|
+
}
|
|
753
|
+
|
|
754
|
+
export interface PluginCommand {
|
|
755
|
+
command: string;
|
|
756
|
+
title: string;
|
|
757
|
+
originalTitle?: string;
|
|
758
|
+
category?: string;
|
|
759
|
+
iconUrl?: IconUrl;
|
|
760
|
+
themeIcon?: string;
|
|
761
|
+
enablement?: string;
|
|
762
|
+
}
|
|
763
|
+
|
|
764
|
+
export type IconUrl = string | { light: string; dark: string; };
|
|
765
|
+
|
|
766
|
+
/**
|
|
767
|
+
* Menu contribution
|
|
768
|
+
*/
|
|
769
|
+
export interface Menu {
|
|
770
|
+
command?: string;
|
|
771
|
+
submenu?: string
|
|
772
|
+
alt?: string;
|
|
773
|
+
group?: string;
|
|
774
|
+
when?: string;
|
|
775
|
+
}
|
|
776
|
+
|
|
777
|
+
export interface Submenu {
|
|
778
|
+
id: string;
|
|
779
|
+
label: string;
|
|
780
|
+
icon?: IconUrl;
|
|
781
|
+
}
|
|
782
|
+
|
|
783
|
+
/**
|
|
784
|
+
* Keybinding contribution
|
|
785
|
+
*/
|
|
786
|
+
export interface Keybinding {
|
|
787
|
+
keybinding?: string;
|
|
788
|
+
command: string;
|
|
789
|
+
when?: string;
|
|
790
|
+
mac?: string;
|
|
791
|
+
linux?: string;
|
|
792
|
+
win?: string;
|
|
793
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
794
|
+
args?: any;
|
|
795
|
+
}
|
|
796
|
+
|
|
797
|
+
/**
|
|
798
|
+
* This interface describes a plugin lifecycle object.
|
|
799
|
+
*/
|
|
800
|
+
export interface PluginLifecycle {
|
|
801
|
+
startMethod: string;
|
|
802
|
+
stopMethod: string;
|
|
803
|
+
/**
|
|
804
|
+
* Frontend module name, frontend plugin should expose this name.
|
|
805
|
+
*/
|
|
806
|
+
frontendModuleName?: string;
|
|
807
|
+
/**
|
|
808
|
+
* Path to the script which should do some initialization before frontend plugin is loaded.
|
|
809
|
+
*/
|
|
810
|
+
frontendInitPath?: string;
|
|
811
|
+
/**
|
|
812
|
+
* Path to the script which should do some initialization before backend plugin is loaded.
|
|
813
|
+
*/
|
|
814
|
+
backendInitPath?: string;
|
|
815
|
+
}
|
|
816
|
+
|
|
817
|
+
/**
|
|
818
|
+
* The export function of initialization module of backend plugin.
|
|
819
|
+
*/
|
|
820
|
+
export interface BackendInitializationFn {
|
|
821
|
+
(apiFactory: PluginAPIFactory, plugin: Plugin): void;
|
|
822
|
+
}
|
|
823
|
+
|
|
824
|
+
export interface BackendLoadingFn {
|
|
825
|
+
(rpc: RPCProtocol, plugin: Plugin): void;
|
|
826
|
+
}
|
|
827
|
+
|
|
828
|
+
export interface PluginContext {
|
|
829
|
+
subscriptions: Disposable[];
|
|
830
|
+
}
|
|
831
|
+
|
|
832
|
+
export interface ExtensionContext {
|
|
833
|
+
subscriptions: Disposable[];
|
|
834
|
+
}
|
|
835
|
+
|
|
836
|
+
export interface PluginMetadata {
|
|
837
|
+
host: string;
|
|
838
|
+
model: PluginModel;
|
|
839
|
+
lifecycle: PluginLifecycle;
|
|
840
|
+
isUnderDevelopment?: boolean;
|
|
841
|
+
outOfSync: boolean;
|
|
842
|
+
}
|
|
843
|
+
|
|
844
|
+
export const MetadataProcessor = Symbol('MetadataProcessor');
|
|
845
|
+
export interface MetadataProcessor {
|
|
846
|
+
process(pluginMetadata: PluginMetadata): void;
|
|
847
|
+
}
|
|
848
|
+
|
|
849
|
+
export function getPluginId(plugin: PluginPackage | PluginModel): string {
|
|
850
|
+
return `${plugin.publisher}_${plugin.name}`.replace(/\W/g, '_');
|
|
851
|
+
}
|
|
852
|
+
|
|
853
|
+
export function buildFrontendModuleName(plugin: PluginPackage | PluginModel): string {
|
|
854
|
+
return `${plugin.publisher}_${plugin.name}`.replace(/\W/g, '_');
|
|
855
|
+
}
|
|
856
|
+
|
|
857
|
+
export const HostedPluginClient = Symbol('HostedPluginClient');
|
|
858
|
+
export interface HostedPluginClient {
|
|
859
|
+
postMessage(pluginHost: string, buffer: Uint8Array): Promise<void>;
|
|
860
|
+
|
|
861
|
+
log(logPart: LogPart): void;
|
|
862
|
+
|
|
863
|
+
onDidDeploy(): void;
|
|
864
|
+
}
|
|
865
|
+
|
|
866
|
+
export interface PluginDependencies {
|
|
867
|
+
metadata: PluginMetadata
|
|
868
|
+
/**
|
|
869
|
+
* Actual listing of plugin dependencies.
|
|
870
|
+
* Mapping from {@link PluginIdentifiers.UnversionedId external representation} of plugin identity to a string
|
|
871
|
+
* that can be used to identify the resolver for the specific plugin case, e.g. with scheme `vscode://<id>`.
|
|
872
|
+
*/
|
|
873
|
+
mapping?: Map<string, string>
|
|
874
|
+
}
|
|
875
|
+
|
|
876
|
+
export const PluginDeployerHandler = Symbol('PluginDeployerHandler');
|
|
877
|
+
export interface PluginDeployerHandler {
|
|
878
|
+
deployFrontendPlugins(frontendPlugins: PluginDeployerEntry[]): Promise<number | undefined>;
|
|
879
|
+
deployBackendPlugins(backendPlugins: PluginDeployerEntry[]): Promise<number | undefined>;
|
|
880
|
+
|
|
881
|
+
getDeployedPluginsById(pluginId: string): DeployedPlugin[];
|
|
882
|
+
|
|
883
|
+
getDeployedPlugin(pluginId: PluginIdentifiers.VersionedId): DeployedPlugin | undefined;
|
|
884
|
+
/**
|
|
885
|
+
* Removes the plugin from the location it originally resided on disk.
|
|
886
|
+
* Unless `--uncompressed-plugins-in-place` is passed to the CLI, this operation is safe.
|
|
887
|
+
*/
|
|
888
|
+
uninstallPlugin(pluginId: PluginIdentifiers.VersionedId): Promise<boolean>;
|
|
889
|
+
/**
|
|
890
|
+
* Removes the plugin from the locations to which it had been deployed.
|
|
891
|
+
* This operation is not safe - references to deleted assets may remain.
|
|
892
|
+
*/
|
|
893
|
+
undeployPlugin(pluginId: PluginIdentifiers.VersionedId): Promise<boolean>;
|
|
894
|
+
|
|
895
|
+
getPluginDependencies(pluginToBeInstalled: PluginDeployerEntry): Promise<PluginDependencies | undefined>;
|
|
896
|
+
}
|
|
897
|
+
|
|
898
|
+
export interface GetDeployedPluginsParams {
|
|
899
|
+
pluginIds: PluginIdentifiers.VersionedId[]
|
|
900
|
+
}
|
|
901
|
+
|
|
902
|
+
export interface DeployedPlugin {
|
|
903
|
+
/**
|
|
904
|
+
* defaults to system
|
|
905
|
+
*/
|
|
906
|
+
type?: PluginType;
|
|
907
|
+
metadata: PluginMetadata;
|
|
908
|
+
contributes?: PluginContribution;
|
|
909
|
+
}
|
|
910
|
+
|
|
911
|
+
export const HostedPluginServer = Symbol('HostedPluginServer');
|
|
912
|
+
export interface HostedPluginServer extends JsonRpcServer<HostedPluginClient> {
|
|
913
|
+
|
|
914
|
+
getDeployedPluginIds(): Promise<PluginIdentifiers.VersionedId[]>;
|
|
915
|
+
|
|
916
|
+
getUninstalledPluginIds(): Promise<readonly PluginIdentifiers.VersionedId[]>;
|
|
917
|
+
|
|
918
|
+
getDeployedPlugins(params: GetDeployedPluginsParams): Promise<DeployedPlugin[]>;
|
|
919
|
+
|
|
920
|
+
getExtPluginAPI(): Promise<ExtPluginApi[]>;
|
|
921
|
+
|
|
922
|
+
onMessage(targetHost: string, message: Uint8Array): Promise<void>;
|
|
923
|
+
|
|
924
|
+
}
|
|
925
|
+
|
|
926
|
+
export const PLUGIN_HOST_BACKEND = 'main';
|
|
927
|
+
|
|
928
|
+
export interface WorkspaceStorageKind {
|
|
929
|
+
workspace?: string | undefined;
|
|
930
|
+
roots: string[];
|
|
931
|
+
}
|
|
932
|
+
export type GlobalStorageKind = undefined;
|
|
933
|
+
export type PluginStorageKind = GlobalStorageKind | WorkspaceStorageKind;
|
|
934
|
+
|
|
935
|
+
export interface PluginDeployOptions {
|
|
936
|
+
version: string;
|
|
937
|
+
/** Instructs the deployer to ignore any existing plugins with different versions */
|
|
938
|
+
ignoreOtherVersions?: boolean;
|
|
939
|
+
}
|
|
940
|
+
|
|
941
|
+
/**
|
|
942
|
+
* The JSON-RPC workspace interface.
|
|
943
|
+
*/
|
|
944
|
+
export const pluginServerJsonRpcPath = '/services/plugin-ext';
|
|
945
|
+
export const PluginServer = Symbol('PluginServer');
|
|
946
|
+
export interface PluginServer {
|
|
947
|
+
|
|
948
|
+
/**
|
|
949
|
+
* Deploy a plugin.
|
|
950
|
+
*
|
|
951
|
+
* @param type whether a plugin is installed by a system or a user, defaults to a user
|
|
952
|
+
*/
|
|
953
|
+
deploy(pluginEntry: string, type?: PluginType, options?: PluginDeployOptions): Promise<void>;
|
|
954
|
+
uninstall(pluginId: PluginIdentifiers.VersionedId): Promise<void>;
|
|
955
|
+
undeploy(pluginId: PluginIdentifiers.VersionedId): Promise<void>;
|
|
956
|
+
|
|
957
|
+
setStorageValue(key: string, value: KeysToAnyValues, kind: PluginStorageKind): Promise<boolean>;
|
|
958
|
+
getStorageValue(key: string, kind: PluginStorageKind): Promise<KeysToAnyValues>;
|
|
959
|
+
getAllStorageValues(kind: PluginStorageKind): Promise<KeysToKeysToAnyValue>;
|
|
960
|
+
}
|
|
961
|
+
|
|
962
|
+
export const ServerPluginRunner = Symbol('ServerPluginRunner');
|
|
963
|
+
export interface ServerPluginRunner {
|
|
964
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
965
|
+
acceptMessage(pluginHostId: string, jsonMessage: Uint8Array): boolean;
|
|
966
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
967
|
+
onMessage(pluginHostId: string, jsonMessage: Uint8Array): void;
|
|
968
|
+
setClient(client: HostedPluginClient): void;
|
|
969
|
+
setDefault(defaultRunner: ServerPluginRunner): void;
|
|
970
|
+
clientClosed(): void;
|
|
971
|
+
|
|
972
|
+
/**
|
|
973
|
+
* Provides additional deployed plugins.
|
|
974
|
+
*/
|
|
975
|
+
getExtraDeployedPlugins(): Promise<DeployedPlugin[]>;
|
|
976
|
+
|
|
977
|
+
/**
|
|
978
|
+
* Provides additional plugin ids.
|
|
979
|
+
*/
|
|
980
|
+
getExtraDeployedPluginIds(): Promise<PluginIdentifiers.VersionedId[]>;
|
|
981
|
+
|
|
982
|
+
}
|
|
983
|
+
|
|
984
|
+
export const PluginHostEnvironmentVariable = Symbol('PluginHostEnvironmentVariable');
|
|
985
|
+
export interface PluginHostEnvironmentVariable {
|
|
986
|
+
process(env: NodeJS.ProcessEnv): void;
|
|
987
|
+
}
|