@theia/plugin-ext 1.34.2 → 1.34.3
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.d.ts.map +1 -1
- package/lib/main/browser/main-file-system-event-service.js +65 -68
- package/lib/main/browser/main-file-system-event-service.js.map +1 -1
- 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.d.ts.map +1 -1
- package/lib/plugin/types-impl.js +2956 -2953
- package/lib/plugin/types-impl.js.map +1 -1
- 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 -79
- 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 -3404
- 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,1387 +1,1387 @@
|
|
|
1
|
-
// *****************************************************************************
|
|
2
|
-
// Copyright (C) 2018-2022 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
|
-
|
|
17
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
18
|
-
/* tslint:disable:typedef */
|
|
19
|
-
|
|
20
|
-
import type * as theia from '@theia/plugin';
|
|
21
|
-
import { CommandRegistryImpl } from './command-registry';
|
|
22
|
-
import { Emitter } from '@theia/core/lib/common/event';
|
|
23
|
-
import { CancellationError, CancellationToken, CancellationTokenSource } from '@theia/core/lib/common/cancellation';
|
|
24
|
-
import { QuickOpenExtImpl } from './quick-open';
|
|
25
|
-
import {
|
|
26
|
-
MAIN_RPC_CONTEXT,
|
|
27
|
-
Plugin as InternalPlugin,
|
|
28
|
-
PluginManager,
|
|
29
|
-
PluginAPIFactory,
|
|
30
|
-
MainMessageType,
|
|
31
|
-
DebugConfigurationProviderTriggerKind,
|
|
32
|
-
PLUGIN_RPC_CONTEXT
|
|
33
|
-
} from '../common/plugin-api-rpc';
|
|
34
|
-
import { RPCProtocol } from '../common/rpc-protocol';
|
|
35
|
-
import { MessageRegistryExt } from './message-registry';
|
|
36
|
-
import { StatusBarMessageRegistryExt } from './status-bar-message-registry';
|
|
37
|
-
import { WindowStateExtImpl } from './window-state';
|
|
38
|
-
import { WorkspaceExtImpl } from './workspace';
|
|
39
|
-
import { EnvExtImpl } from './env';
|
|
40
|
-
import { QueryParameters } from '../common/env';
|
|
41
|
-
import {
|
|
42
|
-
ConfigurationTarget,
|
|
43
|
-
Disposable,
|
|
44
|
-
Position,
|
|
45
|
-
Range,
|
|
46
|
-
Selection,
|
|
47
|
-
ViewColumn,
|
|
48
|
-
TextEditorSelectionChangeKind,
|
|
49
|
-
EndOfLine,
|
|
50
|
-
SnippetString,
|
|
51
|
-
ThemeColor,
|
|
52
|
-
ThemeIcon,
|
|
53
|
-
TextEditorRevealType,
|
|
54
|
-
TextEditorLineNumbersStyle,
|
|
55
|
-
DecorationRangeBehavior,
|
|
56
|
-
OverviewRulerLane,
|
|
57
|
-
StatusBarAlignment,
|
|
58
|
-
RelativePattern,
|
|
59
|
-
IndentAction,
|
|
60
|
-
CompletionItem,
|
|
61
|
-
CompletionItemKind,
|
|
62
|
-
CompletionList,
|
|
63
|
-
TextEdit,
|
|
64
|
-
SnippetTextEdit,
|
|
65
|
-
CompletionTriggerKind,
|
|
66
|
-
Diagnostic,
|
|
67
|
-
DiagnosticRelatedInformation,
|
|
68
|
-
DebugConsoleMode,
|
|
69
|
-
DiagnosticSeverity,
|
|
70
|
-
DiagnosticTag,
|
|
71
|
-
CompletionItemTag,
|
|
72
|
-
Location,
|
|
73
|
-
LogLevel,
|
|
74
|
-
Progress,
|
|
75
|
-
ProgressOptions,
|
|
76
|
-
ProgressLocation,
|
|
77
|
-
ParameterInformation,
|
|
78
|
-
SignatureInformation,
|
|
79
|
-
SignatureHelp,
|
|
80
|
-
SignatureHelpTriggerKind,
|
|
81
|
-
Hover,
|
|
82
|
-
EvaluatableExpression,
|
|
83
|
-
InlineValueEvaluatableExpression,
|
|
84
|
-
InlineValueText,
|
|
85
|
-
InlineValueVariableLookup,
|
|
86
|
-
InlineValueContext,
|
|
87
|
-
DocumentHighlightKind,
|
|
88
|
-
DocumentHighlight,
|
|
89
|
-
DocumentLink,
|
|
90
|
-
CodeLens,
|
|
91
|
-
CodeActionKind,
|
|
92
|
-
CodeActionTrigger,
|
|
93
|
-
CodeActionTriggerKind,
|
|
94
|
-
TextDocumentSaveReason,
|
|
95
|
-
CodeAction,
|
|
96
|
-
DataTransferItem,
|
|
97
|
-
DataTransfer,
|
|
98
|
-
TreeItem,
|
|
99
|
-
TreeItemCollapsibleState,
|
|
100
|
-
DocumentSymbol,
|
|
101
|
-
SymbolTag,
|
|
102
|
-
WorkspaceEdit,
|
|
103
|
-
SymbolInformation,
|
|
104
|
-
FileType,
|
|
105
|
-
FileChangeType,
|
|
106
|
-
ShellQuoting,
|
|
107
|
-
ShellExecution,
|
|
108
|
-
ProcessExecution,
|
|
109
|
-
CustomExecution,
|
|
110
|
-
TaskScope,
|
|
111
|
-
TaskPanelKind,
|
|
112
|
-
TaskRevealKind,
|
|
113
|
-
TaskGroup,
|
|
114
|
-
Task,
|
|
115
|
-
Task2,
|
|
116
|
-
DebugAdapterExecutable,
|
|
117
|
-
DebugAdapterServer,
|
|
118
|
-
DebugAdapterNamedPipeServer,
|
|
119
|
-
DebugAdapterInlineImplementation,
|
|
120
|
-
Breakpoint,
|
|
121
|
-
SourceBreakpoint,
|
|
122
|
-
FunctionBreakpoint,
|
|
123
|
-
FoldingRange,
|
|
124
|
-
FoldingRangeKind,
|
|
125
|
-
SelectionRange,
|
|
126
|
-
Color,
|
|
127
|
-
ColorInformation,
|
|
128
|
-
ColorPresentation,
|
|
129
|
-
OperatingSystem,
|
|
130
|
-
WebviewPanelTargetArea,
|
|
131
|
-
UIKind,
|
|
132
|
-
FileSystemError,
|
|
133
|
-
CommentThreadCollapsibleState,
|
|
134
|
-
QuickInputButtons,
|
|
135
|
-
QuickPickItemKind,
|
|
136
|
-
CommentMode,
|
|
137
|
-
CallHierarchyItem,
|
|
138
|
-
CallHierarchyIncomingCall,
|
|
139
|
-
CallHierarchyOutgoingCall,
|
|
140
|
-
TypeHierarchyItem,
|
|
141
|
-
TimelineItem,
|
|
142
|
-
EnvironmentVariableMutatorType,
|
|
143
|
-
SemanticTokensLegend,
|
|
144
|
-
SemanticTokensBuilder,
|
|
145
|
-
SemanticTokens,
|
|
146
|
-
SemanticTokensEdits,
|
|
147
|
-
SemanticTokensEdit,
|
|
148
|
-
ColorThemeKind,
|
|
149
|
-
SourceControlInputBoxValidationType,
|
|
150
|
-
URI,
|
|
151
|
-
FileDecoration,
|
|
152
|
-
ExtensionMode,
|
|
153
|
-
LinkedEditingRanges,
|
|
154
|
-
LanguageStatusSeverity,
|
|
155
|
-
TextDocumentChangeReason,
|
|
156
|
-
InputBoxValidationSeverity,
|
|
157
|
-
TerminalLink,
|
|
158
|
-
TerminalLocation,
|
|
159
|
-
TerminalProfile,
|
|
160
|
-
InlayHint,
|
|
161
|
-
InlayHintKind,
|
|
162
|
-
InlayHintLabelPart,
|
|
163
|
-
NotebookCell,
|
|
164
|
-
NotebookCellKind,
|
|
165
|
-
NotebookCellStatusBarAlignment,
|
|
166
|
-
NotebookEditorRevealType,
|
|
167
|
-
NotebookControllerAffinity,
|
|
168
|
-
NotebookCellData,
|
|
169
|
-
NotebookCellOutput,
|
|
170
|
-
NotebookCellOutputItem,
|
|
171
|
-
NotebookData,
|
|
172
|
-
NotebookDocument,
|
|
173
|
-
NotebookRange,
|
|
174
|
-
NotebookCellStatusBarItem,
|
|
175
|
-
NotebookEdit,
|
|
176
|
-
TestRunProfileKind,
|
|
177
|
-
TestTag,
|
|
178
|
-
TestRunRequest,
|
|
179
|
-
TestMessage,
|
|
180
|
-
ExtensionKind,
|
|
181
|
-
InlineCompletionItem,
|
|
182
|
-
InlineCompletionList,
|
|
183
|
-
InlineCompletionTriggerKind,
|
|
184
|
-
TextTabInput,
|
|
185
|
-
CustomEditorTabInput,
|
|
186
|
-
NotebookDiffEditorTabInput,
|
|
187
|
-
NotebookEditorTabInput,
|
|
188
|
-
TerminalEditorTabInput,
|
|
189
|
-
TextDiffTabInput,
|
|
190
|
-
TextMergeTabInput,
|
|
191
|
-
WebviewEditorTabInput
|
|
192
|
-
} from './types-impl';
|
|
193
|
-
import { AuthenticationExtImpl } from './authentication-ext';
|
|
194
|
-
import { SymbolKind } from '../common/plugin-api-rpc-model';
|
|
195
|
-
import { EditorsAndDocumentsExtImpl } from './editors-and-documents';
|
|
196
|
-
import { TextEditorsExtImpl } from './text-editors';
|
|
197
|
-
import { DocumentsExtImpl } from './documents';
|
|
198
|
-
import { TextEditorCursorStyle } from '../common/editor-options';
|
|
199
|
-
import { PreferenceRegistryExtImpl } from './preference-registry';
|
|
200
|
-
import { OutputChannelRegistryExtImpl } from './output-channel-registry';
|
|
201
|
-
import { TerminalServiceExtImpl, TerminalExtImpl } from './terminal-ext';
|
|
202
|
-
import { LanguagesExtImpl } from './languages';
|
|
203
|
-
import { fromDocumentSelector, pluginToPluginInfo, fromGlobPattern } from './type-converters';
|
|
204
|
-
import { DialogsExtImpl } from './dialogs';
|
|
205
|
-
import { NotificationExtImpl } from './notification';
|
|
206
|
-
import { score } from '@theia/editor/lib/common/language-selector';
|
|
207
|
-
import { MarkdownString } from './markdown-string';
|
|
208
|
-
import { TreeViewsExtImpl } from './tree/tree-views';
|
|
209
|
-
import { ConnectionImpl } from '../common/connection';
|
|
210
|
-
import { TasksExtImpl } from './tasks/tasks';
|
|
211
|
-
import { DebugExtImpl } from './debug/debug-ext';
|
|
212
|
-
import { FileSystemExtImpl } from './file-system-ext-impl';
|
|
213
|
-
import { ScmExtImpl } from './scm';
|
|
214
|
-
import { DecorationsExtImpl } from './decorations';
|
|
215
|
-
import { TextEditorExt } from './text-editor';
|
|
216
|
-
import { ClipboardExt } from './clipboard-ext';
|
|
217
|
-
import { WebviewsExtImpl } from './webviews';
|
|
218
|
-
import { ExtHostFileSystemEventService } from './file-system-event-service-ext-impl';
|
|
219
|
-
import { LabelServiceExtImpl } from '../plugin/label-service';
|
|
220
|
-
import {
|
|
221
|
-
createRunProfile,
|
|
222
|
-
createTestRun,
|
|
223
|
-
testItemCollection,
|
|
224
|
-
createTestItem
|
|
225
|
-
} from './stubs/tests-api';
|
|
226
|
-
import { TimelineExtImpl } from './timeline';
|
|
227
|
-
import { ThemingExtImpl } from './theming';
|
|
228
|
-
import { CommentsExtImpl } from './comments';
|
|
229
|
-
import { CustomEditorsExtImpl } from './custom-editors';
|
|
230
|
-
import { WebviewViewsExtImpl } from './webview-views';
|
|
231
|
-
import { PluginPackage } from '../common';
|
|
232
|
-
import { Endpoint } from '@theia/core/lib/browser/endpoint';
|
|
233
|
-
import { FilePermission } from '@theia/filesystem/lib/common/files';
|
|
234
|
-
import { TabsExtImpl } from './tabs';
|
|
235
|
-
|
|
236
|
-
export function createAPIFactory(
|
|
237
|
-
rpc: RPCProtocol,
|
|
238
|
-
pluginManager: PluginManager,
|
|
239
|
-
envExt: EnvExtImpl,
|
|
240
|
-
debugExt: DebugExtImpl,
|
|
241
|
-
preferenceRegistryExt: PreferenceRegistryExtImpl,
|
|
242
|
-
editorsAndDocumentsExt: EditorsAndDocumentsExtImpl,
|
|
243
|
-
workspaceExt: WorkspaceExtImpl,
|
|
244
|
-
messageRegistryExt: MessageRegistryExt,
|
|
245
|
-
clipboard: ClipboardExt,
|
|
246
|
-
webviewExt: WebviewsExtImpl
|
|
247
|
-
): PluginAPIFactory {
|
|
248
|
-
|
|
249
|
-
const authenticationExt = rpc.set(MAIN_RPC_CONTEXT.AUTHENTICATION_EXT, new AuthenticationExtImpl(rpc));
|
|
250
|
-
const commandRegistry = rpc.set(MAIN_RPC_CONTEXT.COMMAND_REGISTRY_EXT, new CommandRegistryImpl(rpc));
|
|
251
|
-
const quickOpenExt = rpc.set(MAIN_RPC_CONTEXT.QUICK_OPEN_EXT, new QuickOpenExtImpl(rpc));
|
|
252
|
-
const dialogsExt = new DialogsExtImpl(rpc);
|
|
253
|
-
const windowStateExt = rpc.set(MAIN_RPC_CONTEXT.WINDOW_STATE_EXT, new WindowStateExtImpl(rpc));
|
|
254
|
-
const notificationExt = rpc.set(MAIN_RPC_CONTEXT.NOTIFICATION_EXT, new NotificationExtImpl(rpc));
|
|
255
|
-
const editors = rpc.set(MAIN_RPC_CONTEXT.TEXT_EDITORS_EXT, new TextEditorsExtImpl(rpc, editorsAndDocumentsExt));
|
|
256
|
-
const documents = rpc.set(MAIN_RPC_CONTEXT.DOCUMENTS_EXT, new DocumentsExtImpl(rpc, editorsAndDocumentsExt));
|
|
257
|
-
const statusBarMessageRegistryExt = new StatusBarMessageRegistryExt(rpc);
|
|
258
|
-
const terminalExt = rpc.set(MAIN_RPC_CONTEXT.TERMINAL_EXT, new TerminalServiceExtImpl(rpc));
|
|
259
|
-
const outputChannelRegistryExt = rpc.set(MAIN_RPC_CONTEXT.OUTPUT_CHANNEL_REGISTRY_EXT, new OutputChannelRegistryExtImpl(rpc));
|
|
260
|
-
const languagesExt = rpc.set(MAIN_RPC_CONTEXT.LANGUAGES_EXT, new LanguagesExtImpl(rpc, documents, commandRegistry));
|
|
261
|
-
const treeViewsExt = rpc.set(MAIN_RPC_CONTEXT.TREE_VIEWS_EXT, new TreeViewsExtImpl(rpc, commandRegistry));
|
|
262
|
-
const tasksExt = rpc.set(MAIN_RPC_CONTEXT.TASKS_EXT, new TasksExtImpl(rpc, terminalExt));
|
|
263
|
-
const connectionExt = rpc.set(MAIN_RPC_CONTEXT.CONNECTION_EXT, new ConnectionImpl(rpc.getProxy(PLUGIN_RPC_CONTEXT.CONNECTION_MAIN)));
|
|
264
|
-
const fileSystemExt = rpc.set(MAIN_RPC_CONTEXT.FILE_SYSTEM_EXT, new FileSystemExtImpl(rpc, languagesExt));
|
|
265
|
-
const extHostFileSystemEvent = rpc.set(MAIN_RPC_CONTEXT.ExtHostFileSystemEventService, new ExtHostFileSystemEventService(rpc, editorsAndDocumentsExt));
|
|
266
|
-
const scmExt = rpc.set(MAIN_RPC_CONTEXT.SCM_EXT, new ScmExtImpl(rpc, commandRegistry));
|
|
267
|
-
const decorationsExt = rpc.set(MAIN_RPC_CONTEXT.DECORATIONS_EXT, new DecorationsExtImpl(rpc));
|
|
268
|
-
const labelServiceExt = rpc.set(MAIN_RPC_CONTEXT.LABEL_SERVICE_EXT, new LabelServiceExtImpl(rpc));
|
|
269
|
-
const timelineExt = rpc.set(MAIN_RPC_CONTEXT.TIMELINE_EXT, new TimelineExtImpl(rpc, commandRegistry));
|
|
270
|
-
const themingExt = rpc.set(MAIN_RPC_CONTEXT.THEMING_EXT, new ThemingExtImpl(rpc));
|
|
271
|
-
const commentsExt = rpc.set(MAIN_RPC_CONTEXT.COMMENTS_EXT, new CommentsExtImpl(rpc, commandRegistry, documents));
|
|
272
|
-
const tabsExt = rpc.set(MAIN_RPC_CONTEXT.TABS_EXT, new TabsExtImpl(rpc));
|
|
273
|
-
const customEditorExt = rpc.set(MAIN_RPC_CONTEXT.CUSTOM_EDITORS_EXT, new CustomEditorsExtImpl(rpc, documents, webviewExt, workspaceExt));
|
|
274
|
-
const webviewViewsExt = rpc.set(MAIN_RPC_CONTEXT.WEBVIEW_VIEWS_EXT, new WebviewViewsExtImpl(rpc, webviewExt));
|
|
275
|
-
rpc.set(MAIN_RPC_CONTEXT.DEBUG_EXT, debugExt);
|
|
276
|
-
|
|
277
|
-
return function (plugin: InternalPlugin): typeof theia {
|
|
278
|
-
const authentication: typeof theia.authentication = {
|
|
279
|
-
registerAuthenticationProvider(id: string, label: string, provider: theia.AuthenticationProvider, options?: theia.AuthenticationProviderOptions): theia.Disposable {
|
|
280
|
-
return authenticationExt.registerAuthenticationProvider(id, label, provider, options);
|
|
281
|
-
},
|
|
282
|
-
getSession(providerId: string, scopes: string[], options: theia.AuthenticationGetSessionOptions) {
|
|
283
|
-
return authenticationExt.getSession(plugin, providerId, scopes, options as any);
|
|
284
|
-
},
|
|
285
|
-
get onDidChangeSessions(): theia.Event<theia.AuthenticationSessionsChangeEvent> {
|
|
286
|
-
return authenticationExt.onDidChangeSessions;
|
|
287
|
-
}
|
|
288
|
-
};
|
|
289
|
-
function commandIsDeclaredInPackage(id: string, model: PluginPackage): boolean {
|
|
290
|
-
const rawCommands = model.contributes?.commands;
|
|
291
|
-
if (!rawCommands) { return false; }
|
|
292
|
-
return Array.isArray(rawCommands) ? rawCommands.some(candidate => candidate.command === id) : rawCommands.command === id;
|
|
293
|
-
}
|
|
294
|
-
const commands: typeof theia.commands = {
|
|
295
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
296
|
-
registerCommand(command: theia.CommandDescription | string, handler?: <T>(...args: any[]) => T | Thenable<T | undefined>, thisArg?: any): Disposable {
|
|
297
|
-
// use of the ID when registering commands
|
|
298
|
-
if (typeof command === 'string') {
|
|
299
|
-
if (handler && commandIsDeclaredInPackage(command, plugin.rawModel)) {
|
|
300
|
-
return commandRegistry.registerHandler(command, handler, thisArg);
|
|
301
|
-
}
|
|
302
|
-
return commandRegistry.registerCommand({ id: command }, handler, thisArg);
|
|
303
|
-
}
|
|
304
|
-
return commandRegistry.registerCommand(command, handler, thisArg);
|
|
305
|
-
},
|
|
306
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
307
|
-
executeCommand<T>(commandId: string, ...args: any[]): PromiseLike<T | undefined> {
|
|
308
|
-
return commandRegistry.executeCommand<T>(commandId, ...args);
|
|
309
|
-
},
|
|
310
|
-
registerTextEditorCommand(command: string, handler: (textEditor: theia.TextEditor, edit: theia.TextEditorEdit, ...arg: any[]) => void, thisArg?: any): Disposable {
|
|
311
|
-
const internalHandler = (...args: any[]): any => {
|
|
312
|
-
const activeTextEditor = editors.getActiveEditor();
|
|
313
|
-
if (!activeTextEditor) {
|
|
314
|
-
console.warn('Cannot execute ' + command + ' because there is no active text editor.');
|
|
315
|
-
return undefined;
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
return activeTextEditor.edit((edit: theia.TextEditorEdit) => {
|
|
319
|
-
args.unshift(activeTextEditor, edit);
|
|
320
|
-
handler.apply(thisArg, args);
|
|
321
|
-
}).then(result => {
|
|
322
|
-
if (!result) {
|
|
323
|
-
console.warn('Edits from command ' + command + ' were not applied.');
|
|
324
|
-
}
|
|
325
|
-
}, err => {
|
|
326
|
-
console.warn('An error occurred while running command ' + command, err);
|
|
327
|
-
});
|
|
328
|
-
};
|
|
329
|
-
return commandIsDeclaredInPackage(command, plugin.rawModel)
|
|
330
|
-
? commandRegistry.registerHandler(command, internalHandler)
|
|
331
|
-
: commandRegistry.registerCommand({ id: command }, internalHandler);
|
|
332
|
-
},
|
|
333
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
334
|
-
registerHandler(commandId: string, handler: (...args: any[]) => any, thisArg?: any): Disposable {
|
|
335
|
-
return commandRegistry.registerHandler(commandId, handler, thisArg);
|
|
336
|
-
},
|
|
337
|
-
getKeyBinding(commandId: string): PromiseLike<theia.CommandKeyBinding[] | undefined> {
|
|
338
|
-
return commandRegistry.getKeyBinding(commandId);
|
|
339
|
-
},
|
|
340
|
-
getCommands(filterInternal: boolean = false): PromiseLike<string[]> {
|
|
341
|
-
return commandRegistry.getCommands(filterInternal);
|
|
342
|
-
},
|
|
343
|
-
registerDiffInformationCommand(command: string, callback: (diff: theia.LineChange[], ...args: any[]) => any, thisArg?: any): Disposable {
|
|
344
|
-
// Dummy implementation.
|
|
345
|
-
return new Disposable(() => { });
|
|
346
|
-
}
|
|
347
|
-
};
|
|
348
|
-
|
|
349
|
-
const { onDidChangeActiveTerminal, onDidChangeTerminalState, onDidCloseTerminal, onDidOpenTerminal } = terminalExt;
|
|
350
|
-
const showInformationMessage = messageRegistryExt.showMessage.bind(messageRegistryExt, MainMessageType.Info);
|
|
351
|
-
const showWarningMessage = messageRegistryExt.showMessage.bind(messageRegistryExt, MainMessageType.Warning);
|
|
352
|
-
const showErrorMessage = messageRegistryExt.showMessage.bind(messageRegistryExt, MainMessageType.Error);
|
|
353
|
-
const window: typeof theia.window = {
|
|
354
|
-
|
|
355
|
-
get activeTerminal(): TerminalExtImpl | undefined {
|
|
356
|
-
return terminalExt.activeTerminal;
|
|
357
|
-
},
|
|
358
|
-
get activeTextEditor(): TextEditorExt | undefined {
|
|
359
|
-
return editors.getActiveEditor();
|
|
360
|
-
},
|
|
361
|
-
get visibleTextEditors(): theia.TextEditor[] {
|
|
362
|
-
return editors.getVisibleTextEditors();
|
|
363
|
-
},
|
|
364
|
-
get terminals(): TerminalExtImpl[] {
|
|
365
|
-
return terminalExt.terminals;
|
|
366
|
-
},
|
|
367
|
-
onDidChangeActiveTerminal,
|
|
368
|
-
onDidChangeActiveTextEditor(listener, thisArg?, disposables?) {
|
|
369
|
-
return editors.onDidChangeActiveTextEditor(listener, thisArg, disposables);
|
|
370
|
-
},
|
|
371
|
-
onDidChangeVisibleTextEditors(listener, thisArg?, disposables?) {
|
|
372
|
-
return editors.onDidChangeVisibleTextEditors(listener, thisArg, disposables);
|
|
373
|
-
},
|
|
374
|
-
onDidChangeTextEditorSelection(listener, thisArg?, disposables?) {
|
|
375
|
-
return editors.onDidChangeTextEditorSelection(listener, thisArg, disposables);
|
|
376
|
-
},
|
|
377
|
-
onDidChangeTextEditorOptions(listener, thisArg?, disposables?) {
|
|
378
|
-
return editors.onDidChangeTextEditorOptions(listener, thisArg, disposables);
|
|
379
|
-
},
|
|
380
|
-
onDidChangeTextEditorViewColumn(listener, thisArg?, disposables?) {
|
|
381
|
-
return editors.onDidChangeTextEditorViewColumn(listener, thisArg, disposables);
|
|
382
|
-
},
|
|
383
|
-
onDidChangeTextEditorVisibleRanges(listener, thisArg?, disposables?) {
|
|
384
|
-
return editors.onDidChangeTextEditorVisibleRanges(listener, thisArg, disposables);
|
|
385
|
-
},
|
|
386
|
-
async showTextDocument(documentArg: theia.TextDocument | URI,
|
|
387
|
-
columnOrOptions?: theia.TextDocumentShowOptions | theia.ViewColumn,
|
|
388
|
-
preserveFocus?: boolean
|
|
389
|
-
): Promise<theia.TextEditor> {
|
|
390
|
-
let documentOptions: theia.TextDocumentShowOptions | undefined;
|
|
391
|
-
const uri: URI = documentArg instanceof URI ? documentArg : documentArg.uri;
|
|
392
|
-
if (typeof columnOrOptions === 'number') {
|
|
393
|
-
documentOptions = {
|
|
394
|
-
viewColumn: columnOrOptions
|
|
395
|
-
};
|
|
396
|
-
} else if (columnOrOptions && (columnOrOptions.preserveFocus || columnOrOptions.preview || columnOrOptions.selection || columnOrOptions.viewColumn)) {
|
|
397
|
-
documentOptions = {
|
|
398
|
-
...columnOrOptions
|
|
399
|
-
};
|
|
400
|
-
}
|
|
401
|
-
if (preserveFocus) {
|
|
402
|
-
if (documentOptions) {
|
|
403
|
-
documentOptions.preserveFocus = preserveFocus;
|
|
404
|
-
} else {
|
|
405
|
-
documentOptions = { preserveFocus };
|
|
406
|
-
}
|
|
407
|
-
}
|
|
408
|
-
await documents.showDocument(uri, documentOptions);
|
|
409
|
-
const textEditor = editors.getVisibleTextEditors().find(editor => editor.document.uri.toString() === uri.toString());
|
|
410
|
-
if (textEditor) {
|
|
411
|
-
return Promise.resolve(textEditor);
|
|
412
|
-
} else {
|
|
413
|
-
throw new Error(`Failed to show text document ${documentArg.toString()}`);
|
|
414
|
-
}
|
|
415
|
-
},
|
|
416
|
-
get visibleNotebookEditors(): theia.NotebookEditor[] {
|
|
417
|
-
return [] as theia.NotebookEditor[];
|
|
418
|
-
},
|
|
419
|
-
onDidChangeVisibleNotebookEditors(listener, thisArg?, disposables?) {
|
|
420
|
-
return Disposable.NULL;
|
|
421
|
-
},
|
|
422
|
-
get activeNotebookEditor(): theia.NotebookEditor | undefined {
|
|
423
|
-
return undefined;
|
|
424
|
-
}, onDidChangeActiveNotebookEditor(listener, thisArg?, disposables?) {
|
|
425
|
-
return Disposable.NULL;
|
|
426
|
-
},
|
|
427
|
-
onDidChangeNotebookEditorSelection(listener, thisArg?, disposables?) {
|
|
428
|
-
return Disposable.NULL;
|
|
429
|
-
},
|
|
430
|
-
onDidChangeNotebookEditorVisibleRanges(listener, thisArg?, disposables?) {
|
|
431
|
-
return Disposable.NULL;
|
|
432
|
-
},
|
|
433
|
-
showNotebookDocument(document: NotebookDocument, options?: theia.NotebookDocumentShowOptions) {
|
|
434
|
-
return Promise.resolve({} as theia.NotebookEditor);
|
|
435
|
-
},
|
|
436
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
437
|
-
showQuickPick(items: any, options?: theia.QuickPickOptions, token?: theia.CancellationToken): any {
|
|
438
|
-
return quickOpenExt.showQuickPick(items, options, token);
|
|
439
|
-
},
|
|
440
|
-
createQuickPick<T extends theia.QuickPickItem>(): theia.QuickPick<T> {
|
|
441
|
-
return quickOpenExt.createQuickPick(plugin);
|
|
442
|
-
},
|
|
443
|
-
showWorkspaceFolderPick(options?: theia.WorkspaceFolderPickOptions): PromiseLike<theia.WorkspaceFolder | undefined> {
|
|
444
|
-
return workspaceExt.pickWorkspaceFolder(options);
|
|
445
|
-
},
|
|
446
|
-
showInformationMessage,
|
|
447
|
-
showWarningMessage,
|
|
448
|
-
showErrorMessage,
|
|
449
|
-
showOpenDialog(options: theia.OpenDialogOptions): PromiseLike<URI[] | undefined> {
|
|
450
|
-
return dialogsExt.showOpenDialog(options);
|
|
451
|
-
},
|
|
452
|
-
showSaveDialog(options: theia.SaveDialogOptions): PromiseLike<URI | undefined> {
|
|
453
|
-
return dialogsExt.showSaveDialog(options);
|
|
454
|
-
},
|
|
455
|
-
showUploadDialog(options: theia.UploadDialogOptions): PromiseLike<URI[] | undefined> {
|
|
456
|
-
return dialogsExt.showUploadDialog(options);
|
|
457
|
-
},
|
|
458
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
459
|
-
setStatusBarMessage(text: string, arg?: number | PromiseLike<any>): Disposable {
|
|
460
|
-
return statusBarMessageRegistryExt.setStatusBarMessage(text, arg);
|
|
461
|
-
},
|
|
462
|
-
showInputBox(options?: theia.InputBoxOptions, token?: theia.CancellationToken): PromiseLike<string | undefined> {
|
|
463
|
-
return quickOpenExt.showInput(options, token);
|
|
464
|
-
},
|
|
465
|
-
createStatusBarItem(alignmentOrId?: theia.StatusBarAlignment | string, priorityOrAlignment?: number | theia.StatusBarAlignment,
|
|
466
|
-
priorityArg?: number): theia.StatusBarItem {
|
|
467
|
-
let id: string | undefined;
|
|
468
|
-
let alignment: number | undefined;
|
|
469
|
-
let priority: number | undefined;
|
|
470
|
-
|
|
471
|
-
if (typeof alignmentOrId === 'string') {
|
|
472
|
-
id = alignmentOrId;
|
|
473
|
-
alignment = priorityOrAlignment;
|
|
474
|
-
priority = priorityArg;
|
|
475
|
-
} else {
|
|
476
|
-
alignment = alignmentOrId;
|
|
477
|
-
priority = priorityOrAlignment;
|
|
478
|
-
}
|
|
479
|
-
|
|
480
|
-
return statusBarMessageRegistryExt.createStatusBarItem(alignment, priority, id);
|
|
481
|
-
},
|
|
482
|
-
createOutputChannel(name: string): theia.OutputChannel {
|
|
483
|
-
return outputChannelRegistryExt.createOutputChannel(name, pluginToPluginInfo(plugin));
|
|
484
|
-
},
|
|
485
|
-
createWebviewPanel(viewType: string,
|
|
486
|
-
title: string,
|
|
487
|
-
showOptions: theia.ViewColumn | theia.WebviewPanelShowOptions,
|
|
488
|
-
options: theia.WebviewPanelOptions & theia.WebviewOptions = {}): theia.WebviewPanel {
|
|
489
|
-
return webviewExt.createWebview(viewType, title, showOptions, options, plugin);
|
|
490
|
-
},
|
|
491
|
-
registerWebviewPanelSerializer(viewType: string, serializer: theia.WebviewPanelSerializer): theia.Disposable {
|
|
492
|
-
return webviewExt.registerWebviewPanelSerializer(viewType, serializer, plugin);
|
|
493
|
-
},
|
|
494
|
-
registerCustomEditorProvider(viewType: string,
|
|
495
|
-
provider: theia.CustomTextEditorProvider | theia.CustomReadonlyEditorProvider,
|
|
496
|
-
options: { webviewOptions?: theia.WebviewPanelOptions, supportsMultipleEditorsPerDocument?: boolean } = {}): theia.Disposable {
|
|
497
|
-
return customEditorExt.registerCustomEditorProvider(viewType, provider, options, plugin);
|
|
498
|
-
},
|
|
499
|
-
registerWebviewViewProvider(viewType: string,
|
|
500
|
-
provider: theia.WebviewViewProvider,
|
|
501
|
-
options?: {
|
|
502
|
-
webviewOptions?: {
|
|
503
|
-
retainContextWhenHidden?: boolean
|
|
504
|
-
}
|
|
505
|
-
}): theia.Disposable {
|
|
506
|
-
return webviewViewsExt.registerWebviewViewProvider(viewType, provider, plugin, options?.webviewOptions);
|
|
507
|
-
},
|
|
508
|
-
get state(): theia.WindowState {
|
|
509
|
-
return windowStateExt.getWindowState();
|
|
510
|
-
},
|
|
511
|
-
onDidChangeWindowState(listener, thisArg?, disposables?): theia.Disposable {
|
|
512
|
-
return windowStateExt.onDidChangeWindowState(listener, thisArg, disposables);
|
|
513
|
-
},
|
|
514
|
-
createTerminal(nameOrOptions: theia.TerminalOptions | theia.ExtensionTerminalOptions | theia.ExtensionTerminalOptions | (string | undefined),
|
|
515
|
-
shellPath?: string,
|
|
516
|
-
shellArgs?: string[] | string): theia.Terminal {
|
|
517
|
-
return terminalExt.createTerminal(nameOrOptions, shellPath, shellArgs);
|
|
518
|
-
},
|
|
519
|
-
onDidChangeTerminalState,
|
|
520
|
-
onDidCloseTerminal,
|
|
521
|
-
onDidOpenTerminal,
|
|
522
|
-
createTextEditorDecorationType(options: theia.DecorationRenderOptions): theia.TextEditorDecorationType {
|
|
523
|
-
return editors.createTextEditorDecorationType(options);
|
|
524
|
-
},
|
|
525
|
-
registerTreeDataProvider<T>(viewId: string, treeDataProvider: theia.TreeDataProvider<T>): Disposable {
|
|
526
|
-
return treeViewsExt.registerTreeDataProvider(plugin, viewId, treeDataProvider);
|
|
527
|
-
},
|
|
528
|
-
createTreeView<T>(viewId: string, options: theia.TreeViewOptions<T>): theia.TreeView<T> {
|
|
529
|
-
return treeViewsExt.createTreeView(plugin, viewId, options);
|
|
530
|
-
},
|
|
531
|
-
withScmProgress<R>(task: (progress: theia.Progress<number>) => Thenable<R>) {
|
|
532
|
-
const options: ProgressOptions = { location: ProgressLocation.SourceControl };
|
|
533
|
-
return notificationExt.withProgress(options, () => task({ report() { /* noop */ } }));
|
|
534
|
-
},
|
|
535
|
-
withProgress<R>(
|
|
536
|
-
options: ProgressOptions,
|
|
537
|
-
task: (progress: Progress<{ message?: string; increment?: number }>, token: theia.CancellationToken) => PromiseLike<R>
|
|
538
|
-
): PromiseLike<R> {
|
|
539
|
-
return notificationExt.withProgress(options, task);
|
|
540
|
-
},
|
|
541
|
-
registerFileDecorationProvider(provider: theia.FileDecorationProvider): theia.Disposable {
|
|
542
|
-
return decorationsExt.registerFileDecorationProvider(provider, pluginToPluginInfo(plugin));
|
|
543
|
-
},
|
|
544
|
-
registerUriHandler(handler: theia.UriHandler): theia.Disposable {
|
|
545
|
-
// TODO ?
|
|
546
|
-
return new Disposable(() => { });
|
|
547
|
-
},
|
|
548
|
-
createInputBox(): theia.InputBox {
|
|
549
|
-
return quickOpenExt.createInputBox(plugin);
|
|
550
|
-
},
|
|
551
|
-
registerTerminalLinkProvider(provider: theia.TerminalLinkProvider): theia.Disposable {
|
|
552
|
-
return terminalExt.registerTerminalLinkProvider(provider);
|
|
553
|
-
},
|
|
554
|
-
registerTerminalProfileProvider(id: string, provider: theia.TerminalProfileProvider): theia.Disposable {
|
|
555
|
-
return terminalExt.registerTerminalProfileProvider(id, provider);
|
|
556
|
-
},
|
|
557
|
-
get activeColorTheme(): theia.ColorTheme {
|
|
558
|
-
return themingExt.activeColorTheme;
|
|
559
|
-
},
|
|
560
|
-
onDidChangeActiveColorTheme(listener, thisArg?, disposables?) {
|
|
561
|
-
return themingExt.onDidChangeActiveColorTheme(listener, thisArg, disposables);
|
|
562
|
-
},
|
|
563
|
-
get tabGroups(): theia.TabGroups {
|
|
564
|
-
return tabsExt.tabGroups;
|
|
565
|
-
}
|
|
566
|
-
};
|
|
567
|
-
|
|
568
|
-
const workspace: typeof theia.workspace = {
|
|
569
|
-
|
|
570
|
-
get fs(): theia.FileSystem {
|
|
571
|
-
return fileSystemExt.fileSystem;
|
|
572
|
-
},
|
|
573
|
-
|
|
574
|
-
get rootPath(): string | undefined {
|
|
575
|
-
return workspaceExt.rootPath;
|
|
576
|
-
},
|
|
577
|
-
get workspaceFolders(): theia.WorkspaceFolder[] | undefined {
|
|
578
|
-
return workspaceExt.workspaceFolders;
|
|
579
|
-
},
|
|
580
|
-
get workspaceFile(): URI | undefined {
|
|
581
|
-
return workspaceExt.workspaceFile;
|
|
582
|
-
},
|
|
583
|
-
get name(): string | undefined {
|
|
584
|
-
return workspaceExt.name;
|
|
585
|
-
},
|
|
586
|
-
onDidChangeWorkspaceFolders(listener, thisArg?, disposables?): theia.Disposable {
|
|
587
|
-
return workspaceExt.onDidChangeWorkspaceFolders(listener, thisArg, disposables);
|
|
588
|
-
},
|
|
589
|
-
get notebookDocuments(): theia.NotebookDocument[] {
|
|
590
|
-
return [] as theia.NotebookDocument[];
|
|
591
|
-
},
|
|
592
|
-
get textDocuments(): theia.TextDocument[] {
|
|
593
|
-
return documents.getAllDocumentData().map(data => data.document);
|
|
594
|
-
},
|
|
595
|
-
onDidChangeTextDocument(listener, thisArg?, disposables?) {
|
|
596
|
-
return documents.onDidChangeDocument(listener, thisArg, disposables);
|
|
597
|
-
},
|
|
598
|
-
onDidCloseTextDocument(listener, thisArg?, disposables?) {
|
|
599
|
-
return documents.onDidRemoveDocument(listener, thisArg, disposables);
|
|
600
|
-
},
|
|
601
|
-
onDidOpenNotebookDocument(listener, thisArg?, disposables?) {
|
|
602
|
-
return Disposable.NULL;
|
|
603
|
-
},
|
|
604
|
-
onDidCloseNotebookDocument(listener, thisArg?, disposables?) {
|
|
605
|
-
return Disposable.NULL;
|
|
606
|
-
},
|
|
607
|
-
onDidChangeNotebookDocument(listener, thisArg?, disposables?) {
|
|
608
|
-
return Disposable.NULL;
|
|
609
|
-
},
|
|
610
|
-
onDidSaveNotebookDocument(listener, thisArg?, disposables?) {
|
|
611
|
-
return Disposable.NULL;
|
|
612
|
-
},
|
|
613
|
-
onDidOpenTextDocument(listener, thisArg?, disposables?) {
|
|
614
|
-
return documents.onDidAddDocument(listener, thisArg, disposables);
|
|
615
|
-
},
|
|
616
|
-
onWillSaveTextDocument(listener, thisArg?, disposables?) {
|
|
617
|
-
return documents.onWillSaveTextDocument(listener, thisArg, disposables);
|
|
618
|
-
},
|
|
619
|
-
onDidSaveTextDocument(listener, thisArg?, disposables?) {
|
|
620
|
-
return documents.onDidSaveTextDocument(listener, thisArg, disposables);
|
|
621
|
-
},
|
|
622
|
-
onDidCreateFiles: (listener, thisArg, disposables) => extHostFileSystemEvent.onDidCreateFile(listener, thisArg, disposables),
|
|
623
|
-
onDidDeleteFiles: (listener, thisArg, disposables) => extHostFileSystemEvent.onDidDeleteFile(listener, thisArg, disposables),
|
|
624
|
-
onDidRenameFiles: (listener, thisArg, disposables) => extHostFileSystemEvent.onDidRenameFile(listener, thisArg, disposables),
|
|
625
|
-
onWillCreateFiles: (listener: (e: theia.FileWillCreateEvent) => any, thisArg?: any, disposables?: theia.Disposable[]) =>
|
|
626
|
-
extHostFileSystemEvent.getOnWillCreateFileEvent(plugin)(listener, thisArg, disposables),
|
|
627
|
-
onWillDeleteFiles: (listener: (e: theia.FileWillDeleteEvent) => any, thisArg?: any, disposables?: theia.Disposable[]) =>
|
|
628
|
-
extHostFileSystemEvent.getOnWillDeleteFileEvent(plugin)(listener, thisArg, disposables),
|
|
629
|
-
onWillRenameFiles: (listener: (e: theia.FileWillRenameEvent) => any, thisArg?: any, disposables?: theia.Disposable[]) =>
|
|
630
|
-
extHostFileSystemEvent.getOnWillRenameFileEvent(plugin)(listener, thisArg, disposables),
|
|
631
|
-
getConfiguration(section, resource): theia.WorkspaceConfiguration {
|
|
632
|
-
return preferenceRegistryExt.getConfiguration(section, resource);
|
|
633
|
-
},
|
|
634
|
-
onDidChangeConfiguration(listener, thisArgs?, disposables?): theia.Disposable {
|
|
635
|
-
return preferenceRegistryExt.onDidChangeConfiguration(listener, thisArgs, disposables);
|
|
636
|
-
},
|
|
637
|
-
async openTextDocument(uriOrFileNameOrOptions?: theia.Uri | string | { language?: string; content?: string; }): Promise<theia.TextDocument | undefined> {
|
|
638
|
-
const options = uriOrFileNameOrOptions as { language?: string; content?: string; };
|
|
639
|
-
|
|
640
|
-
let uri: URI;
|
|
641
|
-
if (typeof uriOrFileNameOrOptions === 'string') {
|
|
642
|
-
uri = URI.file(uriOrFileNameOrOptions);
|
|
643
|
-
|
|
644
|
-
} else if (uriOrFileNameOrOptions instanceof URI) {
|
|
645
|
-
uri = uriOrFileNameOrOptions;
|
|
646
|
-
|
|
647
|
-
} else if (!options || typeof options === 'object') {
|
|
648
|
-
uri = await documents.createDocumentData(options);
|
|
649
|
-
|
|
650
|
-
} else {
|
|
651
|
-
return Promise.reject(new Error('illegal argument - uriOrFileNameOrOptions'));
|
|
652
|
-
}
|
|
653
|
-
|
|
654
|
-
const data = await documents.openDocument(uri);
|
|
655
|
-
return data && data.document;
|
|
656
|
-
},
|
|
657
|
-
openNotebookDocument(uriOrString: theia.Uri | string, content?: NotebookData): Promise<theia.NotebookDocument | undefined> {
|
|
658
|
-
return Promise.reject(new Error('Notebook API is stubbed'));
|
|
659
|
-
},
|
|
660
|
-
createFileSystemWatcher: (pattern, ignoreCreate, ignoreChange, ignoreDelete): theia.FileSystemWatcher =>
|
|
661
|
-
extHostFileSystemEvent.createFileSystemWatcher(fromGlobPattern(pattern), ignoreCreate, ignoreChange, ignoreDelete),
|
|
662
|
-
findFiles(include: theia.GlobPattern, exclude?: theia.GlobPattern | null, maxResults?: number, token?: CancellationToken): PromiseLike<URI[]> {
|
|
663
|
-
return workspaceExt.findFiles(include, exclude, maxResults, token);
|
|
664
|
-
},
|
|
665
|
-
findTextInFiles(query: theia.TextSearchQuery, optionsOrCallback: theia.FindTextInFilesOptions | ((result: theia.TextSearchResult) => void),
|
|
666
|
-
callbackOrToken?: CancellationToken | ((result: theia.TextSearchResult) => void), token?: CancellationToken): Promise<theia.TextSearchComplete> {
|
|
667
|
-
return workspaceExt.findTextInFiles(query, optionsOrCallback, callbackOrToken, token);
|
|
668
|
-
},
|
|
669
|
-
saveAll(includeUntitled?: boolean): PromiseLike<boolean> {
|
|
670
|
-
return editors.saveAll(includeUntitled);
|
|
671
|
-
},
|
|
672
|
-
applyEdit(edit: theia.WorkspaceEdit): PromiseLike<boolean> {
|
|
673
|
-
return editors.applyWorkspaceEdit(edit);
|
|
674
|
-
},
|
|
675
|
-
registerTextDocumentContentProvider(scheme: string, provider: theia.TextDocumentContentProvider): theia.Disposable {
|
|
676
|
-
return workspaceExt.registerTextDocumentContentProvider(scheme, provider);
|
|
677
|
-
},
|
|
678
|
-
registerFileSystemProvider(scheme: string, provider: theia.FileSystemProvider, options?: { isCaseSensitive?: boolean, isReadonly?: boolean }): theia.Disposable {
|
|
679
|
-
return fileSystemExt.registerFileSystemProvider(scheme, provider, options);
|
|
680
|
-
},
|
|
681
|
-
getWorkspaceFolder(uri: theia.Uri): theia.WorkspaceFolder | undefined {
|
|
682
|
-
return workspaceExt.getWorkspaceFolder(uri);
|
|
683
|
-
},
|
|
684
|
-
asRelativePath(pathOrUri: theia.Uri | string, includeWorkspace?: boolean): string | undefined {
|
|
685
|
-
return workspaceExt.getRelativePath(pathOrUri, includeWorkspace);
|
|
686
|
-
},
|
|
687
|
-
updateWorkspaceFolders: (index, deleteCount, ...workspaceFoldersToAdd) =>
|
|
688
|
-
workspaceExt.updateWorkspaceFolders(index, deleteCount || 0, ...workspaceFoldersToAdd)
|
|
689
|
-
,
|
|
690
|
-
registerTaskProvider(type: string, provider: theia.TaskProvider): theia.Disposable {
|
|
691
|
-
return tasks.registerTaskProvider(type, provider);
|
|
692
|
-
},
|
|
693
|
-
registerResourceLabelFormatter(formatter: theia.ResourceLabelFormatter): theia.Disposable {
|
|
694
|
-
return labelServiceExt.$registerResourceLabelFormatter(formatter);
|
|
695
|
-
},
|
|
696
|
-
registerTimelineProvider(scheme: string | string[], provider: theia.TimelineProvider): theia.Disposable {
|
|
697
|
-
return timelineExt.registerTimelineProvider(plugin, scheme, provider);
|
|
698
|
-
},
|
|
699
|
-
registerNotebookSerializer(notebookType: string, serializer: theia.NotebookSerializer, options?: theia.NotebookDocumentContentOptions): theia.Disposable {
|
|
700
|
-
return Disposable.NULL;
|
|
701
|
-
},
|
|
702
|
-
get isTrusted(): boolean {
|
|
703
|
-
return workspaceExt.trusted;
|
|
704
|
-
},
|
|
705
|
-
async requestWorkspaceTrust(options?: theia.WorkspaceTrustRequestOptions): Promise<boolean | undefined> {
|
|
706
|
-
return workspaceExt.requestWorkspaceTrust(options);
|
|
707
|
-
},
|
|
708
|
-
get onDidGrantWorkspaceTrust(): theia.Event<void> {
|
|
709
|
-
return workspaceExt.onDidGrantWorkspaceTrust;
|
|
710
|
-
}
|
|
711
|
-
};
|
|
712
|
-
|
|
713
|
-
const onDidChangeLogLevel = new Emitter<theia.LogLevel>();
|
|
714
|
-
const env: typeof theia.env = Object.freeze({
|
|
715
|
-
get appName(): string { return envExt.appName; },
|
|
716
|
-
get appRoot(): string { return envExt.appRoot; },
|
|
717
|
-
get appHost(): string { return envExt.appHost; },
|
|
718
|
-
get language(): string { return envExt.language; },
|
|
719
|
-
get isNewAppInstall(): boolean { return envExt.isNewAppInstall; },
|
|
720
|
-
get isTelemetryEnabled(): boolean { return envExt.isTelemetryEnabled; },
|
|
721
|
-
get onDidChangeTelemetryEnabled(): theia.Event<boolean> {
|
|
722
|
-
return envExt.onDidChangeTelemetryEnabled;
|
|
723
|
-
},
|
|
724
|
-
get remoteName(): string | undefined { return envExt.remoteName; },
|
|
725
|
-
get machineId(): string { return envExt.machineId; },
|
|
726
|
-
get sessionId(): string { return envExt.sessionId; },
|
|
727
|
-
get uriScheme(): string { return envExt.uriScheme; },
|
|
728
|
-
get shell(): string { return envExt.shell; },
|
|
729
|
-
get uiKind(): theia.UIKind { return envExt.uiKind; },
|
|
730
|
-
clipboard,
|
|
731
|
-
getEnvVariable(envVarName: string): PromiseLike<string | undefined> {
|
|
732
|
-
return envExt.getEnvVariable(envVarName);
|
|
733
|
-
},
|
|
734
|
-
getQueryParameter(queryParamName: string): string | string[] | undefined {
|
|
735
|
-
return envExt.getQueryParameter(queryParamName);
|
|
736
|
-
},
|
|
737
|
-
getQueryParameters(): QueryParameters {
|
|
738
|
-
return envExt.getQueryParameters();
|
|
739
|
-
},
|
|
740
|
-
getClientOperatingSystem(): PromiseLike<theia.OperatingSystem> {
|
|
741
|
-
return envExt.getClientOperatingSystem();
|
|
742
|
-
},
|
|
743
|
-
openExternal(uri: theia.Uri): PromiseLike<boolean> {
|
|
744
|
-
return windowStateExt.openUri(uri);
|
|
745
|
-
},
|
|
746
|
-
asExternalUri(target: theia.Uri): PromiseLike<theia.Uri> {
|
|
747
|
-
return windowStateExt.asExternalUri(target);
|
|
748
|
-
},
|
|
749
|
-
get logLevel(): theia.LogLevel { return LogLevel.Info; },
|
|
750
|
-
get onDidChangeLogLevel(): theia.Event<theia.LogLevel> { return onDidChangeLogLevel.event; }
|
|
751
|
-
});
|
|
752
|
-
|
|
753
|
-
const extensions: typeof theia.extensions = Object.freeze({
|
|
754
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
755
|
-
getExtension<T = any>(extensionId: string): theia.Extension<T> | undefined {
|
|
756
|
-
const plg = pluginManager.getPluginById(extensionId.toLowerCase());
|
|
757
|
-
if (plg) {
|
|
758
|
-
return new PluginExt(pluginManager, plg);
|
|
759
|
-
}
|
|
760
|
-
return undefined;
|
|
761
|
-
},
|
|
762
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
763
|
-
get all(): readonly theia.Extension<any>[] {
|
|
764
|
-
return pluginManager.getAllPlugins().map(plg => new PluginExt(pluginManager, plg));
|
|
765
|
-
},
|
|
766
|
-
get onDidChange(): theia.Event<void> {
|
|
767
|
-
return pluginManager.onDidChange;
|
|
768
|
-
}
|
|
769
|
-
});
|
|
770
|
-
|
|
771
|
-
const languages: typeof theia.languages = {
|
|
772
|
-
getLanguages(): PromiseLike<string[]> {
|
|
773
|
-
return languagesExt.getLanguages();
|
|
774
|
-
},
|
|
775
|
-
setTextDocumentLanguage(document: theia.TextDocument, languageId: string): PromiseLike<theia.TextDocument> {
|
|
776
|
-
return languagesExt.changeLanguage(document.uri, languageId);
|
|
777
|
-
},
|
|
778
|
-
match(selector: theia.DocumentSelector, document: theia.TextDocument): number {
|
|
779
|
-
return score(fromDocumentSelector(selector), document.uri.scheme, document.uri.path, document.languageId, true);
|
|
780
|
-
},
|
|
781
|
-
get onDidChangeDiagnostics(): theia.Event<theia.DiagnosticChangeEvent> {
|
|
782
|
-
return languagesExt.onDidChangeDiagnostics;
|
|
783
|
-
},
|
|
784
|
-
getDiagnostics(resource?: URI) {
|
|
785
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
786
|
-
return <any>languagesExt.getDiagnostics(resource);
|
|
787
|
-
},
|
|
788
|
-
createDiagnosticCollection(name?: string): theia.DiagnosticCollection {
|
|
789
|
-
return languagesExt.createDiagnosticCollection(name);
|
|
790
|
-
},
|
|
791
|
-
setLanguageConfiguration(language: string, configuration: theia.LanguageConfiguration): theia.Disposable {
|
|
792
|
-
return languagesExt.setLanguageConfiguration(language, configuration);
|
|
793
|
-
},
|
|
794
|
-
registerCompletionItemProvider(selector: theia.DocumentSelector, provider: theia.CompletionItemProvider, ...triggerCharacters: string[]): theia.Disposable {
|
|
795
|
-
return languagesExt.registerCompletionItemProvider(selector, provider, triggerCharacters, pluginToPluginInfo(plugin));
|
|
796
|
-
},
|
|
797
|
-
registerInlineCompletionItemProvider(selector: theia.DocumentSelector, provider: theia.InlineCompletionItemProvider): theia.Disposable {
|
|
798
|
-
return languagesExt.registerInlineCompletionsProvider(selector, provider);
|
|
799
|
-
},
|
|
800
|
-
registerDefinitionProvider(selector: theia.DocumentSelector, provider: theia.DefinitionProvider): theia.Disposable {
|
|
801
|
-
return languagesExt.registerDefinitionProvider(selector, provider, pluginToPluginInfo(plugin));
|
|
802
|
-
},
|
|
803
|
-
registerDeclarationProvider(selector: theia.DocumentSelector, provider: theia.DeclarationProvider): theia.Disposable {
|
|
804
|
-
return languagesExt.registerDeclarationProvider(selector, provider, pluginToPluginInfo(plugin));
|
|
805
|
-
},
|
|
806
|
-
registerSignatureHelpProvider(
|
|
807
|
-
selector: theia.DocumentSelector, provider: theia.SignatureHelpProvider, first?: string | theia.SignatureHelpProviderMetadata, ...remaining: string[]
|
|
808
|
-
): theia.Disposable {
|
|
809
|
-
let metadata: theia.SignatureHelpProviderMetadata;
|
|
810
|
-
if (typeof first === 'object') {
|
|
811
|
-
metadata = first;
|
|
812
|
-
} else {
|
|
813
|
-
const triggerCharacters: string[] = [];
|
|
814
|
-
metadata = { triggerCharacters, retriggerCharacters: [] };
|
|
815
|
-
if (first) {
|
|
816
|
-
triggerCharacters.push(first, ...remaining);
|
|
817
|
-
}
|
|
818
|
-
}
|
|
819
|
-
return languagesExt.registerSignatureHelpProvider(selector, provider, metadata, pluginToPluginInfo(plugin));
|
|
820
|
-
},
|
|
821
|
-
registerTypeDefinitionProvider(selector: theia.DocumentSelector, provider: theia.TypeDefinitionProvider): theia.Disposable {
|
|
822
|
-
return languagesExt.registerTypeDefinitionProvider(selector, provider, pluginToPluginInfo(plugin));
|
|
823
|
-
},
|
|
824
|
-
registerImplementationProvider(selector: theia.DocumentSelector, provider: theia.ImplementationProvider): theia.Disposable {
|
|
825
|
-
return languagesExt.registerImplementationProvider(selector, provider, pluginToPluginInfo(plugin));
|
|
826
|
-
},
|
|
827
|
-
registerHoverProvider(selector: theia.DocumentSelector, provider: theia.HoverProvider): theia.Disposable {
|
|
828
|
-
return languagesExt.registerHoverProvider(selector, provider, pluginToPluginInfo(plugin));
|
|
829
|
-
},
|
|
830
|
-
registerEvaluatableExpressionProvider(selector: theia.DocumentSelector, provider: theia.EvaluatableExpressionProvider): theia.Disposable {
|
|
831
|
-
return languagesExt.registerEvaluatableExpressionProvider(selector, provider, pluginToPluginInfo(plugin));
|
|
832
|
-
},
|
|
833
|
-
registerInlineValuesProvider(selector: theia.DocumentSelector, provider: theia.InlineValuesProvider): theia.Disposable {
|
|
834
|
-
return languagesExt.registerInlineValuesProvider(selector, provider, pluginToPluginInfo(plugin));
|
|
835
|
-
},
|
|
836
|
-
registerDocumentHighlightProvider(selector: theia.DocumentSelector, provider: theia.DocumentHighlightProvider): theia.Disposable {
|
|
837
|
-
return languagesExt.registerDocumentHighlightProvider(selector, provider, pluginToPluginInfo(plugin));
|
|
838
|
-
},
|
|
839
|
-
registerWorkspaceSymbolProvider(provider: theia.WorkspaceSymbolProvider): theia.Disposable {
|
|
840
|
-
return languagesExt.registerWorkspaceSymbolProvider(provider, pluginToPluginInfo(plugin));
|
|
841
|
-
},
|
|
842
|
-
registerDocumentFormattingEditProvider(selector: theia.DocumentSelector, provider: theia.DocumentFormattingEditProvider): theia.Disposable {
|
|
843
|
-
return languagesExt.registerDocumentFormattingEditProvider(selector, provider, pluginToPluginInfo(plugin));
|
|
844
|
-
},
|
|
845
|
-
registerDocumentRangeFormattingEditProvider(selector: theia.DocumentSelector, provider: theia.DocumentRangeFormattingEditProvider): theia.Disposable {
|
|
846
|
-
return languagesExt.registerDocumentRangeFormattingEditProvider(selector, provider, pluginToPluginInfo(plugin));
|
|
847
|
-
},
|
|
848
|
-
registerOnTypeFormattingEditProvider(
|
|
849
|
-
selector: theia.DocumentSelector,
|
|
850
|
-
provider: theia.OnTypeFormattingEditProvider,
|
|
851
|
-
firstTriggerCharacter: string,
|
|
852
|
-
...moreTriggerCharacters: string[]
|
|
853
|
-
): theia.Disposable {
|
|
854
|
-
return languagesExt.registerOnTypeFormattingEditProvider(selector, provider, [firstTriggerCharacter].concat(moreTriggerCharacters), pluginToPluginInfo(plugin));
|
|
855
|
-
},
|
|
856
|
-
registerDocumentLinkProvider(selector: theia.DocumentSelector, provider: theia.DocumentLinkProvider): theia.Disposable {
|
|
857
|
-
return languagesExt.registerDocumentLinkProvider(selector, provider, pluginToPluginInfo(plugin));
|
|
858
|
-
},
|
|
859
|
-
registerCodeActionsProvider(selector: theia.DocumentSelector, provider: theia.CodeActionProvider, metadata?: theia.CodeActionProviderMetadata): theia.Disposable {
|
|
860
|
-
return languagesExt.registerCodeActionsProvider(selector, provider, plugin.model, pluginToPluginInfo(plugin), metadata);
|
|
861
|
-
},
|
|
862
|
-
registerCodeLensProvider(selector: theia.DocumentSelector, provider: theia.CodeLensProvider): theia.Disposable {
|
|
863
|
-
return languagesExt.registerCodeLensProvider(selector, provider, pluginToPluginInfo(plugin));
|
|
864
|
-
},
|
|
865
|
-
registerReferenceProvider(selector: theia.DocumentSelector, provider: theia.ReferenceProvider): theia.Disposable {
|
|
866
|
-
return languagesExt.registerReferenceProvider(selector, provider, pluginToPluginInfo(plugin));
|
|
867
|
-
},
|
|
868
|
-
registerDocumentSymbolProvider(selector: theia.DocumentSelector, provider: theia.DocumentSymbolProvider,
|
|
869
|
-
metadata?: theia.DocumentSymbolProviderMetadata): theia.Disposable {
|
|
870
|
-
return languagesExt.registerDocumentSymbolProvider(selector, provider, pluginToPluginInfo(plugin), metadata);
|
|
871
|
-
},
|
|
872
|
-
registerColorProvider(selector: theia.DocumentSelector, provider: theia.DocumentColorProvider): theia.Disposable {
|
|
873
|
-
return languagesExt.registerColorProvider(selector, provider, pluginToPluginInfo(plugin));
|
|
874
|
-
},
|
|
875
|
-
registerInlayHintsProvider(selector: theia.DocumentSelector, provider: theia.InlayHintsProvider): theia.Disposable {
|
|
876
|
-
return languagesExt.registerInlayHintsProvider(selector, provider, pluginToPluginInfo(plugin));
|
|
877
|
-
},
|
|
878
|
-
registerFoldingRangeProvider(selector: theia.DocumentSelector, provider: theia.FoldingRangeProvider): theia.Disposable {
|
|
879
|
-
return languagesExt.registerFoldingRangeProvider(selector, provider, pluginToPluginInfo(plugin));
|
|
880
|
-
},
|
|
881
|
-
registerSelectionRangeProvider(selector: theia.DocumentSelector, provider: theia.SelectionRangeProvider): theia.Disposable {
|
|
882
|
-
return languagesExt.registerSelectionRangeProvider(selector, provider, pluginToPluginInfo(plugin));
|
|
883
|
-
},
|
|
884
|
-
registerRenameProvider(selector: theia.DocumentSelector, provider: theia.RenameProvider): theia.Disposable {
|
|
885
|
-
return languagesExt.registerRenameProvider(selector, provider, pluginToPluginInfo(plugin));
|
|
886
|
-
},
|
|
887
|
-
registerDocumentSemanticTokensProvider(selector: theia.DocumentSelector, provider: theia.DocumentSemanticTokensProvider, legend: theia.SemanticTokensLegend):
|
|
888
|
-
theia.Disposable {
|
|
889
|
-
return languagesExt.registerDocumentSemanticTokensProvider(selector, provider, legend, pluginToPluginInfo(plugin));
|
|
890
|
-
},
|
|
891
|
-
registerDocumentRangeSemanticTokensProvider(selector: theia.DocumentSelector, provider: theia.DocumentRangeSemanticTokensProvider, legend: theia.SemanticTokensLegend):
|
|
892
|
-
theia.Disposable {
|
|
893
|
-
return languagesExt.registerDocumentRangeSemanticTokensProvider(selector, provider, legend, pluginToPluginInfo(plugin));
|
|
894
|
-
},
|
|
895
|
-
registerCallHierarchyProvider(selector: theia.DocumentSelector, provider: theia.CallHierarchyProvider): theia.Disposable {
|
|
896
|
-
return languagesExt.registerCallHierarchyProvider(selector, provider);
|
|
897
|
-
},
|
|
898
|
-
registerTypeHierarchyProvider(selector: theia.DocumentSelector, provider: theia.TypeHierarchyProvider): theia.Disposable {
|
|
899
|
-
return languagesExt.registerTypeHierarchyProvider(selector, provider);
|
|
900
|
-
},
|
|
901
|
-
registerLinkedEditingRangeProvider(selector: theia.DocumentSelector, provider: theia.LinkedEditingRangeProvider): theia.Disposable {
|
|
902
|
-
return languagesExt.registerLinkedEditingRangeProvider(selector, provider);
|
|
903
|
-
},
|
|
904
|
-
createLanguageStatusItem(id: string, selector: theia.DocumentSelector): theia.LanguageStatusItem {
|
|
905
|
-
return languagesExt.createLanguageStatusItem(plugin, id, selector);
|
|
906
|
-
}
|
|
907
|
-
};
|
|
908
|
-
|
|
909
|
-
// Tests API (@stubbed)
|
|
910
|
-
// The following implementation is temporarily `@stubbed` and marked as such under `theia.d.ts`
|
|
911
|
-
const tests: typeof theia.tests = {
|
|
912
|
-
createTestController(
|
|
913
|
-
provider,
|
|
914
|
-
controllerLabel: string,
|
|
915
|
-
refreshHandler?: (
|
|
916
|
-
token: theia.CancellationToken
|
|
917
|
-
) => Thenable<void> | void
|
|
918
|
-
) {
|
|
919
|
-
return {
|
|
920
|
-
id: provider,
|
|
921
|
-
label: controllerLabel,
|
|
922
|
-
items: testItemCollection,
|
|
923
|
-
refreshHandler,
|
|
924
|
-
createRunProfile,
|
|
925
|
-
createTestRun,
|
|
926
|
-
createTestItem,
|
|
927
|
-
dispose: () => undefined,
|
|
928
|
-
};
|
|
929
|
-
},
|
|
930
|
-
};
|
|
931
|
-
/* End of Tests API */
|
|
932
|
-
|
|
933
|
-
const plugins: typeof theia.plugins = {
|
|
934
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
935
|
-
get all(): theia.Plugin<any>[] {
|
|
936
|
-
return pluginManager.getAllPlugins().map(plg => new PluginExt(pluginManager, plg));
|
|
937
|
-
},
|
|
938
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
939
|
-
getPlugin(pluginId: string): theia.Plugin<any> | undefined {
|
|
940
|
-
const plg = pluginManager.getPluginById(pluginId.toLowerCase());
|
|
941
|
-
if (plg) {
|
|
942
|
-
return new PluginExt(pluginManager, plg);
|
|
943
|
-
}
|
|
944
|
-
return undefined;
|
|
945
|
-
},
|
|
946
|
-
get onDidChange(): theia.Event<void> {
|
|
947
|
-
return pluginManager.onDidChange;
|
|
948
|
-
}
|
|
949
|
-
};
|
|
950
|
-
|
|
951
|
-
const debuggersContributions = plugin.rawModel.contributes && plugin.rawModel.contributes.debuggers || [];
|
|
952
|
-
debugExt.assistedInject(connectionExt, commandRegistry);
|
|
953
|
-
debugExt.registerDebuggersContributions(plugin.pluginFolder, plugin.model.entryPoint.frontend ? 'frontend' : 'backend', debuggersContributions);
|
|
954
|
-
const debug: typeof theia.debug = {
|
|
955
|
-
get activeDebugSession(): theia.DebugSession | undefined {
|
|
956
|
-
return debugExt.activeDebugSession;
|
|
957
|
-
},
|
|
958
|
-
get activeDebugConsole(): theia.DebugConsole {
|
|
959
|
-
return debugExt.activeDebugConsole;
|
|
960
|
-
},
|
|
961
|
-
get breakpoints(): theia.Breakpoint[] {
|
|
962
|
-
return debugExt.breakpoints;
|
|
963
|
-
},
|
|
964
|
-
get onDidChangeActiveDebugSession(): theia.Event<theia.DebugSession | undefined> {
|
|
965
|
-
return debugExt.onDidChangeActiveDebugSession;
|
|
966
|
-
},
|
|
967
|
-
get onDidStartDebugSession(): theia.Event<theia.DebugSession> {
|
|
968
|
-
return debugExt.onDidStartDebugSession;
|
|
969
|
-
},
|
|
970
|
-
get onDidReceiveDebugSessionCustomEvent(): theia.Event<theia.DebugSessionCustomEvent> {
|
|
971
|
-
return debugExt.onDidReceiveDebugSessionCustomEvent;
|
|
972
|
-
},
|
|
973
|
-
get onDidTerminateDebugSession(): theia.Event<theia.DebugSession> {
|
|
974
|
-
return debugExt.onDidTerminateDebugSession;
|
|
975
|
-
},
|
|
976
|
-
get onDidChangeBreakpoints(): theia.Event<theia.BreakpointsChangeEvent> {
|
|
977
|
-
return debugExt.onDidChangeBreakpoints;
|
|
978
|
-
},
|
|
979
|
-
registerDebugAdapterDescriptorFactory(debugType: string, factory: theia.DebugAdapterDescriptorFactory): Disposable {
|
|
980
|
-
return debugExt.registerDebugAdapterDescriptorFactory(debugType, factory);
|
|
981
|
-
},
|
|
982
|
-
registerDebugConfigurationProvider(
|
|
983
|
-
debugType: string,
|
|
984
|
-
provider: theia.DebugConfigurationProvider,
|
|
985
|
-
triggerKind?: theia.DebugConfigurationProviderTriggerKind
|
|
986
|
-
): Disposable {
|
|
987
|
-
return debugExt.registerDebugConfigurationProvider(debugType, provider, triggerKind || DebugConfigurationProviderTriggerKind.Initial);
|
|
988
|
-
},
|
|
989
|
-
registerDebugAdapterTrackerFactory(debugType: string, factory: theia.DebugAdapterTrackerFactory): Disposable {
|
|
990
|
-
return debugExt.registerDebugAdapterTrackerFactory(debugType, factory);
|
|
991
|
-
},
|
|
992
|
-
startDebugging(
|
|
993
|
-
folder: theia.WorkspaceFolder | undefined,
|
|
994
|
-
nameOrConfiguration: string | theia.DebugConfiguration,
|
|
995
|
-
parentSessionOrOptions?: theia.DebugSession | theia.DebugSessionOptions
|
|
996
|
-
): Thenable<boolean> {
|
|
997
|
-
if (!parentSessionOrOptions || (typeof parentSessionOrOptions === 'object' && 'configuration' in parentSessionOrOptions)) {
|
|
998
|
-
return debugExt.startDebugging(folder, nameOrConfiguration, { parentSession: parentSessionOrOptions });
|
|
999
|
-
}
|
|
1000
|
-
return debugExt.startDebugging(folder, nameOrConfiguration, parentSessionOrOptions || {});
|
|
1001
|
-
},
|
|
1002
|
-
stopDebugging(session?: theia.DebugSession): Thenable<void> {
|
|
1003
|
-
return debugExt.stopDebugging(session);
|
|
1004
|
-
},
|
|
1005
|
-
addBreakpoints(breakpoints: readonly theia.Breakpoint[]): void {
|
|
1006
|
-
debugExt.addBreakpoints(breakpoints);
|
|
1007
|
-
},
|
|
1008
|
-
removeBreakpoints(breakpoints: readonly theia.Breakpoint[]): void {
|
|
1009
|
-
debugExt.removeBreakpoints(breakpoints);
|
|
1010
|
-
},
|
|
1011
|
-
asDebugSourceUri(source: theia.DebugProtocolSource, session?: theia.DebugSession): theia.Uri {
|
|
1012
|
-
return debugExt.asDebugSourceUri(source, session);
|
|
1013
|
-
}
|
|
1014
|
-
};
|
|
1015
|
-
|
|
1016
|
-
const tasks: typeof theia.tasks = {
|
|
1017
|
-
registerTaskProvider(type: string, provider: theia.TaskProvider): theia.Disposable {
|
|
1018
|
-
return tasksExt.registerTaskProvider(type, provider);
|
|
1019
|
-
},
|
|
1020
|
-
|
|
1021
|
-
fetchTasks(filter?: theia.TaskFilter): Thenable<theia.Task[]> {
|
|
1022
|
-
return tasksExt.fetchTasks(filter);
|
|
1023
|
-
},
|
|
1024
|
-
|
|
1025
|
-
executeTask(task: theia.Task): Thenable<theia.TaskExecution> {
|
|
1026
|
-
return tasksExt.executeTask(task);
|
|
1027
|
-
},
|
|
1028
|
-
|
|
1029
|
-
get taskExecutions(): ReadonlyArray<theia.TaskExecution> {
|
|
1030
|
-
return tasksExt.taskExecutions;
|
|
1031
|
-
},
|
|
1032
|
-
onDidStartTask(listener, thisArg?, disposables?) {
|
|
1033
|
-
return tasksExt.onDidStartTask(listener, thisArg, disposables);
|
|
1034
|
-
},
|
|
1035
|
-
onDidEndTask(listener, thisArg?, disposables?) {
|
|
1036
|
-
return tasksExt.onDidEndTask(listener, thisArg, disposables);
|
|
1037
|
-
},
|
|
1038
|
-
onDidStartTaskProcess(listener, thisArg?, disposables?) {
|
|
1039
|
-
return tasksExt.onDidStartTaskProcess(listener, thisArg, disposables);
|
|
1040
|
-
},
|
|
1041
|
-
onDidEndTaskProcess(listener, thisArg?, disposables?) {
|
|
1042
|
-
return tasksExt.onDidEndTaskProcess(listener, thisArg, disposables);
|
|
1043
|
-
}
|
|
1044
|
-
};
|
|
1045
|
-
|
|
1046
|
-
const scm: typeof theia.scm = {
|
|
1047
|
-
get inputBox(): theia.SourceControlInputBox {
|
|
1048
|
-
const inputBox = scmExt.getLastInputBox(plugin);
|
|
1049
|
-
if (inputBox) {
|
|
1050
|
-
return inputBox;
|
|
1051
|
-
} else {
|
|
1052
|
-
throw new Error('Input box not found!');
|
|
1053
|
-
}
|
|
1054
|
-
},
|
|
1055
|
-
createSourceControl(id: string, label: string, rootUri?: URI): theia.SourceControl {
|
|
1056
|
-
return scmExt.createSourceControl(plugin, id, label, rootUri);
|
|
1057
|
-
}
|
|
1058
|
-
};
|
|
1059
|
-
|
|
1060
|
-
const comments: typeof theia.comments = {
|
|
1061
|
-
createCommentController(id: string, label: string): theia.CommentController {
|
|
1062
|
-
return commentsExt.createCommentController(plugin, id, label);
|
|
1063
|
-
}
|
|
1064
|
-
};
|
|
1065
|
-
|
|
1066
|
-
// notebooks API (@stubbed)
|
|
1067
|
-
// The following implementation is temporarily `@stubbed` and marked as such under `theia.d.ts`
|
|
1068
|
-
const notebooks: typeof theia.notebooks = {
|
|
1069
|
-
createNotebookController(
|
|
1070
|
-
id,
|
|
1071
|
-
notebookType,
|
|
1072
|
-
label,
|
|
1073
|
-
handler?: (cells: theia.NotebookCell[],
|
|
1074
|
-
notebook: theia.NotebookDocument,
|
|
1075
|
-
controller: theia.NotebookController) => void | Thenable<void>
|
|
1076
|
-
) {
|
|
1077
|
-
return {
|
|
1078
|
-
id,
|
|
1079
|
-
notebookType,
|
|
1080
|
-
label,
|
|
1081
|
-
handler,
|
|
1082
|
-
createNotebookCellExecution: (cell: NotebookCell) => ({
|
|
1083
|
-
cell,
|
|
1084
|
-
token: CancellationToken.None,
|
|
1085
|
-
executionOrder: undefined,
|
|
1086
|
-
start: () => undefined,
|
|
1087
|
-
end: () => undefined,
|
|
1088
|
-
clearOutput: () => ({} as Thenable<void>),
|
|
1089
|
-
replaceOutput: () => ({} as Thenable<void>),
|
|
1090
|
-
appendOutput: () => ({} as Thenable<void>),
|
|
1091
|
-
replaceOutputItems: () => ({} as Thenable<void>),
|
|
1092
|
-
appendOutputItems: () => ({} as Thenable<void>)
|
|
1093
|
-
}),
|
|
1094
|
-
executeHandler(
|
|
1095
|
-
cells: theia.NotebookCell[],
|
|
1096
|
-
notebook: theia.NotebookDocument,
|
|
1097
|
-
controller: theia.NotebookController
|
|
1098
|
-
): (void | Thenable<void>) { },
|
|
1099
|
-
onDidChangeSelectedNotebooks: () => Disposable.create(() => { }),
|
|
1100
|
-
updateNotebookAffinity: (notebook: theia.NotebookDocument, affinity: theia.NotebookControllerAffinity) => undefined,
|
|
1101
|
-
dispose: () => undefined,
|
|
1102
|
-
};
|
|
1103
|
-
|
|
1104
|
-
},
|
|
1105
|
-
createRendererMessaging(
|
|
1106
|
-
rendererId
|
|
1107
|
-
) {
|
|
1108
|
-
return {
|
|
1109
|
-
rendererId,
|
|
1110
|
-
onDidReceiveMessage: () => Disposable.create(() => { }),
|
|
1111
|
-
postMessage: () => Promise.resolve({}),
|
|
1112
|
-
};
|
|
1113
|
-
},
|
|
1114
|
-
registerNotebookCellStatusBarItemProvider(
|
|
1115
|
-
notebookType,
|
|
1116
|
-
provider
|
|
1117
|
-
) {
|
|
1118
|
-
return {
|
|
1119
|
-
notebookType,
|
|
1120
|
-
provider,
|
|
1121
|
-
dispose: () => undefined,
|
|
1122
|
-
};
|
|
1123
|
-
}
|
|
1124
|
-
};
|
|
1125
|
-
|
|
1126
|
-
return <typeof theia>{
|
|
1127
|
-
version: require('../../package.json').version,
|
|
1128
|
-
authentication,
|
|
1129
|
-
commands,
|
|
1130
|
-
comments,
|
|
1131
|
-
window,
|
|
1132
|
-
workspace,
|
|
1133
|
-
env,
|
|
1134
|
-
extensions,
|
|
1135
|
-
languages,
|
|
1136
|
-
plugins,
|
|
1137
|
-
debug,
|
|
1138
|
-
tasks,
|
|
1139
|
-
scm,
|
|
1140
|
-
notebooks,
|
|
1141
|
-
tests,
|
|
1142
|
-
// Types
|
|
1143
|
-
StatusBarAlignment: StatusBarAlignment,
|
|
1144
|
-
Disposable: Disposable,
|
|
1145
|
-
EventEmitter: Emitter,
|
|
1146
|
-
CancellationTokenSource: CancellationTokenSource,
|
|
1147
|
-
MarkdownString,
|
|
1148
|
-
Position: Position,
|
|
1149
|
-
Range: Range,
|
|
1150
|
-
Selection: Selection,
|
|
1151
|
-
ViewColumn: ViewColumn,
|
|
1152
|
-
TextEditorSelectionChangeKind: TextEditorSelectionChangeKind,
|
|
1153
|
-
Uri: URI,
|
|
1154
|
-
EndOfLine,
|
|
1155
|
-
TextEditorRevealType,
|
|
1156
|
-
TextEditorCursorStyle,
|
|
1157
|
-
TextEditorLineNumbersStyle,
|
|
1158
|
-
ThemeColor,
|
|
1159
|
-
ThemeIcon,
|
|
1160
|
-
SnippetString,
|
|
1161
|
-
DecorationRangeBehavior,
|
|
1162
|
-
OverviewRulerLane,
|
|
1163
|
-
ConfigurationTarget,
|
|
1164
|
-
RelativePattern,
|
|
1165
|
-
IndentAction,
|
|
1166
|
-
CompletionItem,
|
|
1167
|
-
CompletionItemKind,
|
|
1168
|
-
CompletionList,
|
|
1169
|
-
DebugConsoleMode,
|
|
1170
|
-
DiagnosticSeverity,
|
|
1171
|
-
DiagnosticRelatedInformation,
|
|
1172
|
-
LanguageStatusSeverity,
|
|
1173
|
-
Location,
|
|
1174
|
-
LogLevel,
|
|
1175
|
-
DiagnosticTag,
|
|
1176
|
-
CompletionItemTag,
|
|
1177
|
-
Diagnostic,
|
|
1178
|
-
CompletionTriggerKind,
|
|
1179
|
-
TextEdit,
|
|
1180
|
-
SnippetTextEdit,
|
|
1181
|
-
ProgressLocation,
|
|
1182
|
-
ProgressOptions,
|
|
1183
|
-
Progress,
|
|
1184
|
-
ParameterInformation,
|
|
1185
|
-
QuickPickItemKind,
|
|
1186
|
-
SignatureInformation,
|
|
1187
|
-
SignatureHelp,
|
|
1188
|
-
SignatureHelpTriggerKind,
|
|
1189
|
-
Hover,
|
|
1190
|
-
EvaluatableExpression,
|
|
1191
|
-
InlineValueEvaluatableExpression,
|
|
1192
|
-
InlineValueText,
|
|
1193
|
-
InlineValueVariableLookup,
|
|
1194
|
-
InlineValueContext,
|
|
1195
|
-
DocumentHighlightKind,
|
|
1196
|
-
DocumentHighlight,
|
|
1197
|
-
DocumentLink,
|
|
1198
|
-
CodeLens,
|
|
1199
|
-
CodeActionKind,
|
|
1200
|
-
CodeActionTrigger,
|
|
1201
|
-
CodeActionTriggerKind,
|
|
1202
|
-
TextDocumentSaveReason,
|
|
1203
|
-
CodeAction,
|
|
1204
|
-
DataTransferItem,
|
|
1205
|
-
DataTransfer,
|
|
1206
|
-
TreeItem,
|
|
1207
|
-
TreeItemCollapsibleState,
|
|
1208
|
-
SymbolKind,
|
|
1209
|
-
SymbolTag,
|
|
1210
|
-
DocumentSymbol,
|
|
1211
|
-
WorkspaceEdit,
|
|
1212
|
-
SymbolInformation,
|
|
1213
|
-
FileType,
|
|
1214
|
-
FilePermission,
|
|
1215
|
-
FileChangeType,
|
|
1216
|
-
ShellQuoting,
|
|
1217
|
-
ShellExecution,
|
|
1218
|
-
ProcessExecution,
|
|
1219
|
-
CustomExecution,
|
|
1220
|
-
TaskScope,
|
|
1221
|
-
TaskRevealKind,
|
|
1222
|
-
TaskPanelKind,
|
|
1223
|
-
TaskGroup,
|
|
1224
|
-
Task,
|
|
1225
|
-
Task2,
|
|
1226
|
-
DebugAdapterExecutable,
|
|
1227
|
-
DebugAdapterServer,
|
|
1228
|
-
DebugAdapterNamedPipeServer,
|
|
1229
|
-
DebugAdapterInlineImplementation,
|
|
1230
|
-
DebugConfigurationProviderTriggerKind,
|
|
1231
|
-
Breakpoint,
|
|
1232
|
-
SourceBreakpoint,
|
|
1233
|
-
FunctionBreakpoint,
|
|
1234
|
-
Color,
|
|
1235
|
-
ColorInformation,
|
|
1236
|
-
ColorPresentation,
|
|
1237
|
-
FoldingRange,
|
|
1238
|
-
SelectionRange,
|
|
1239
|
-
FoldingRangeKind,
|
|
1240
|
-
OperatingSystem,
|
|
1241
|
-
WebviewPanelTargetArea,
|
|
1242
|
-
UIKind,
|
|
1243
|
-
FileSystemError,
|
|
1244
|
-
CommentThreadCollapsibleState,
|
|
1245
|
-
QuickInputButtons,
|
|
1246
|
-
CommentMode,
|
|
1247
|
-
CallHierarchyItem,
|
|
1248
|
-
CallHierarchyIncomingCall,
|
|
1249
|
-
CallHierarchyOutgoingCall,
|
|
1250
|
-
TypeHierarchyItem,
|
|
1251
|
-
TimelineItem,
|
|
1252
|
-
EnvironmentVariableMutatorType,
|
|
1253
|
-
SemanticTokensLegend,
|
|
1254
|
-
SemanticTokensBuilder,
|
|
1255
|
-
SemanticTokens,
|
|
1256
|
-
SemanticTokensEdits,
|
|
1257
|
-
SemanticTokensEdit,
|
|
1258
|
-
TextDocumentChangeReason,
|
|
1259
|
-
ColorThemeKind,
|
|
1260
|
-
SourceControlInputBoxValidationType,
|
|
1261
|
-
FileDecoration,
|
|
1262
|
-
TerminalLink,
|
|
1263
|
-
TerminalProfile,
|
|
1264
|
-
CancellationError,
|
|
1265
|
-
ExtensionMode,
|
|
1266
|
-
LinkedEditingRanges,
|
|
1267
|
-
InputBoxValidationSeverity,
|
|
1268
|
-
InlayHint,
|
|
1269
|
-
InlayHintKind,
|
|
1270
|
-
InlayHintLabelPart,
|
|
1271
|
-
NotebookCellData,
|
|
1272
|
-
NotebookCellKind,
|
|
1273
|
-
NotebookCellOutput,
|
|
1274
|
-
NotebookCellOutputItem,
|
|
1275
|
-
NotebookCellStatusBarAlignment,
|
|
1276
|
-
NotebookCellStatusBarItem,
|
|
1277
|
-
NotebookControllerAffinity,
|
|
1278
|
-
NotebookData,
|
|
1279
|
-
NotebookEditorRevealType,
|
|
1280
|
-
NotebookDocument,
|
|
1281
|
-
NotebookRange,
|
|
1282
|
-
NotebookEdit,
|
|
1283
|
-
TestRunProfileKind,
|
|
1284
|
-
TestTag,
|
|
1285
|
-
TestRunRequest,
|
|
1286
|
-
TestMessage,
|
|
1287
|
-
ExtensionKind,
|
|
1288
|
-
InlineCompletionItem,
|
|
1289
|
-
InlineCompletionList,
|
|
1290
|
-
InlineCompletionTriggerKind,
|
|
1291
|
-
TabInputText: TextTabInput,
|
|
1292
|
-
TabInputTextDiff: TextDiffTabInput,
|
|
1293
|
-
TabInputTextMerge: TextMergeTabInput,
|
|
1294
|
-
TabInputCustom: CustomEditorTabInput,
|
|
1295
|
-
TabInputNotebook: NotebookEditorTabInput,
|
|
1296
|
-
TabInputNotebookDiff: NotebookDiffEditorTabInput,
|
|
1297
|
-
TabInputWebview: WebviewEditorTabInput,
|
|
1298
|
-
TabInputTerminal: TerminalEditorTabInput,
|
|
1299
|
-
TerminalLocation
|
|
1300
|
-
};
|
|
1301
|
-
};
|
|
1302
|
-
}
|
|
1303
|
-
|
|
1304
|
-
/**
|
|
1305
|
-
* Represents a Theia plugin as well as a VSCode extension.
|
|
1306
|
-
*/
|
|
1307
|
-
export interface ExtensionPlugin<T> extends theia.Plugin<T> {
|
|
1308
|
-
/**
|
|
1309
|
-
* The uri of the directory containing the extension. Same as {@linkcode theia.Plugin.pluginUri}.
|
|
1310
|
-
*/
|
|
1311
|
-
readonly extensionUri: theia.Uri;
|
|
1312
|
-
|
|
1313
|
-
/**
|
|
1314
|
-
* The absolute file path of the directory containing this extension.
|
|
1315
|
-
* Same as {@linkcode theia.Plugin.pluginPath}.
|
|
1316
|
-
*/
|
|
1317
|
-
readonly extensionPath: string;
|
|
1318
|
-
|
|
1319
|
-
/**
|
|
1320
|
-
* The extension kind describes if an extension runs where the UI runs
|
|
1321
|
-
* or if an extension runs where the remote extension host runs. The extension kind
|
|
1322
|
-
* is defined in the `package.json`-file of extensions. When no remote extension host exists,
|
|
1323
|
-
* the value is {@linkcode ExtensionKind.UI}.
|
|
1324
|
-
*/
|
|
1325
|
-
extensionKind: theia.ExtensionKind;
|
|
1326
|
-
}
|
|
1327
|
-
|
|
1328
|
-
export class Plugin<T> implements theia.Plugin<T> {
|
|
1329
|
-
id: string;
|
|
1330
|
-
pluginPath: string;
|
|
1331
|
-
pluginUri: theia.Uri;
|
|
1332
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1333
|
-
packageJSON: any;
|
|
1334
|
-
pluginType: theia.PluginType;
|
|
1335
|
-
|
|
1336
|
-
constructor(protected readonly pluginManager: PluginManager, plugin: InternalPlugin) {
|
|
1337
|
-
this.id = plugin.model.id;
|
|
1338
|
-
this.pluginPath = plugin.pluginFolder;
|
|
1339
|
-
this.packageJSON = plugin.rawModel;
|
|
1340
|
-
this.pluginType = plugin.model.entryPoint.frontend ? 'frontend' : 'backend';
|
|
1341
|
-
|
|
1342
|
-
if (this.pluginType === 'frontend') {
|
|
1343
|
-
const { origin } = new Endpoint();
|
|
1344
|
-
this.pluginUri = URI.parse(origin + '/' + PluginPackage.toPluginUrl(plugin.model, ''));
|
|
1345
|
-
} else {
|
|
1346
|
-
this.pluginUri = URI.parse(plugin.pluginUri);
|
|
1347
|
-
}
|
|
1348
|
-
}
|
|
1349
|
-
|
|
1350
|
-
get isActive(): boolean {
|
|
1351
|
-
return this.pluginManager.isActive(this.id);
|
|
1352
|
-
}
|
|
1353
|
-
|
|
1354
|
-
get exports(): T {
|
|
1355
|
-
return <T>this.pluginManager.getPluginExport(this.id);
|
|
1356
|
-
}
|
|
1357
|
-
|
|
1358
|
-
activate(): PromiseLike<T> {
|
|
1359
|
-
return this.pluginManager.activatePlugin(this.id).then(() => this.exports);
|
|
1360
|
-
}
|
|
1361
|
-
}
|
|
1362
|
-
|
|
1363
|
-
export class PluginExt<T> extends Plugin<T> implements ExtensionPlugin<T> {
|
|
1364
|
-
extensionPath: string;
|
|
1365
|
-
extensionUri: theia.Uri;
|
|
1366
|
-
extensionKind: ExtensionKind;
|
|
1367
|
-
|
|
1368
|
-
constructor(protected override readonly pluginManager: PluginManager, plugin: InternalPlugin) {
|
|
1369
|
-
super(pluginManager, plugin);
|
|
1370
|
-
|
|
1371
|
-
this.extensionPath = this.pluginPath;
|
|
1372
|
-
this.extensionUri = this.pluginUri;
|
|
1373
|
-
this.extensionKind = ExtensionKind.UI; // stub as a local extension (not running on a remote workspace)
|
|
1374
|
-
}
|
|
1375
|
-
|
|
1376
|
-
override get isActive(): boolean {
|
|
1377
|
-
return this.pluginManager.isActive(this.id);
|
|
1378
|
-
}
|
|
1379
|
-
|
|
1380
|
-
override get exports(): T {
|
|
1381
|
-
return <T>this.pluginManager.getPluginExport(this.id);
|
|
1382
|
-
}
|
|
1383
|
-
|
|
1384
|
-
override activate(): PromiseLike<T> {
|
|
1385
|
-
return this.pluginManager.activatePlugin(this.id).then(() => this.exports);
|
|
1386
|
-
}
|
|
1387
|
-
}
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2018-2022 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
|
+
|
|
17
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
18
|
+
/* tslint:disable:typedef */
|
|
19
|
+
|
|
20
|
+
import type * as theia from '@theia/plugin';
|
|
21
|
+
import { CommandRegistryImpl } from './command-registry';
|
|
22
|
+
import { Emitter } from '@theia/core/lib/common/event';
|
|
23
|
+
import { CancellationError, CancellationToken, CancellationTokenSource } from '@theia/core/lib/common/cancellation';
|
|
24
|
+
import { QuickOpenExtImpl } from './quick-open';
|
|
25
|
+
import {
|
|
26
|
+
MAIN_RPC_CONTEXT,
|
|
27
|
+
Plugin as InternalPlugin,
|
|
28
|
+
PluginManager,
|
|
29
|
+
PluginAPIFactory,
|
|
30
|
+
MainMessageType,
|
|
31
|
+
DebugConfigurationProviderTriggerKind,
|
|
32
|
+
PLUGIN_RPC_CONTEXT
|
|
33
|
+
} from '../common/plugin-api-rpc';
|
|
34
|
+
import { RPCProtocol } from '../common/rpc-protocol';
|
|
35
|
+
import { MessageRegistryExt } from './message-registry';
|
|
36
|
+
import { StatusBarMessageRegistryExt } from './status-bar-message-registry';
|
|
37
|
+
import { WindowStateExtImpl } from './window-state';
|
|
38
|
+
import { WorkspaceExtImpl } from './workspace';
|
|
39
|
+
import { EnvExtImpl } from './env';
|
|
40
|
+
import { QueryParameters } from '../common/env';
|
|
41
|
+
import {
|
|
42
|
+
ConfigurationTarget,
|
|
43
|
+
Disposable,
|
|
44
|
+
Position,
|
|
45
|
+
Range,
|
|
46
|
+
Selection,
|
|
47
|
+
ViewColumn,
|
|
48
|
+
TextEditorSelectionChangeKind,
|
|
49
|
+
EndOfLine,
|
|
50
|
+
SnippetString,
|
|
51
|
+
ThemeColor,
|
|
52
|
+
ThemeIcon,
|
|
53
|
+
TextEditorRevealType,
|
|
54
|
+
TextEditorLineNumbersStyle,
|
|
55
|
+
DecorationRangeBehavior,
|
|
56
|
+
OverviewRulerLane,
|
|
57
|
+
StatusBarAlignment,
|
|
58
|
+
RelativePattern,
|
|
59
|
+
IndentAction,
|
|
60
|
+
CompletionItem,
|
|
61
|
+
CompletionItemKind,
|
|
62
|
+
CompletionList,
|
|
63
|
+
TextEdit,
|
|
64
|
+
SnippetTextEdit,
|
|
65
|
+
CompletionTriggerKind,
|
|
66
|
+
Diagnostic,
|
|
67
|
+
DiagnosticRelatedInformation,
|
|
68
|
+
DebugConsoleMode,
|
|
69
|
+
DiagnosticSeverity,
|
|
70
|
+
DiagnosticTag,
|
|
71
|
+
CompletionItemTag,
|
|
72
|
+
Location,
|
|
73
|
+
LogLevel,
|
|
74
|
+
Progress,
|
|
75
|
+
ProgressOptions,
|
|
76
|
+
ProgressLocation,
|
|
77
|
+
ParameterInformation,
|
|
78
|
+
SignatureInformation,
|
|
79
|
+
SignatureHelp,
|
|
80
|
+
SignatureHelpTriggerKind,
|
|
81
|
+
Hover,
|
|
82
|
+
EvaluatableExpression,
|
|
83
|
+
InlineValueEvaluatableExpression,
|
|
84
|
+
InlineValueText,
|
|
85
|
+
InlineValueVariableLookup,
|
|
86
|
+
InlineValueContext,
|
|
87
|
+
DocumentHighlightKind,
|
|
88
|
+
DocumentHighlight,
|
|
89
|
+
DocumentLink,
|
|
90
|
+
CodeLens,
|
|
91
|
+
CodeActionKind,
|
|
92
|
+
CodeActionTrigger,
|
|
93
|
+
CodeActionTriggerKind,
|
|
94
|
+
TextDocumentSaveReason,
|
|
95
|
+
CodeAction,
|
|
96
|
+
DataTransferItem,
|
|
97
|
+
DataTransfer,
|
|
98
|
+
TreeItem,
|
|
99
|
+
TreeItemCollapsibleState,
|
|
100
|
+
DocumentSymbol,
|
|
101
|
+
SymbolTag,
|
|
102
|
+
WorkspaceEdit,
|
|
103
|
+
SymbolInformation,
|
|
104
|
+
FileType,
|
|
105
|
+
FileChangeType,
|
|
106
|
+
ShellQuoting,
|
|
107
|
+
ShellExecution,
|
|
108
|
+
ProcessExecution,
|
|
109
|
+
CustomExecution,
|
|
110
|
+
TaskScope,
|
|
111
|
+
TaskPanelKind,
|
|
112
|
+
TaskRevealKind,
|
|
113
|
+
TaskGroup,
|
|
114
|
+
Task,
|
|
115
|
+
Task2,
|
|
116
|
+
DebugAdapterExecutable,
|
|
117
|
+
DebugAdapterServer,
|
|
118
|
+
DebugAdapterNamedPipeServer,
|
|
119
|
+
DebugAdapterInlineImplementation,
|
|
120
|
+
Breakpoint,
|
|
121
|
+
SourceBreakpoint,
|
|
122
|
+
FunctionBreakpoint,
|
|
123
|
+
FoldingRange,
|
|
124
|
+
FoldingRangeKind,
|
|
125
|
+
SelectionRange,
|
|
126
|
+
Color,
|
|
127
|
+
ColorInformation,
|
|
128
|
+
ColorPresentation,
|
|
129
|
+
OperatingSystem,
|
|
130
|
+
WebviewPanelTargetArea,
|
|
131
|
+
UIKind,
|
|
132
|
+
FileSystemError,
|
|
133
|
+
CommentThreadCollapsibleState,
|
|
134
|
+
QuickInputButtons,
|
|
135
|
+
QuickPickItemKind,
|
|
136
|
+
CommentMode,
|
|
137
|
+
CallHierarchyItem,
|
|
138
|
+
CallHierarchyIncomingCall,
|
|
139
|
+
CallHierarchyOutgoingCall,
|
|
140
|
+
TypeHierarchyItem,
|
|
141
|
+
TimelineItem,
|
|
142
|
+
EnvironmentVariableMutatorType,
|
|
143
|
+
SemanticTokensLegend,
|
|
144
|
+
SemanticTokensBuilder,
|
|
145
|
+
SemanticTokens,
|
|
146
|
+
SemanticTokensEdits,
|
|
147
|
+
SemanticTokensEdit,
|
|
148
|
+
ColorThemeKind,
|
|
149
|
+
SourceControlInputBoxValidationType,
|
|
150
|
+
URI,
|
|
151
|
+
FileDecoration,
|
|
152
|
+
ExtensionMode,
|
|
153
|
+
LinkedEditingRanges,
|
|
154
|
+
LanguageStatusSeverity,
|
|
155
|
+
TextDocumentChangeReason,
|
|
156
|
+
InputBoxValidationSeverity,
|
|
157
|
+
TerminalLink,
|
|
158
|
+
TerminalLocation,
|
|
159
|
+
TerminalProfile,
|
|
160
|
+
InlayHint,
|
|
161
|
+
InlayHintKind,
|
|
162
|
+
InlayHintLabelPart,
|
|
163
|
+
NotebookCell,
|
|
164
|
+
NotebookCellKind,
|
|
165
|
+
NotebookCellStatusBarAlignment,
|
|
166
|
+
NotebookEditorRevealType,
|
|
167
|
+
NotebookControllerAffinity,
|
|
168
|
+
NotebookCellData,
|
|
169
|
+
NotebookCellOutput,
|
|
170
|
+
NotebookCellOutputItem,
|
|
171
|
+
NotebookData,
|
|
172
|
+
NotebookDocument,
|
|
173
|
+
NotebookRange,
|
|
174
|
+
NotebookCellStatusBarItem,
|
|
175
|
+
NotebookEdit,
|
|
176
|
+
TestRunProfileKind,
|
|
177
|
+
TestTag,
|
|
178
|
+
TestRunRequest,
|
|
179
|
+
TestMessage,
|
|
180
|
+
ExtensionKind,
|
|
181
|
+
InlineCompletionItem,
|
|
182
|
+
InlineCompletionList,
|
|
183
|
+
InlineCompletionTriggerKind,
|
|
184
|
+
TextTabInput,
|
|
185
|
+
CustomEditorTabInput,
|
|
186
|
+
NotebookDiffEditorTabInput,
|
|
187
|
+
NotebookEditorTabInput,
|
|
188
|
+
TerminalEditorTabInput,
|
|
189
|
+
TextDiffTabInput,
|
|
190
|
+
TextMergeTabInput,
|
|
191
|
+
WebviewEditorTabInput
|
|
192
|
+
} from './types-impl';
|
|
193
|
+
import { AuthenticationExtImpl } from './authentication-ext';
|
|
194
|
+
import { SymbolKind } from '../common/plugin-api-rpc-model';
|
|
195
|
+
import { EditorsAndDocumentsExtImpl } from './editors-and-documents';
|
|
196
|
+
import { TextEditorsExtImpl } from './text-editors';
|
|
197
|
+
import { DocumentsExtImpl } from './documents';
|
|
198
|
+
import { TextEditorCursorStyle } from '../common/editor-options';
|
|
199
|
+
import { PreferenceRegistryExtImpl } from './preference-registry';
|
|
200
|
+
import { OutputChannelRegistryExtImpl } from './output-channel-registry';
|
|
201
|
+
import { TerminalServiceExtImpl, TerminalExtImpl } from './terminal-ext';
|
|
202
|
+
import { LanguagesExtImpl } from './languages';
|
|
203
|
+
import { fromDocumentSelector, pluginToPluginInfo, fromGlobPattern } from './type-converters';
|
|
204
|
+
import { DialogsExtImpl } from './dialogs';
|
|
205
|
+
import { NotificationExtImpl } from './notification';
|
|
206
|
+
import { score } from '@theia/editor/lib/common/language-selector';
|
|
207
|
+
import { MarkdownString } from './markdown-string';
|
|
208
|
+
import { TreeViewsExtImpl } from './tree/tree-views';
|
|
209
|
+
import { ConnectionImpl } from '../common/connection';
|
|
210
|
+
import { TasksExtImpl } from './tasks/tasks';
|
|
211
|
+
import { DebugExtImpl } from './debug/debug-ext';
|
|
212
|
+
import { FileSystemExtImpl } from './file-system-ext-impl';
|
|
213
|
+
import { ScmExtImpl } from './scm';
|
|
214
|
+
import { DecorationsExtImpl } from './decorations';
|
|
215
|
+
import { TextEditorExt } from './text-editor';
|
|
216
|
+
import { ClipboardExt } from './clipboard-ext';
|
|
217
|
+
import { WebviewsExtImpl } from './webviews';
|
|
218
|
+
import { ExtHostFileSystemEventService } from './file-system-event-service-ext-impl';
|
|
219
|
+
import { LabelServiceExtImpl } from '../plugin/label-service';
|
|
220
|
+
import {
|
|
221
|
+
createRunProfile,
|
|
222
|
+
createTestRun,
|
|
223
|
+
testItemCollection,
|
|
224
|
+
createTestItem
|
|
225
|
+
} from './stubs/tests-api';
|
|
226
|
+
import { TimelineExtImpl } from './timeline';
|
|
227
|
+
import { ThemingExtImpl } from './theming';
|
|
228
|
+
import { CommentsExtImpl } from './comments';
|
|
229
|
+
import { CustomEditorsExtImpl } from './custom-editors';
|
|
230
|
+
import { WebviewViewsExtImpl } from './webview-views';
|
|
231
|
+
import { PluginPackage } from '../common';
|
|
232
|
+
import { Endpoint } from '@theia/core/lib/browser/endpoint';
|
|
233
|
+
import { FilePermission } from '@theia/filesystem/lib/common/files';
|
|
234
|
+
import { TabsExtImpl } from './tabs';
|
|
235
|
+
|
|
236
|
+
export function createAPIFactory(
|
|
237
|
+
rpc: RPCProtocol,
|
|
238
|
+
pluginManager: PluginManager,
|
|
239
|
+
envExt: EnvExtImpl,
|
|
240
|
+
debugExt: DebugExtImpl,
|
|
241
|
+
preferenceRegistryExt: PreferenceRegistryExtImpl,
|
|
242
|
+
editorsAndDocumentsExt: EditorsAndDocumentsExtImpl,
|
|
243
|
+
workspaceExt: WorkspaceExtImpl,
|
|
244
|
+
messageRegistryExt: MessageRegistryExt,
|
|
245
|
+
clipboard: ClipboardExt,
|
|
246
|
+
webviewExt: WebviewsExtImpl
|
|
247
|
+
): PluginAPIFactory {
|
|
248
|
+
|
|
249
|
+
const authenticationExt = rpc.set(MAIN_RPC_CONTEXT.AUTHENTICATION_EXT, new AuthenticationExtImpl(rpc));
|
|
250
|
+
const commandRegistry = rpc.set(MAIN_RPC_CONTEXT.COMMAND_REGISTRY_EXT, new CommandRegistryImpl(rpc));
|
|
251
|
+
const quickOpenExt = rpc.set(MAIN_RPC_CONTEXT.QUICK_OPEN_EXT, new QuickOpenExtImpl(rpc));
|
|
252
|
+
const dialogsExt = new DialogsExtImpl(rpc);
|
|
253
|
+
const windowStateExt = rpc.set(MAIN_RPC_CONTEXT.WINDOW_STATE_EXT, new WindowStateExtImpl(rpc));
|
|
254
|
+
const notificationExt = rpc.set(MAIN_RPC_CONTEXT.NOTIFICATION_EXT, new NotificationExtImpl(rpc));
|
|
255
|
+
const editors = rpc.set(MAIN_RPC_CONTEXT.TEXT_EDITORS_EXT, new TextEditorsExtImpl(rpc, editorsAndDocumentsExt));
|
|
256
|
+
const documents = rpc.set(MAIN_RPC_CONTEXT.DOCUMENTS_EXT, new DocumentsExtImpl(rpc, editorsAndDocumentsExt));
|
|
257
|
+
const statusBarMessageRegistryExt = new StatusBarMessageRegistryExt(rpc);
|
|
258
|
+
const terminalExt = rpc.set(MAIN_RPC_CONTEXT.TERMINAL_EXT, new TerminalServiceExtImpl(rpc));
|
|
259
|
+
const outputChannelRegistryExt = rpc.set(MAIN_RPC_CONTEXT.OUTPUT_CHANNEL_REGISTRY_EXT, new OutputChannelRegistryExtImpl(rpc));
|
|
260
|
+
const languagesExt = rpc.set(MAIN_RPC_CONTEXT.LANGUAGES_EXT, new LanguagesExtImpl(rpc, documents, commandRegistry));
|
|
261
|
+
const treeViewsExt = rpc.set(MAIN_RPC_CONTEXT.TREE_VIEWS_EXT, new TreeViewsExtImpl(rpc, commandRegistry));
|
|
262
|
+
const tasksExt = rpc.set(MAIN_RPC_CONTEXT.TASKS_EXT, new TasksExtImpl(rpc, terminalExt));
|
|
263
|
+
const connectionExt = rpc.set(MAIN_RPC_CONTEXT.CONNECTION_EXT, new ConnectionImpl(rpc.getProxy(PLUGIN_RPC_CONTEXT.CONNECTION_MAIN)));
|
|
264
|
+
const fileSystemExt = rpc.set(MAIN_RPC_CONTEXT.FILE_SYSTEM_EXT, new FileSystemExtImpl(rpc, languagesExt));
|
|
265
|
+
const extHostFileSystemEvent = rpc.set(MAIN_RPC_CONTEXT.ExtHostFileSystemEventService, new ExtHostFileSystemEventService(rpc, editorsAndDocumentsExt));
|
|
266
|
+
const scmExt = rpc.set(MAIN_RPC_CONTEXT.SCM_EXT, new ScmExtImpl(rpc, commandRegistry));
|
|
267
|
+
const decorationsExt = rpc.set(MAIN_RPC_CONTEXT.DECORATIONS_EXT, new DecorationsExtImpl(rpc));
|
|
268
|
+
const labelServiceExt = rpc.set(MAIN_RPC_CONTEXT.LABEL_SERVICE_EXT, new LabelServiceExtImpl(rpc));
|
|
269
|
+
const timelineExt = rpc.set(MAIN_RPC_CONTEXT.TIMELINE_EXT, new TimelineExtImpl(rpc, commandRegistry));
|
|
270
|
+
const themingExt = rpc.set(MAIN_RPC_CONTEXT.THEMING_EXT, new ThemingExtImpl(rpc));
|
|
271
|
+
const commentsExt = rpc.set(MAIN_RPC_CONTEXT.COMMENTS_EXT, new CommentsExtImpl(rpc, commandRegistry, documents));
|
|
272
|
+
const tabsExt = rpc.set(MAIN_RPC_CONTEXT.TABS_EXT, new TabsExtImpl(rpc));
|
|
273
|
+
const customEditorExt = rpc.set(MAIN_RPC_CONTEXT.CUSTOM_EDITORS_EXT, new CustomEditorsExtImpl(rpc, documents, webviewExt, workspaceExt));
|
|
274
|
+
const webviewViewsExt = rpc.set(MAIN_RPC_CONTEXT.WEBVIEW_VIEWS_EXT, new WebviewViewsExtImpl(rpc, webviewExt));
|
|
275
|
+
rpc.set(MAIN_RPC_CONTEXT.DEBUG_EXT, debugExt);
|
|
276
|
+
|
|
277
|
+
return function (plugin: InternalPlugin): typeof theia {
|
|
278
|
+
const authentication: typeof theia.authentication = {
|
|
279
|
+
registerAuthenticationProvider(id: string, label: string, provider: theia.AuthenticationProvider, options?: theia.AuthenticationProviderOptions): theia.Disposable {
|
|
280
|
+
return authenticationExt.registerAuthenticationProvider(id, label, provider, options);
|
|
281
|
+
},
|
|
282
|
+
getSession(providerId: string, scopes: string[], options: theia.AuthenticationGetSessionOptions) {
|
|
283
|
+
return authenticationExt.getSession(plugin, providerId, scopes, options as any);
|
|
284
|
+
},
|
|
285
|
+
get onDidChangeSessions(): theia.Event<theia.AuthenticationSessionsChangeEvent> {
|
|
286
|
+
return authenticationExt.onDidChangeSessions;
|
|
287
|
+
}
|
|
288
|
+
};
|
|
289
|
+
function commandIsDeclaredInPackage(id: string, model: PluginPackage): boolean {
|
|
290
|
+
const rawCommands = model.contributes?.commands;
|
|
291
|
+
if (!rawCommands) { return false; }
|
|
292
|
+
return Array.isArray(rawCommands) ? rawCommands.some(candidate => candidate.command === id) : rawCommands.command === id;
|
|
293
|
+
}
|
|
294
|
+
const commands: typeof theia.commands = {
|
|
295
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
296
|
+
registerCommand(command: theia.CommandDescription | string, handler?: <T>(...args: any[]) => T | Thenable<T | undefined>, thisArg?: any): Disposable {
|
|
297
|
+
// use of the ID when registering commands
|
|
298
|
+
if (typeof command === 'string') {
|
|
299
|
+
if (handler && commandIsDeclaredInPackage(command, plugin.rawModel)) {
|
|
300
|
+
return commandRegistry.registerHandler(command, handler, thisArg);
|
|
301
|
+
}
|
|
302
|
+
return commandRegistry.registerCommand({ id: command }, handler, thisArg);
|
|
303
|
+
}
|
|
304
|
+
return commandRegistry.registerCommand(command, handler, thisArg);
|
|
305
|
+
},
|
|
306
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
307
|
+
executeCommand<T>(commandId: string, ...args: any[]): PromiseLike<T | undefined> {
|
|
308
|
+
return commandRegistry.executeCommand<T>(commandId, ...args);
|
|
309
|
+
},
|
|
310
|
+
registerTextEditorCommand(command: string, handler: (textEditor: theia.TextEditor, edit: theia.TextEditorEdit, ...arg: any[]) => void, thisArg?: any): Disposable {
|
|
311
|
+
const internalHandler = (...args: any[]): any => {
|
|
312
|
+
const activeTextEditor = editors.getActiveEditor();
|
|
313
|
+
if (!activeTextEditor) {
|
|
314
|
+
console.warn('Cannot execute ' + command + ' because there is no active text editor.');
|
|
315
|
+
return undefined;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
return activeTextEditor.edit((edit: theia.TextEditorEdit) => {
|
|
319
|
+
args.unshift(activeTextEditor, edit);
|
|
320
|
+
handler.apply(thisArg, args);
|
|
321
|
+
}).then(result => {
|
|
322
|
+
if (!result) {
|
|
323
|
+
console.warn('Edits from command ' + command + ' were not applied.');
|
|
324
|
+
}
|
|
325
|
+
}, err => {
|
|
326
|
+
console.warn('An error occurred while running command ' + command, err);
|
|
327
|
+
});
|
|
328
|
+
};
|
|
329
|
+
return commandIsDeclaredInPackage(command, plugin.rawModel)
|
|
330
|
+
? commandRegistry.registerHandler(command, internalHandler)
|
|
331
|
+
: commandRegistry.registerCommand({ id: command }, internalHandler);
|
|
332
|
+
},
|
|
333
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
334
|
+
registerHandler(commandId: string, handler: (...args: any[]) => any, thisArg?: any): Disposable {
|
|
335
|
+
return commandRegistry.registerHandler(commandId, handler, thisArg);
|
|
336
|
+
},
|
|
337
|
+
getKeyBinding(commandId: string): PromiseLike<theia.CommandKeyBinding[] | undefined> {
|
|
338
|
+
return commandRegistry.getKeyBinding(commandId);
|
|
339
|
+
},
|
|
340
|
+
getCommands(filterInternal: boolean = false): PromiseLike<string[]> {
|
|
341
|
+
return commandRegistry.getCommands(filterInternal);
|
|
342
|
+
},
|
|
343
|
+
registerDiffInformationCommand(command: string, callback: (diff: theia.LineChange[], ...args: any[]) => any, thisArg?: any): Disposable {
|
|
344
|
+
// Dummy implementation.
|
|
345
|
+
return new Disposable(() => { });
|
|
346
|
+
}
|
|
347
|
+
};
|
|
348
|
+
|
|
349
|
+
const { onDidChangeActiveTerminal, onDidChangeTerminalState, onDidCloseTerminal, onDidOpenTerminal } = terminalExt;
|
|
350
|
+
const showInformationMessage = messageRegistryExt.showMessage.bind(messageRegistryExt, MainMessageType.Info);
|
|
351
|
+
const showWarningMessage = messageRegistryExt.showMessage.bind(messageRegistryExt, MainMessageType.Warning);
|
|
352
|
+
const showErrorMessage = messageRegistryExt.showMessage.bind(messageRegistryExt, MainMessageType.Error);
|
|
353
|
+
const window: typeof theia.window = {
|
|
354
|
+
|
|
355
|
+
get activeTerminal(): TerminalExtImpl | undefined {
|
|
356
|
+
return terminalExt.activeTerminal;
|
|
357
|
+
},
|
|
358
|
+
get activeTextEditor(): TextEditorExt | undefined {
|
|
359
|
+
return editors.getActiveEditor();
|
|
360
|
+
},
|
|
361
|
+
get visibleTextEditors(): theia.TextEditor[] {
|
|
362
|
+
return editors.getVisibleTextEditors();
|
|
363
|
+
},
|
|
364
|
+
get terminals(): TerminalExtImpl[] {
|
|
365
|
+
return terminalExt.terminals;
|
|
366
|
+
},
|
|
367
|
+
onDidChangeActiveTerminal,
|
|
368
|
+
onDidChangeActiveTextEditor(listener, thisArg?, disposables?) {
|
|
369
|
+
return editors.onDidChangeActiveTextEditor(listener, thisArg, disposables);
|
|
370
|
+
},
|
|
371
|
+
onDidChangeVisibleTextEditors(listener, thisArg?, disposables?) {
|
|
372
|
+
return editors.onDidChangeVisibleTextEditors(listener, thisArg, disposables);
|
|
373
|
+
},
|
|
374
|
+
onDidChangeTextEditorSelection(listener, thisArg?, disposables?) {
|
|
375
|
+
return editors.onDidChangeTextEditorSelection(listener, thisArg, disposables);
|
|
376
|
+
},
|
|
377
|
+
onDidChangeTextEditorOptions(listener, thisArg?, disposables?) {
|
|
378
|
+
return editors.onDidChangeTextEditorOptions(listener, thisArg, disposables);
|
|
379
|
+
},
|
|
380
|
+
onDidChangeTextEditorViewColumn(listener, thisArg?, disposables?) {
|
|
381
|
+
return editors.onDidChangeTextEditorViewColumn(listener, thisArg, disposables);
|
|
382
|
+
},
|
|
383
|
+
onDidChangeTextEditorVisibleRanges(listener, thisArg?, disposables?) {
|
|
384
|
+
return editors.onDidChangeTextEditorVisibleRanges(listener, thisArg, disposables);
|
|
385
|
+
},
|
|
386
|
+
async showTextDocument(documentArg: theia.TextDocument | URI,
|
|
387
|
+
columnOrOptions?: theia.TextDocumentShowOptions | theia.ViewColumn,
|
|
388
|
+
preserveFocus?: boolean
|
|
389
|
+
): Promise<theia.TextEditor> {
|
|
390
|
+
let documentOptions: theia.TextDocumentShowOptions | undefined;
|
|
391
|
+
const uri: URI = documentArg instanceof URI ? documentArg : documentArg.uri;
|
|
392
|
+
if (typeof columnOrOptions === 'number') {
|
|
393
|
+
documentOptions = {
|
|
394
|
+
viewColumn: columnOrOptions
|
|
395
|
+
};
|
|
396
|
+
} else if (columnOrOptions && (columnOrOptions.preserveFocus || columnOrOptions.preview || columnOrOptions.selection || columnOrOptions.viewColumn)) {
|
|
397
|
+
documentOptions = {
|
|
398
|
+
...columnOrOptions
|
|
399
|
+
};
|
|
400
|
+
}
|
|
401
|
+
if (preserveFocus) {
|
|
402
|
+
if (documentOptions) {
|
|
403
|
+
documentOptions.preserveFocus = preserveFocus;
|
|
404
|
+
} else {
|
|
405
|
+
documentOptions = { preserveFocus };
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
await documents.showDocument(uri, documentOptions);
|
|
409
|
+
const textEditor = editors.getVisibleTextEditors().find(editor => editor.document.uri.toString() === uri.toString());
|
|
410
|
+
if (textEditor) {
|
|
411
|
+
return Promise.resolve(textEditor);
|
|
412
|
+
} else {
|
|
413
|
+
throw new Error(`Failed to show text document ${documentArg.toString()}`);
|
|
414
|
+
}
|
|
415
|
+
},
|
|
416
|
+
get visibleNotebookEditors(): theia.NotebookEditor[] {
|
|
417
|
+
return [] as theia.NotebookEditor[];
|
|
418
|
+
},
|
|
419
|
+
onDidChangeVisibleNotebookEditors(listener, thisArg?, disposables?) {
|
|
420
|
+
return Disposable.NULL;
|
|
421
|
+
},
|
|
422
|
+
get activeNotebookEditor(): theia.NotebookEditor | undefined {
|
|
423
|
+
return undefined;
|
|
424
|
+
}, onDidChangeActiveNotebookEditor(listener, thisArg?, disposables?) {
|
|
425
|
+
return Disposable.NULL;
|
|
426
|
+
},
|
|
427
|
+
onDidChangeNotebookEditorSelection(listener, thisArg?, disposables?) {
|
|
428
|
+
return Disposable.NULL;
|
|
429
|
+
},
|
|
430
|
+
onDidChangeNotebookEditorVisibleRanges(listener, thisArg?, disposables?) {
|
|
431
|
+
return Disposable.NULL;
|
|
432
|
+
},
|
|
433
|
+
showNotebookDocument(document: NotebookDocument, options?: theia.NotebookDocumentShowOptions) {
|
|
434
|
+
return Promise.resolve({} as theia.NotebookEditor);
|
|
435
|
+
},
|
|
436
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
437
|
+
showQuickPick(items: any, options?: theia.QuickPickOptions, token?: theia.CancellationToken): any {
|
|
438
|
+
return quickOpenExt.showQuickPick(items, options, token);
|
|
439
|
+
},
|
|
440
|
+
createQuickPick<T extends theia.QuickPickItem>(): theia.QuickPick<T> {
|
|
441
|
+
return quickOpenExt.createQuickPick(plugin);
|
|
442
|
+
},
|
|
443
|
+
showWorkspaceFolderPick(options?: theia.WorkspaceFolderPickOptions): PromiseLike<theia.WorkspaceFolder | undefined> {
|
|
444
|
+
return workspaceExt.pickWorkspaceFolder(options);
|
|
445
|
+
},
|
|
446
|
+
showInformationMessage,
|
|
447
|
+
showWarningMessage,
|
|
448
|
+
showErrorMessage,
|
|
449
|
+
showOpenDialog(options: theia.OpenDialogOptions): PromiseLike<URI[] | undefined> {
|
|
450
|
+
return dialogsExt.showOpenDialog(options);
|
|
451
|
+
},
|
|
452
|
+
showSaveDialog(options: theia.SaveDialogOptions): PromiseLike<URI | undefined> {
|
|
453
|
+
return dialogsExt.showSaveDialog(options);
|
|
454
|
+
},
|
|
455
|
+
showUploadDialog(options: theia.UploadDialogOptions): PromiseLike<URI[] | undefined> {
|
|
456
|
+
return dialogsExt.showUploadDialog(options);
|
|
457
|
+
},
|
|
458
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
459
|
+
setStatusBarMessage(text: string, arg?: number | PromiseLike<any>): Disposable {
|
|
460
|
+
return statusBarMessageRegistryExt.setStatusBarMessage(text, arg);
|
|
461
|
+
},
|
|
462
|
+
showInputBox(options?: theia.InputBoxOptions, token?: theia.CancellationToken): PromiseLike<string | undefined> {
|
|
463
|
+
return quickOpenExt.showInput(options, token);
|
|
464
|
+
},
|
|
465
|
+
createStatusBarItem(alignmentOrId?: theia.StatusBarAlignment | string, priorityOrAlignment?: number | theia.StatusBarAlignment,
|
|
466
|
+
priorityArg?: number): theia.StatusBarItem {
|
|
467
|
+
let id: string | undefined;
|
|
468
|
+
let alignment: number | undefined;
|
|
469
|
+
let priority: number | undefined;
|
|
470
|
+
|
|
471
|
+
if (typeof alignmentOrId === 'string') {
|
|
472
|
+
id = alignmentOrId;
|
|
473
|
+
alignment = priorityOrAlignment;
|
|
474
|
+
priority = priorityArg;
|
|
475
|
+
} else {
|
|
476
|
+
alignment = alignmentOrId;
|
|
477
|
+
priority = priorityOrAlignment;
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
return statusBarMessageRegistryExt.createStatusBarItem(alignment, priority, id);
|
|
481
|
+
},
|
|
482
|
+
createOutputChannel(name: string): theia.OutputChannel {
|
|
483
|
+
return outputChannelRegistryExt.createOutputChannel(name, pluginToPluginInfo(plugin));
|
|
484
|
+
},
|
|
485
|
+
createWebviewPanel(viewType: string,
|
|
486
|
+
title: string,
|
|
487
|
+
showOptions: theia.ViewColumn | theia.WebviewPanelShowOptions,
|
|
488
|
+
options: theia.WebviewPanelOptions & theia.WebviewOptions = {}): theia.WebviewPanel {
|
|
489
|
+
return webviewExt.createWebview(viewType, title, showOptions, options, plugin);
|
|
490
|
+
},
|
|
491
|
+
registerWebviewPanelSerializer(viewType: string, serializer: theia.WebviewPanelSerializer): theia.Disposable {
|
|
492
|
+
return webviewExt.registerWebviewPanelSerializer(viewType, serializer, plugin);
|
|
493
|
+
},
|
|
494
|
+
registerCustomEditorProvider(viewType: string,
|
|
495
|
+
provider: theia.CustomTextEditorProvider | theia.CustomReadonlyEditorProvider,
|
|
496
|
+
options: { webviewOptions?: theia.WebviewPanelOptions, supportsMultipleEditorsPerDocument?: boolean } = {}): theia.Disposable {
|
|
497
|
+
return customEditorExt.registerCustomEditorProvider(viewType, provider, options, plugin);
|
|
498
|
+
},
|
|
499
|
+
registerWebviewViewProvider(viewType: string,
|
|
500
|
+
provider: theia.WebviewViewProvider,
|
|
501
|
+
options?: {
|
|
502
|
+
webviewOptions?: {
|
|
503
|
+
retainContextWhenHidden?: boolean
|
|
504
|
+
}
|
|
505
|
+
}): theia.Disposable {
|
|
506
|
+
return webviewViewsExt.registerWebviewViewProvider(viewType, provider, plugin, options?.webviewOptions);
|
|
507
|
+
},
|
|
508
|
+
get state(): theia.WindowState {
|
|
509
|
+
return windowStateExt.getWindowState();
|
|
510
|
+
},
|
|
511
|
+
onDidChangeWindowState(listener, thisArg?, disposables?): theia.Disposable {
|
|
512
|
+
return windowStateExt.onDidChangeWindowState(listener, thisArg, disposables);
|
|
513
|
+
},
|
|
514
|
+
createTerminal(nameOrOptions: theia.TerminalOptions | theia.ExtensionTerminalOptions | theia.ExtensionTerminalOptions | (string | undefined),
|
|
515
|
+
shellPath?: string,
|
|
516
|
+
shellArgs?: string[] | string): theia.Terminal {
|
|
517
|
+
return terminalExt.createTerminal(nameOrOptions, shellPath, shellArgs);
|
|
518
|
+
},
|
|
519
|
+
onDidChangeTerminalState,
|
|
520
|
+
onDidCloseTerminal,
|
|
521
|
+
onDidOpenTerminal,
|
|
522
|
+
createTextEditorDecorationType(options: theia.DecorationRenderOptions): theia.TextEditorDecorationType {
|
|
523
|
+
return editors.createTextEditorDecorationType(options);
|
|
524
|
+
},
|
|
525
|
+
registerTreeDataProvider<T>(viewId: string, treeDataProvider: theia.TreeDataProvider<T>): Disposable {
|
|
526
|
+
return treeViewsExt.registerTreeDataProvider(plugin, viewId, treeDataProvider);
|
|
527
|
+
},
|
|
528
|
+
createTreeView<T>(viewId: string, options: theia.TreeViewOptions<T>): theia.TreeView<T> {
|
|
529
|
+
return treeViewsExt.createTreeView(plugin, viewId, options);
|
|
530
|
+
},
|
|
531
|
+
withScmProgress<R>(task: (progress: theia.Progress<number>) => Thenable<R>) {
|
|
532
|
+
const options: ProgressOptions = { location: ProgressLocation.SourceControl };
|
|
533
|
+
return notificationExt.withProgress(options, () => task({ report() { /* noop */ } }));
|
|
534
|
+
},
|
|
535
|
+
withProgress<R>(
|
|
536
|
+
options: ProgressOptions,
|
|
537
|
+
task: (progress: Progress<{ message?: string; increment?: number }>, token: theia.CancellationToken) => PromiseLike<R>
|
|
538
|
+
): PromiseLike<R> {
|
|
539
|
+
return notificationExt.withProgress(options, task);
|
|
540
|
+
},
|
|
541
|
+
registerFileDecorationProvider(provider: theia.FileDecorationProvider): theia.Disposable {
|
|
542
|
+
return decorationsExt.registerFileDecorationProvider(provider, pluginToPluginInfo(plugin));
|
|
543
|
+
},
|
|
544
|
+
registerUriHandler(handler: theia.UriHandler): theia.Disposable {
|
|
545
|
+
// TODO ?
|
|
546
|
+
return new Disposable(() => { });
|
|
547
|
+
},
|
|
548
|
+
createInputBox(): theia.InputBox {
|
|
549
|
+
return quickOpenExt.createInputBox(plugin);
|
|
550
|
+
},
|
|
551
|
+
registerTerminalLinkProvider(provider: theia.TerminalLinkProvider): theia.Disposable {
|
|
552
|
+
return terminalExt.registerTerminalLinkProvider(provider);
|
|
553
|
+
},
|
|
554
|
+
registerTerminalProfileProvider(id: string, provider: theia.TerminalProfileProvider): theia.Disposable {
|
|
555
|
+
return terminalExt.registerTerminalProfileProvider(id, provider);
|
|
556
|
+
},
|
|
557
|
+
get activeColorTheme(): theia.ColorTheme {
|
|
558
|
+
return themingExt.activeColorTheme;
|
|
559
|
+
},
|
|
560
|
+
onDidChangeActiveColorTheme(listener, thisArg?, disposables?) {
|
|
561
|
+
return themingExt.onDidChangeActiveColorTheme(listener, thisArg, disposables);
|
|
562
|
+
},
|
|
563
|
+
get tabGroups(): theia.TabGroups {
|
|
564
|
+
return tabsExt.tabGroups;
|
|
565
|
+
}
|
|
566
|
+
};
|
|
567
|
+
|
|
568
|
+
const workspace: typeof theia.workspace = {
|
|
569
|
+
|
|
570
|
+
get fs(): theia.FileSystem {
|
|
571
|
+
return fileSystemExt.fileSystem;
|
|
572
|
+
},
|
|
573
|
+
|
|
574
|
+
get rootPath(): string | undefined {
|
|
575
|
+
return workspaceExt.rootPath;
|
|
576
|
+
},
|
|
577
|
+
get workspaceFolders(): theia.WorkspaceFolder[] | undefined {
|
|
578
|
+
return workspaceExt.workspaceFolders;
|
|
579
|
+
},
|
|
580
|
+
get workspaceFile(): URI | undefined {
|
|
581
|
+
return workspaceExt.workspaceFile;
|
|
582
|
+
},
|
|
583
|
+
get name(): string | undefined {
|
|
584
|
+
return workspaceExt.name;
|
|
585
|
+
},
|
|
586
|
+
onDidChangeWorkspaceFolders(listener, thisArg?, disposables?): theia.Disposable {
|
|
587
|
+
return workspaceExt.onDidChangeWorkspaceFolders(listener, thisArg, disposables);
|
|
588
|
+
},
|
|
589
|
+
get notebookDocuments(): theia.NotebookDocument[] {
|
|
590
|
+
return [] as theia.NotebookDocument[];
|
|
591
|
+
},
|
|
592
|
+
get textDocuments(): theia.TextDocument[] {
|
|
593
|
+
return documents.getAllDocumentData().map(data => data.document);
|
|
594
|
+
},
|
|
595
|
+
onDidChangeTextDocument(listener, thisArg?, disposables?) {
|
|
596
|
+
return documents.onDidChangeDocument(listener, thisArg, disposables);
|
|
597
|
+
},
|
|
598
|
+
onDidCloseTextDocument(listener, thisArg?, disposables?) {
|
|
599
|
+
return documents.onDidRemoveDocument(listener, thisArg, disposables);
|
|
600
|
+
},
|
|
601
|
+
onDidOpenNotebookDocument(listener, thisArg?, disposables?) {
|
|
602
|
+
return Disposable.NULL;
|
|
603
|
+
},
|
|
604
|
+
onDidCloseNotebookDocument(listener, thisArg?, disposables?) {
|
|
605
|
+
return Disposable.NULL;
|
|
606
|
+
},
|
|
607
|
+
onDidChangeNotebookDocument(listener, thisArg?, disposables?) {
|
|
608
|
+
return Disposable.NULL;
|
|
609
|
+
},
|
|
610
|
+
onDidSaveNotebookDocument(listener, thisArg?, disposables?) {
|
|
611
|
+
return Disposable.NULL;
|
|
612
|
+
},
|
|
613
|
+
onDidOpenTextDocument(listener, thisArg?, disposables?) {
|
|
614
|
+
return documents.onDidAddDocument(listener, thisArg, disposables);
|
|
615
|
+
},
|
|
616
|
+
onWillSaveTextDocument(listener, thisArg?, disposables?) {
|
|
617
|
+
return documents.onWillSaveTextDocument(listener, thisArg, disposables);
|
|
618
|
+
},
|
|
619
|
+
onDidSaveTextDocument(listener, thisArg?, disposables?) {
|
|
620
|
+
return documents.onDidSaveTextDocument(listener, thisArg, disposables);
|
|
621
|
+
},
|
|
622
|
+
onDidCreateFiles: (listener, thisArg, disposables) => extHostFileSystemEvent.onDidCreateFile(listener, thisArg, disposables),
|
|
623
|
+
onDidDeleteFiles: (listener, thisArg, disposables) => extHostFileSystemEvent.onDidDeleteFile(listener, thisArg, disposables),
|
|
624
|
+
onDidRenameFiles: (listener, thisArg, disposables) => extHostFileSystemEvent.onDidRenameFile(listener, thisArg, disposables),
|
|
625
|
+
onWillCreateFiles: (listener: (e: theia.FileWillCreateEvent) => any, thisArg?: any, disposables?: theia.Disposable[]) =>
|
|
626
|
+
extHostFileSystemEvent.getOnWillCreateFileEvent(plugin)(listener, thisArg, disposables),
|
|
627
|
+
onWillDeleteFiles: (listener: (e: theia.FileWillDeleteEvent) => any, thisArg?: any, disposables?: theia.Disposable[]) =>
|
|
628
|
+
extHostFileSystemEvent.getOnWillDeleteFileEvent(plugin)(listener, thisArg, disposables),
|
|
629
|
+
onWillRenameFiles: (listener: (e: theia.FileWillRenameEvent) => any, thisArg?: any, disposables?: theia.Disposable[]) =>
|
|
630
|
+
extHostFileSystemEvent.getOnWillRenameFileEvent(plugin)(listener, thisArg, disposables),
|
|
631
|
+
getConfiguration(section, resource): theia.WorkspaceConfiguration {
|
|
632
|
+
return preferenceRegistryExt.getConfiguration(section, resource);
|
|
633
|
+
},
|
|
634
|
+
onDidChangeConfiguration(listener, thisArgs?, disposables?): theia.Disposable {
|
|
635
|
+
return preferenceRegistryExt.onDidChangeConfiguration(listener, thisArgs, disposables);
|
|
636
|
+
},
|
|
637
|
+
async openTextDocument(uriOrFileNameOrOptions?: theia.Uri | string | { language?: string; content?: string; }): Promise<theia.TextDocument | undefined> {
|
|
638
|
+
const options = uriOrFileNameOrOptions as { language?: string; content?: string; };
|
|
639
|
+
|
|
640
|
+
let uri: URI;
|
|
641
|
+
if (typeof uriOrFileNameOrOptions === 'string') {
|
|
642
|
+
uri = URI.file(uriOrFileNameOrOptions);
|
|
643
|
+
|
|
644
|
+
} else if (uriOrFileNameOrOptions instanceof URI) {
|
|
645
|
+
uri = uriOrFileNameOrOptions;
|
|
646
|
+
|
|
647
|
+
} else if (!options || typeof options === 'object') {
|
|
648
|
+
uri = await documents.createDocumentData(options);
|
|
649
|
+
|
|
650
|
+
} else {
|
|
651
|
+
return Promise.reject(new Error('illegal argument - uriOrFileNameOrOptions'));
|
|
652
|
+
}
|
|
653
|
+
|
|
654
|
+
const data = await documents.openDocument(uri);
|
|
655
|
+
return data && data.document;
|
|
656
|
+
},
|
|
657
|
+
openNotebookDocument(uriOrString: theia.Uri | string, content?: NotebookData): Promise<theia.NotebookDocument | undefined> {
|
|
658
|
+
return Promise.reject(new Error('Notebook API is stubbed'));
|
|
659
|
+
},
|
|
660
|
+
createFileSystemWatcher: (pattern, ignoreCreate, ignoreChange, ignoreDelete): theia.FileSystemWatcher =>
|
|
661
|
+
extHostFileSystemEvent.createFileSystemWatcher(fromGlobPattern(pattern), ignoreCreate, ignoreChange, ignoreDelete),
|
|
662
|
+
findFiles(include: theia.GlobPattern, exclude?: theia.GlobPattern | null, maxResults?: number, token?: CancellationToken): PromiseLike<URI[]> {
|
|
663
|
+
return workspaceExt.findFiles(include, exclude, maxResults, token);
|
|
664
|
+
},
|
|
665
|
+
findTextInFiles(query: theia.TextSearchQuery, optionsOrCallback: theia.FindTextInFilesOptions | ((result: theia.TextSearchResult) => void),
|
|
666
|
+
callbackOrToken?: CancellationToken | ((result: theia.TextSearchResult) => void), token?: CancellationToken): Promise<theia.TextSearchComplete> {
|
|
667
|
+
return workspaceExt.findTextInFiles(query, optionsOrCallback, callbackOrToken, token);
|
|
668
|
+
},
|
|
669
|
+
saveAll(includeUntitled?: boolean): PromiseLike<boolean> {
|
|
670
|
+
return editors.saveAll(includeUntitled);
|
|
671
|
+
},
|
|
672
|
+
applyEdit(edit: theia.WorkspaceEdit): PromiseLike<boolean> {
|
|
673
|
+
return editors.applyWorkspaceEdit(edit);
|
|
674
|
+
},
|
|
675
|
+
registerTextDocumentContentProvider(scheme: string, provider: theia.TextDocumentContentProvider): theia.Disposable {
|
|
676
|
+
return workspaceExt.registerTextDocumentContentProvider(scheme, provider);
|
|
677
|
+
},
|
|
678
|
+
registerFileSystemProvider(scheme: string, provider: theia.FileSystemProvider, options?: { isCaseSensitive?: boolean, isReadonly?: boolean }): theia.Disposable {
|
|
679
|
+
return fileSystemExt.registerFileSystemProvider(scheme, provider, options);
|
|
680
|
+
},
|
|
681
|
+
getWorkspaceFolder(uri: theia.Uri): theia.WorkspaceFolder | undefined {
|
|
682
|
+
return workspaceExt.getWorkspaceFolder(uri);
|
|
683
|
+
},
|
|
684
|
+
asRelativePath(pathOrUri: theia.Uri | string, includeWorkspace?: boolean): string | undefined {
|
|
685
|
+
return workspaceExt.getRelativePath(pathOrUri, includeWorkspace);
|
|
686
|
+
},
|
|
687
|
+
updateWorkspaceFolders: (index, deleteCount, ...workspaceFoldersToAdd) =>
|
|
688
|
+
workspaceExt.updateWorkspaceFolders(index, deleteCount || 0, ...workspaceFoldersToAdd)
|
|
689
|
+
,
|
|
690
|
+
registerTaskProvider(type: string, provider: theia.TaskProvider): theia.Disposable {
|
|
691
|
+
return tasks.registerTaskProvider(type, provider);
|
|
692
|
+
},
|
|
693
|
+
registerResourceLabelFormatter(formatter: theia.ResourceLabelFormatter): theia.Disposable {
|
|
694
|
+
return labelServiceExt.$registerResourceLabelFormatter(formatter);
|
|
695
|
+
},
|
|
696
|
+
registerTimelineProvider(scheme: string | string[], provider: theia.TimelineProvider): theia.Disposable {
|
|
697
|
+
return timelineExt.registerTimelineProvider(plugin, scheme, provider);
|
|
698
|
+
},
|
|
699
|
+
registerNotebookSerializer(notebookType: string, serializer: theia.NotebookSerializer, options?: theia.NotebookDocumentContentOptions): theia.Disposable {
|
|
700
|
+
return Disposable.NULL;
|
|
701
|
+
},
|
|
702
|
+
get isTrusted(): boolean {
|
|
703
|
+
return workspaceExt.trusted;
|
|
704
|
+
},
|
|
705
|
+
async requestWorkspaceTrust(options?: theia.WorkspaceTrustRequestOptions): Promise<boolean | undefined> {
|
|
706
|
+
return workspaceExt.requestWorkspaceTrust(options);
|
|
707
|
+
},
|
|
708
|
+
get onDidGrantWorkspaceTrust(): theia.Event<void> {
|
|
709
|
+
return workspaceExt.onDidGrantWorkspaceTrust;
|
|
710
|
+
}
|
|
711
|
+
};
|
|
712
|
+
|
|
713
|
+
const onDidChangeLogLevel = new Emitter<theia.LogLevel>();
|
|
714
|
+
const env: typeof theia.env = Object.freeze({
|
|
715
|
+
get appName(): string { return envExt.appName; },
|
|
716
|
+
get appRoot(): string { return envExt.appRoot; },
|
|
717
|
+
get appHost(): string { return envExt.appHost; },
|
|
718
|
+
get language(): string { return envExt.language; },
|
|
719
|
+
get isNewAppInstall(): boolean { return envExt.isNewAppInstall; },
|
|
720
|
+
get isTelemetryEnabled(): boolean { return envExt.isTelemetryEnabled; },
|
|
721
|
+
get onDidChangeTelemetryEnabled(): theia.Event<boolean> {
|
|
722
|
+
return envExt.onDidChangeTelemetryEnabled;
|
|
723
|
+
},
|
|
724
|
+
get remoteName(): string | undefined { return envExt.remoteName; },
|
|
725
|
+
get machineId(): string { return envExt.machineId; },
|
|
726
|
+
get sessionId(): string { return envExt.sessionId; },
|
|
727
|
+
get uriScheme(): string { return envExt.uriScheme; },
|
|
728
|
+
get shell(): string { return envExt.shell; },
|
|
729
|
+
get uiKind(): theia.UIKind { return envExt.uiKind; },
|
|
730
|
+
clipboard,
|
|
731
|
+
getEnvVariable(envVarName: string): PromiseLike<string | undefined> {
|
|
732
|
+
return envExt.getEnvVariable(envVarName);
|
|
733
|
+
},
|
|
734
|
+
getQueryParameter(queryParamName: string): string | string[] | undefined {
|
|
735
|
+
return envExt.getQueryParameter(queryParamName);
|
|
736
|
+
},
|
|
737
|
+
getQueryParameters(): QueryParameters {
|
|
738
|
+
return envExt.getQueryParameters();
|
|
739
|
+
},
|
|
740
|
+
getClientOperatingSystem(): PromiseLike<theia.OperatingSystem> {
|
|
741
|
+
return envExt.getClientOperatingSystem();
|
|
742
|
+
},
|
|
743
|
+
openExternal(uri: theia.Uri): PromiseLike<boolean> {
|
|
744
|
+
return windowStateExt.openUri(uri);
|
|
745
|
+
},
|
|
746
|
+
asExternalUri(target: theia.Uri): PromiseLike<theia.Uri> {
|
|
747
|
+
return windowStateExt.asExternalUri(target);
|
|
748
|
+
},
|
|
749
|
+
get logLevel(): theia.LogLevel { return LogLevel.Info; },
|
|
750
|
+
get onDidChangeLogLevel(): theia.Event<theia.LogLevel> { return onDidChangeLogLevel.event; }
|
|
751
|
+
});
|
|
752
|
+
|
|
753
|
+
const extensions: typeof theia.extensions = Object.freeze({
|
|
754
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
755
|
+
getExtension<T = any>(extensionId: string): theia.Extension<T> | undefined {
|
|
756
|
+
const plg = pluginManager.getPluginById(extensionId.toLowerCase());
|
|
757
|
+
if (plg) {
|
|
758
|
+
return new PluginExt(pluginManager, plg);
|
|
759
|
+
}
|
|
760
|
+
return undefined;
|
|
761
|
+
},
|
|
762
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
763
|
+
get all(): readonly theia.Extension<any>[] {
|
|
764
|
+
return pluginManager.getAllPlugins().map(plg => new PluginExt(pluginManager, plg));
|
|
765
|
+
},
|
|
766
|
+
get onDidChange(): theia.Event<void> {
|
|
767
|
+
return pluginManager.onDidChange;
|
|
768
|
+
}
|
|
769
|
+
});
|
|
770
|
+
|
|
771
|
+
const languages: typeof theia.languages = {
|
|
772
|
+
getLanguages(): PromiseLike<string[]> {
|
|
773
|
+
return languagesExt.getLanguages();
|
|
774
|
+
},
|
|
775
|
+
setTextDocumentLanguage(document: theia.TextDocument, languageId: string): PromiseLike<theia.TextDocument> {
|
|
776
|
+
return languagesExt.changeLanguage(document.uri, languageId);
|
|
777
|
+
},
|
|
778
|
+
match(selector: theia.DocumentSelector, document: theia.TextDocument): number {
|
|
779
|
+
return score(fromDocumentSelector(selector), document.uri.scheme, document.uri.path, document.languageId, true);
|
|
780
|
+
},
|
|
781
|
+
get onDidChangeDiagnostics(): theia.Event<theia.DiagnosticChangeEvent> {
|
|
782
|
+
return languagesExt.onDidChangeDiagnostics;
|
|
783
|
+
},
|
|
784
|
+
getDiagnostics(resource?: URI) {
|
|
785
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
786
|
+
return <any>languagesExt.getDiagnostics(resource);
|
|
787
|
+
},
|
|
788
|
+
createDiagnosticCollection(name?: string): theia.DiagnosticCollection {
|
|
789
|
+
return languagesExt.createDiagnosticCollection(name);
|
|
790
|
+
},
|
|
791
|
+
setLanguageConfiguration(language: string, configuration: theia.LanguageConfiguration): theia.Disposable {
|
|
792
|
+
return languagesExt.setLanguageConfiguration(language, configuration);
|
|
793
|
+
},
|
|
794
|
+
registerCompletionItemProvider(selector: theia.DocumentSelector, provider: theia.CompletionItemProvider, ...triggerCharacters: string[]): theia.Disposable {
|
|
795
|
+
return languagesExt.registerCompletionItemProvider(selector, provider, triggerCharacters, pluginToPluginInfo(plugin));
|
|
796
|
+
},
|
|
797
|
+
registerInlineCompletionItemProvider(selector: theia.DocumentSelector, provider: theia.InlineCompletionItemProvider): theia.Disposable {
|
|
798
|
+
return languagesExt.registerInlineCompletionsProvider(selector, provider);
|
|
799
|
+
},
|
|
800
|
+
registerDefinitionProvider(selector: theia.DocumentSelector, provider: theia.DefinitionProvider): theia.Disposable {
|
|
801
|
+
return languagesExt.registerDefinitionProvider(selector, provider, pluginToPluginInfo(plugin));
|
|
802
|
+
},
|
|
803
|
+
registerDeclarationProvider(selector: theia.DocumentSelector, provider: theia.DeclarationProvider): theia.Disposable {
|
|
804
|
+
return languagesExt.registerDeclarationProvider(selector, provider, pluginToPluginInfo(plugin));
|
|
805
|
+
},
|
|
806
|
+
registerSignatureHelpProvider(
|
|
807
|
+
selector: theia.DocumentSelector, provider: theia.SignatureHelpProvider, first?: string | theia.SignatureHelpProviderMetadata, ...remaining: string[]
|
|
808
|
+
): theia.Disposable {
|
|
809
|
+
let metadata: theia.SignatureHelpProviderMetadata;
|
|
810
|
+
if (typeof first === 'object') {
|
|
811
|
+
metadata = first;
|
|
812
|
+
} else {
|
|
813
|
+
const triggerCharacters: string[] = [];
|
|
814
|
+
metadata = { triggerCharacters, retriggerCharacters: [] };
|
|
815
|
+
if (first) {
|
|
816
|
+
triggerCharacters.push(first, ...remaining);
|
|
817
|
+
}
|
|
818
|
+
}
|
|
819
|
+
return languagesExt.registerSignatureHelpProvider(selector, provider, metadata, pluginToPluginInfo(plugin));
|
|
820
|
+
},
|
|
821
|
+
registerTypeDefinitionProvider(selector: theia.DocumentSelector, provider: theia.TypeDefinitionProvider): theia.Disposable {
|
|
822
|
+
return languagesExt.registerTypeDefinitionProvider(selector, provider, pluginToPluginInfo(plugin));
|
|
823
|
+
},
|
|
824
|
+
registerImplementationProvider(selector: theia.DocumentSelector, provider: theia.ImplementationProvider): theia.Disposable {
|
|
825
|
+
return languagesExt.registerImplementationProvider(selector, provider, pluginToPluginInfo(plugin));
|
|
826
|
+
},
|
|
827
|
+
registerHoverProvider(selector: theia.DocumentSelector, provider: theia.HoverProvider): theia.Disposable {
|
|
828
|
+
return languagesExt.registerHoverProvider(selector, provider, pluginToPluginInfo(plugin));
|
|
829
|
+
},
|
|
830
|
+
registerEvaluatableExpressionProvider(selector: theia.DocumentSelector, provider: theia.EvaluatableExpressionProvider): theia.Disposable {
|
|
831
|
+
return languagesExt.registerEvaluatableExpressionProvider(selector, provider, pluginToPluginInfo(plugin));
|
|
832
|
+
},
|
|
833
|
+
registerInlineValuesProvider(selector: theia.DocumentSelector, provider: theia.InlineValuesProvider): theia.Disposable {
|
|
834
|
+
return languagesExt.registerInlineValuesProvider(selector, provider, pluginToPluginInfo(plugin));
|
|
835
|
+
},
|
|
836
|
+
registerDocumentHighlightProvider(selector: theia.DocumentSelector, provider: theia.DocumentHighlightProvider): theia.Disposable {
|
|
837
|
+
return languagesExt.registerDocumentHighlightProvider(selector, provider, pluginToPluginInfo(plugin));
|
|
838
|
+
},
|
|
839
|
+
registerWorkspaceSymbolProvider(provider: theia.WorkspaceSymbolProvider): theia.Disposable {
|
|
840
|
+
return languagesExt.registerWorkspaceSymbolProvider(provider, pluginToPluginInfo(plugin));
|
|
841
|
+
},
|
|
842
|
+
registerDocumentFormattingEditProvider(selector: theia.DocumentSelector, provider: theia.DocumentFormattingEditProvider): theia.Disposable {
|
|
843
|
+
return languagesExt.registerDocumentFormattingEditProvider(selector, provider, pluginToPluginInfo(plugin));
|
|
844
|
+
},
|
|
845
|
+
registerDocumentRangeFormattingEditProvider(selector: theia.DocumentSelector, provider: theia.DocumentRangeFormattingEditProvider): theia.Disposable {
|
|
846
|
+
return languagesExt.registerDocumentRangeFormattingEditProvider(selector, provider, pluginToPluginInfo(plugin));
|
|
847
|
+
},
|
|
848
|
+
registerOnTypeFormattingEditProvider(
|
|
849
|
+
selector: theia.DocumentSelector,
|
|
850
|
+
provider: theia.OnTypeFormattingEditProvider,
|
|
851
|
+
firstTriggerCharacter: string,
|
|
852
|
+
...moreTriggerCharacters: string[]
|
|
853
|
+
): theia.Disposable {
|
|
854
|
+
return languagesExt.registerOnTypeFormattingEditProvider(selector, provider, [firstTriggerCharacter].concat(moreTriggerCharacters), pluginToPluginInfo(plugin));
|
|
855
|
+
},
|
|
856
|
+
registerDocumentLinkProvider(selector: theia.DocumentSelector, provider: theia.DocumentLinkProvider): theia.Disposable {
|
|
857
|
+
return languagesExt.registerDocumentLinkProvider(selector, provider, pluginToPluginInfo(plugin));
|
|
858
|
+
},
|
|
859
|
+
registerCodeActionsProvider(selector: theia.DocumentSelector, provider: theia.CodeActionProvider, metadata?: theia.CodeActionProviderMetadata): theia.Disposable {
|
|
860
|
+
return languagesExt.registerCodeActionsProvider(selector, provider, plugin.model, pluginToPluginInfo(plugin), metadata);
|
|
861
|
+
},
|
|
862
|
+
registerCodeLensProvider(selector: theia.DocumentSelector, provider: theia.CodeLensProvider): theia.Disposable {
|
|
863
|
+
return languagesExt.registerCodeLensProvider(selector, provider, pluginToPluginInfo(plugin));
|
|
864
|
+
},
|
|
865
|
+
registerReferenceProvider(selector: theia.DocumentSelector, provider: theia.ReferenceProvider): theia.Disposable {
|
|
866
|
+
return languagesExt.registerReferenceProvider(selector, provider, pluginToPluginInfo(plugin));
|
|
867
|
+
},
|
|
868
|
+
registerDocumentSymbolProvider(selector: theia.DocumentSelector, provider: theia.DocumentSymbolProvider,
|
|
869
|
+
metadata?: theia.DocumentSymbolProviderMetadata): theia.Disposable {
|
|
870
|
+
return languagesExt.registerDocumentSymbolProvider(selector, provider, pluginToPluginInfo(plugin), metadata);
|
|
871
|
+
},
|
|
872
|
+
registerColorProvider(selector: theia.DocumentSelector, provider: theia.DocumentColorProvider): theia.Disposable {
|
|
873
|
+
return languagesExt.registerColorProvider(selector, provider, pluginToPluginInfo(plugin));
|
|
874
|
+
},
|
|
875
|
+
registerInlayHintsProvider(selector: theia.DocumentSelector, provider: theia.InlayHintsProvider): theia.Disposable {
|
|
876
|
+
return languagesExt.registerInlayHintsProvider(selector, provider, pluginToPluginInfo(plugin));
|
|
877
|
+
},
|
|
878
|
+
registerFoldingRangeProvider(selector: theia.DocumentSelector, provider: theia.FoldingRangeProvider): theia.Disposable {
|
|
879
|
+
return languagesExt.registerFoldingRangeProvider(selector, provider, pluginToPluginInfo(plugin));
|
|
880
|
+
},
|
|
881
|
+
registerSelectionRangeProvider(selector: theia.DocumentSelector, provider: theia.SelectionRangeProvider): theia.Disposable {
|
|
882
|
+
return languagesExt.registerSelectionRangeProvider(selector, provider, pluginToPluginInfo(plugin));
|
|
883
|
+
},
|
|
884
|
+
registerRenameProvider(selector: theia.DocumentSelector, provider: theia.RenameProvider): theia.Disposable {
|
|
885
|
+
return languagesExt.registerRenameProvider(selector, provider, pluginToPluginInfo(plugin));
|
|
886
|
+
},
|
|
887
|
+
registerDocumentSemanticTokensProvider(selector: theia.DocumentSelector, provider: theia.DocumentSemanticTokensProvider, legend: theia.SemanticTokensLegend):
|
|
888
|
+
theia.Disposable {
|
|
889
|
+
return languagesExt.registerDocumentSemanticTokensProvider(selector, provider, legend, pluginToPluginInfo(plugin));
|
|
890
|
+
},
|
|
891
|
+
registerDocumentRangeSemanticTokensProvider(selector: theia.DocumentSelector, provider: theia.DocumentRangeSemanticTokensProvider, legend: theia.SemanticTokensLegend):
|
|
892
|
+
theia.Disposable {
|
|
893
|
+
return languagesExt.registerDocumentRangeSemanticTokensProvider(selector, provider, legend, pluginToPluginInfo(plugin));
|
|
894
|
+
},
|
|
895
|
+
registerCallHierarchyProvider(selector: theia.DocumentSelector, provider: theia.CallHierarchyProvider): theia.Disposable {
|
|
896
|
+
return languagesExt.registerCallHierarchyProvider(selector, provider);
|
|
897
|
+
},
|
|
898
|
+
registerTypeHierarchyProvider(selector: theia.DocumentSelector, provider: theia.TypeHierarchyProvider): theia.Disposable {
|
|
899
|
+
return languagesExt.registerTypeHierarchyProvider(selector, provider);
|
|
900
|
+
},
|
|
901
|
+
registerLinkedEditingRangeProvider(selector: theia.DocumentSelector, provider: theia.LinkedEditingRangeProvider): theia.Disposable {
|
|
902
|
+
return languagesExt.registerLinkedEditingRangeProvider(selector, provider);
|
|
903
|
+
},
|
|
904
|
+
createLanguageStatusItem(id: string, selector: theia.DocumentSelector): theia.LanguageStatusItem {
|
|
905
|
+
return languagesExt.createLanguageStatusItem(plugin, id, selector);
|
|
906
|
+
}
|
|
907
|
+
};
|
|
908
|
+
|
|
909
|
+
// Tests API (@stubbed)
|
|
910
|
+
// The following implementation is temporarily `@stubbed` and marked as such under `theia.d.ts`
|
|
911
|
+
const tests: typeof theia.tests = {
|
|
912
|
+
createTestController(
|
|
913
|
+
provider,
|
|
914
|
+
controllerLabel: string,
|
|
915
|
+
refreshHandler?: (
|
|
916
|
+
token: theia.CancellationToken
|
|
917
|
+
) => Thenable<void> | void
|
|
918
|
+
) {
|
|
919
|
+
return {
|
|
920
|
+
id: provider,
|
|
921
|
+
label: controllerLabel,
|
|
922
|
+
items: testItemCollection,
|
|
923
|
+
refreshHandler,
|
|
924
|
+
createRunProfile,
|
|
925
|
+
createTestRun,
|
|
926
|
+
createTestItem,
|
|
927
|
+
dispose: () => undefined,
|
|
928
|
+
};
|
|
929
|
+
},
|
|
930
|
+
};
|
|
931
|
+
/* End of Tests API */
|
|
932
|
+
|
|
933
|
+
const plugins: typeof theia.plugins = {
|
|
934
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
935
|
+
get all(): theia.Plugin<any>[] {
|
|
936
|
+
return pluginManager.getAllPlugins().map(plg => new PluginExt(pluginManager, plg));
|
|
937
|
+
},
|
|
938
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
939
|
+
getPlugin(pluginId: string): theia.Plugin<any> | undefined {
|
|
940
|
+
const plg = pluginManager.getPluginById(pluginId.toLowerCase());
|
|
941
|
+
if (plg) {
|
|
942
|
+
return new PluginExt(pluginManager, plg);
|
|
943
|
+
}
|
|
944
|
+
return undefined;
|
|
945
|
+
},
|
|
946
|
+
get onDidChange(): theia.Event<void> {
|
|
947
|
+
return pluginManager.onDidChange;
|
|
948
|
+
}
|
|
949
|
+
};
|
|
950
|
+
|
|
951
|
+
const debuggersContributions = plugin.rawModel.contributes && plugin.rawModel.contributes.debuggers || [];
|
|
952
|
+
debugExt.assistedInject(connectionExt, commandRegistry);
|
|
953
|
+
debugExt.registerDebuggersContributions(plugin.pluginFolder, plugin.model.entryPoint.frontend ? 'frontend' : 'backend', debuggersContributions);
|
|
954
|
+
const debug: typeof theia.debug = {
|
|
955
|
+
get activeDebugSession(): theia.DebugSession | undefined {
|
|
956
|
+
return debugExt.activeDebugSession;
|
|
957
|
+
},
|
|
958
|
+
get activeDebugConsole(): theia.DebugConsole {
|
|
959
|
+
return debugExt.activeDebugConsole;
|
|
960
|
+
},
|
|
961
|
+
get breakpoints(): theia.Breakpoint[] {
|
|
962
|
+
return debugExt.breakpoints;
|
|
963
|
+
},
|
|
964
|
+
get onDidChangeActiveDebugSession(): theia.Event<theia.DebugSession | undefined> {
|
|
965
|
+
return debugExt.onDidChangeActiveDebugSession;
|
|
966
|
+
},
|
|
967
|
+
get onDidStartDebugSession(): theia.Event<theia.DebugSession> {
|
|
968
|
+
return debugExt.onDidStartDebugSession;
|
|
969
|
+
},
|
|
970
|
+
get onDidReceiveDebugSessionCustomEvent(): theia.Event<theia.DebugSessionCustomEvent> {
|
|
971
|
+
return debugExt.onDidReceiveDebugSessionCustomEvent;
|
|
972
|
+
},
|
|
973
|
+
get onDidTerminateDebugSession(): theia.Event<theia.DebugSession> {
|
|
974
|
+
return debugExt.onDidTerminateDebugSession;
|
|
975
|
+
},
|
|
976
|
+
get onDidChangeBreakpoints(): theia.Event<theia.BreakpointsChangeEvent> {
|
|
977
|
+
return debugExt.onDidChangeBreakpoints;
|
|
978
|
+
},
|
|
979
|
+
registerDebugAdapterDescriptorFactory(debugType: string, factory: theia.DebugAdapterDescriptorFactory): Disposable {
|
|
980
|
+
return debugExt.registerDebugAdapterDescriptorFactory(debugType, factory);
|
|
981
|
+
},
|
|
982
|
+
registerDebugConfigurationProvider(
|
|
983
|
+
debugType: string,
|
|
984
|
+
provider: theia.DebugConfigurationProvider,
|
|
985
|
+
triggerKind?: theia.DebugConfigurationProviderTriggerKind
|
|
986
|
+
): Disposable {
|
|
987
|
+
return debugExt.registerDebugConfigurationProvider(debugType, provider, triggerKind || DebugConfigurationProviderTriggerKind.Initial);
|
|
988
|
+
},
|
|
989
|
+
registerDebugAdapterTrackerFactory(debugType: string, factory: theia.DebugAdapterTrackerFactory): Disposable {
|
|
990
|
+
return debugExt.registerDebugAdapterTrackerFactory(debugType, factory);
|
|
991
|
+
},
|
|
992
|
+
startDebugging(
|
|
993
|
+
folder: theia.WorkspaceFolder | undefined,
|
|
994
|
+
nameOrConfiguration: string | theia.DebugConfiguration,
|
|
995
|
+
parentSessionOrOptions?: theia.DebugSession | theia.DebugSessionOptions
|
|
996
|
+
): Thenable<boolean> {
|
|
997
|
+
if (!parentSessionOrOptions || (typeof parentSessionOrOptions === 'object' && 'configuration' in parentSessionOrOptions)) {
|
|
998
|
+
return debugExt.startDebugging(folder, nameOrConfiguration, { parentSession: parentSessionOrOptions });
|
|
999
|
+
}
|
|
1000
|
+
return debugExt.startDebugging(folder, nameOrConfiguration, parentSessionOrOptions || {});
|
|
1001
|
+
},
|
|
1002
|
+
stopDebugging(session?: theia.DebugSession): Thenable<void> {
|
|
1003
|
+
return debugExt.stopDebugging(session);
|
|
1004
|
+
},
|
|
1005
|
+
addBreakpoints(breakpoints: readonly theia.Breakpoint[]): void {
|
|
1006
|
+
debugExt.addBreakpoints(breakpoints);
|
|
1007
|
+
},
|
|
1008
|
+
removeBreakpoints(breakpoints: readonly theia.Breakpoint[]): void {
|
|
1009
|
+
debugExt.removeBreakpoints(breakpoints);
|
|
1010
|
+
},
|
|
1011
|
+
asDebugSourceUri(source: theia.DebugProtocolSource, session?: theia.DebugSession): theia.Uri {
|
|
1012
|
+
return debugExt.asDebugSourceUri(source, session);
|
|
1013
|
+
}
|
|
1014
|
+
};
|
|
1015
|
+
|
|
1016
|
+
const tasks: typeof theia.tasks = {
|
|
1017
|
+
registerTaskProvider(type: string, provider: theia.TaskProvider): theia.Disposable {
|
|
1018
|
+
return tasksExt.registerTaskProvider(type, provider);
|
|
1019
|
+
},
|
|
1020
|
+
|
|
1021
|
+
fetchTasks(filter?: theia.TaskFilter): Thenable<theia.Task[]> {
|
|
1022
|
+
return tasksExt.fetchTasks(filter);
|
|
1023
|
+
},
|
|
1024
|
+
|
|
1025
|
+
executeTask(task: theia.Task): Thenable<theia.TaskExecution> {
|
|
1026
|
+
return tasksExt.executeTask(task);
|
|
1027
|
+
},
|
|
1028
|
+
|
|
1029
|
+
get taskExecutions(): ReadonlyArray<theia.TaskExecution> {
|
|
1030
|
+
return tasksExt.taskExecutions;
|
|
1031
|
+
},
|
|
1032
|
+
onDidStartTask(listener, thisArg?, disposables?) {
|
|
1033
|
+
return tasksExt.onDidStartTask(listener, thisArg, disposables);
|
|
1034
|
+
},
|
|
1035
|
+
onDidEndTask(listener, thisArg?, disposables?) {
|
|
1036
|
+
return tasksExt.onDidEndTask(listener, thisArg, disposables);
|
|
1037
|
+
},
|
|
1038
|
+
onDidStartTaskProcess(listener, thisArg?, disposables?) {
|
|
1039
|
+
return tasksExt.onDidStartTaskProcess(listener, thisArg, disposables);
|
|
1040
|
+
},
|
|
1041
|
+
onDidEndTaskProcess(listener, thisArg?, disposables?) {
|
|
1042
|
+
return tasksExt.onDidEndTaskProcess(listener, thisArg, disposables);
|
|
1043
|
+
}
|
|
1044
|
+
};
|
|
1045
|
+
|
|
1046
|
+
const scm: typeof theia.scm = {
|
|
1047
|
+
get inputBox(): theia.SourceControlInputBox {
|
|
1048
|
+
const inputBox = scmExt.getLastInputBox(plugin);
|
|
1049
|
+
if (inputBox) {
|
|
1050
|
+
return inputBox;
|
|
1051
|
+
} else {
|
|
1052
|
+
throw new Error('Input box not found!');
|
|
1053
|
+
}
|
|
1054
|
+
},
|
|
1055
|
+
createSourceControl(id: string, label: string, rootUri?: URI): theia.SourceControl {
|
|
1056
|
+
return scmExt.createSourceControl(plugin, id, label, rootUri);
|
|
1057
|
+
}
|
|
1058
|
+
};
|
|
1059
|
+
|
|
1060
|
+
const comments: typeof theia.comments = {
|
|
1061
|
+
createCommentController(id: string, label: string): theia.CommentController {
|
|
1062
|
+
return commentsExt.createCommentController(plugin, id, label);
|
|
1063
|
+
}
|
|
1064
|
+
};
|
|
1065
|
+
|
|
1066
|
+
// notebooks API (@stubbed)
|
|
1067
|
+
// The following implementation is temporarily `@stubbed` and marked as such under `theia.d.ts`
|
|
1068
|
+
const notebooks: typeof theia.notebooks = {
|
|
1069
|
+
createNotebookController(
|
|
1070
|
+
id,
|
|
1071
|
+
notebookType,
|
|
1072
|
+
label,
|
|
1073
|
+
handler?: (cells: theia.NotebookCell[],
|
|
1074
|
+
notebook: theia.NotebookDocument,
|
|
1075
|
+
controller: theia.NotebookController) => void | Thenable<void>
|
|
1076
|
+
) {
|
|
1077
|
+
return {
|
|
1078
|
+
id,
|
|
1079
|
+
notebookType,
|
|
1080
|
+
label,
|
|
1081
|
+
handler,
|
|
1082
|
+
createNotebookCellExecution: (cell: NotebookCell) => ({
|
|
1083
|
+
cell,
|
|
1084
|
+
token: CancellationToken.None,
|
|
1085
|
+
executionOrder: undefined,
|
|
1086
|
+
start: () => undefined,
|
|
1087
|
+
end: () => undefined,
|
|
1088
|
+
clearOutput: () => ({} as Thenable<void>),
|
|
1089
|
+
replaceOutput: () => ({} as Thenable<void>),
|
|
1090
|
+
appendOutput: () => ({} as Thenable<void>),
|
|
1091
|
+
replaceOutputItems: () => ({} as Thenable<void>),
|
|
1092
|
+
appendOutputItems: () => ({} as Thenable<void>)
|
|
1093
|
+
}),
|
|
1094
|
+
executeHandler(
|
|
1095
|
+
cells: theia.NotebookCell[],
|
|
1096
|
+
notebook: theia.NotebookDocument,
|
|
1097
|
+
controller: theia.NotebookController
|
|
1098
|
+
): (void | Thenable<void>) { },
|
|
1099
|
+
onDidChangeSelectedNotebooks: () => Disposable.create(() => { }),
|
|
1100
|
+
updateNotebookAffinity: (notebook: theia.NotebookDocument, affinity: theia.NotebookControllerAffinity) => undefined,
|
|
1101
|
+
dispose: () => undefined,
|
|
1102
|
+
};
|
|
1103
|
+
|
|
1104
|
+
},
|
|
1105
|
+
createRendererMessaging(
|
|
1106
|
+
rendererId
|
|
1107
|
+
) {
|
|
1108
|
+
return {
|
|
1109
|
+
rendererId,
|
|
1110
|
+
onDidReceiveMessage: () => Disposable.create(() => { }),
|
|
1111
|
+
postMessage: () => Promise.resolve({}),
|
|
1112
|
+
};
|
|
1113
|
+
},
|
|
1114
|
+
registerNotebookCellStatusBarItemProvider(
|
|
1115
|
+
notebookType,
|
|
1116
|
+
provider
|
|
1117
|
+
) {
|
|
1118
|
+
return {
|
|
1119
|
+
notebookType,
|
|
1120
|
+
provider,
|
|
1121
|
+
dispose: () => undefined,
|
|
1122
|
+
};
|
|
1123
|
+
}
|
|
1124
|
+
};
|
|
1125
|
+
|
|
1126
|
+
return <typeof theia>{
|
|
1127
|
+
version: require('../../package.json').version,
|
|
1128
|
+
authentication,
|
|
1129
|
+
commands,
|
|
1130
|
+
comments,
|
|
1131
|
+
window,
|
|
1132
|
+
workspace,
|
|
1133
|
+
env,
|
|
1134
|
+
extensions,
|
|
1135
|
+
languages,
|
|
1136
|
+
plugins,
|
|
1137
|
+
debug,
|
|
1138
|
+
tasks,
|
|
1139
|
+
scm,
|
|
1140
|
+
notebooks,
|
|
1141
|
+
tests,
|
|
1142
|
+
// Types
|
|
1143
|
+
StatusBarAlignment: StatusBarAlignment,
|
|
1144
|
+
Disposable: Disposable,
|
|
1145
|
+
EventEmitter: Emitter,
|
|
1146
|
+
CancellationTokenSource: CancellationTokenSource,
|
|
1147
|
+
MarkdownString,
|
|
1148
|
+
Position: Position,
|
|
1149
|
+
Range: Range,
|
|
1150
|
+
Selection: Selection,
|
|
1151
|
+
ViewColumn: ViewColumn,
|
|
1152
|
+
TextEditorSelectionChangeKind: TextEditorSelectionChangeKind,
|
|
1153
|
+
Uri: URI,
|
|
1154
|
+
EndOfLine,
|
|
1155
|
+
TextEditorRevealType,
|
|
1156
|
+
TextEditorCursorStyle,
|
|
1157
|
+
TextEditorLineNumbersStyle,
|
|
1158
|
+
ThemeColor,
|
|
1159
|
+
ThemeIcon,
|
|
1160
|
+
SnippetString,
|
|
1161
|
+
DecorationRangeBehavior,
|
|
1162
|
+
OverviewRulerLane,
|
|
1163
|
+
ConfigurationTarget,
|
|
1164
|
+
RelativePattern,
|
|
1165
|
+
IndentAction,
|
|
1166
|
+
CompletionItem,
|
|
1167
|
+
CompletionItemKind,
|
|
1168
|
+
CompletionList,
|
|
1169
|
+
DebugConsoleMode,
|
|
1170
|
+
DiagnosticSeverity,
|
|
1171
|
+
DiagnosticRelatedInformation,
|
|
1172
|
+
LanguageStatusSeverity,
|
|
1173
|
+
Location,
|
|
1174
|
+
LogLevel,
|
|
1175
|
+
DiagnosticTag,
|
|
1176
|
+
CompletionItemTag,
|
|
1177
|
+
Diagnostic,
|
|
1178
|
+
CompletionTriggerKind,
|
|
1179
|
+
TextEdit,
|
|
1180
|
+
SnippetTextEdit,
|
|
1181
|
+
ProgressLocation,
|
|
1182
|
+
ProgressOptions,
|
|
1183
|
+
Progress,
|
|
1184
|
+
ParameterInformation,
|
|
1185
|
+
QuickPickItemKind,
|
|
1186
|
+
SignatureInformation,
|
|
1187
|
+
SignatureHelp,
|
|
1188
|
+
SignatureHelpTriggerKind,
|
|
1189
|
+
Hover,
|
|
1190
|
+
EvaluatableExpression,
|
|
1191
|
+
InlineValueEvaluatableExpression,
|
|
1192
|
+
InlineValueText,
|
|
1193
|
+
InlineValueVariableLookup,
|
|
1194
|
+
InlineValueContext,
|
|
1195
|
+
DocumentHighlightKind,
|
|
1196
|
+
DocumentHighlight,
|
|
1197
|
+
DocumentLink,
|
|
1198
|
+
CodeLens,
|
|
1199
|
+
CodeActionKind,
|
|
1200
|
+
CodeActionTrigger,
|
|
1201
|
+
CodeActionTriggerKind,
|
|
1202
|
+
TextDocumentSaveReason,
|
|
1203
|
+
CodeAction,
|
|
1204
|
+
DataTransferItem,
|
|
1205
|
+
DataTransfer,
|
|
1206
|
+
TreeItem,
|
|
1207
|
+
TreeItemCollapsibleState,
|
|
1208
|
+
SymbolKind,
|
|
1209
|
+
SymbolTag,
|
|
1210
|
+
DocumentSymbol,
|
|
1211
|
+
WorkspaceEdit,
|
|
1212
|
+
SymbolInformation,
|
|
1213
|
+
FileType,
|
|
1214
|
+
FilePermission,
|
|
1215
|
+
FileChangeType,
|
|
1216
|
+
ShellQuoting,
|
|
1217
|
+
ShellExecution,
|
|
1218
|
+
ProcessExecution,
|
|
1219
|
+
CustomExecution,
|
|
1220
|
+
TaskScope,
|
|
1221
|
+
TaskRevealKind,
|
|
1222
|
+
TaskPanelKind,
|
|
1223
|
+
TaskGroup,
|
|
1224
|
+
Task,
|
|
1225
|
+
Task2,
|
|
1226
|
+
DebugAdapterExecutable,
|
|
1227
|
+
DebugAdapterServer,
|
|
1228
|
+
DebugAdapterNamedPipeServer,
|
|
1229
|
+
DebugAdapterInlineImplementation,
|
|
1230
|
+
DebugConfigurationProviderTriggerKind,
|
|
1231
|
+
Breakpoint,
|
|
1232
|
+
SourceBreakpoint,
|
|
1233
|
+
FunctionBreakpoint,
|
|
1234
|
+
Color,
|
|
1235
|
+
ColorInformation,
|
|
1236
|
+
ColorPresentation,
|
|
1237
|
+
FoldingRange,
|
|
1238
|
+
SelectionRange,
|
|
1239
|
+
FoldingRangeKind,
|
|
1240
|
+
OperatingSystem,
|
|
1241
|
+
WebviewPanelTargetArea,
|
|
1242
|
+
UIKind,
|
|
1243
|
+
FileSystemError,
|
|
1244
|
+
CommentThreadCollapsibleState,
|
|
1245
|
+
QuickInputButtons,
|
|
1246
|
+
CommentMode,
|
|
1247
|
+
CallHierarchyItem,
|
|
1248
|
+
CallHierarchyIncomingCall,
|
|
1249
|
+
CallHierarchyOutgoingCall,
|
|
1250
|
+
TypeHierarchyItem,
|
|
1251
|
+
TimelineItem,
|
|
1252
|
+
EnvironmentVariableMutatorType,
|
|
1253
|
+
SemanticTokensLegend,
|
|
1254
|
+
SemanticTokensBuilder,
|
|
1255
|
+
SemanticTokens,
|
|
1256
|
+
SemanticTokensEdits,
|
|
1257
|
+
SemanticTokensEdit,
|
|
1258
|
+
TextDocumentChangeReason,
|
|
1259
|
+
ColorThemeKind,
|
|
1260
|
+
SourceControlInputBoxValidationType,
|
|
1261
|
+
FileDecoration,
|
|
1262
|
+
TerminalLink,
|
|
1263
|
+
TerminalProfile,
|
|
1264
|
+
CancellationError,
|
|
1265
|
+
ExtensionMode,
|
|
1266
|
+
LinkedEditingRanges,
|
|
1267
|
+
InputBoxValidationSeverity,
|
|
1268
|
+
InlayHint,
|
|
1269
|
+
InlayHintKind,
|
|
1270
|
+
InlayHintLabelPart,
|
|
1271
|
+
NotebookCellData,
|
|
1272
|
+
NotebookCellKind,
|
|
1273
|
+
NotebookCellOutput,
|
|
1274
|
+
NotebookCellOutputItem,
|
|
1275
|
+
NotebookCellStatusBarAlignment,
|
|
1276
|
+
NotebookCellStatusBarItem,
|
|
1277
|
+
NotebookControllerAffinity,
|
|
1278
|
+
NotebookData,
|
|
1279
|
+
NotebookEditorRevealType,
|
|
1280
|
+
NotebookDocument,
|
|
1281
|
+
NotebookRange,
|
|
1282
|
+
NotebookEdit,
|
|
1283
|
+
TestRunProfileKind,
|
|
1284
|
+
TestTag,
|
|
1285
|
+
TestRunRequest,
|
|
1286
|
+
TestMessage,
|
|
1287
|
+
ExtensionKind,
|
|
1288
|
+
InlineCompletionItem,
|
|
1289
|
+
InlineCompletionList,
|
|
1290
|
+
InlineCompletionTriggerKind,
|
|
1291
|
+
TabInputText: TextTabInput,
|
|
1292
|
+
TabInputTextDiff: TextDiffTabInput,
|
|
1293
|
+
TabInputTextMerge: TextMergeTabInput,
|
|
1294
|
+
TabInputCustom: CustomEditorTabInput,
|
|
1295
|
+
TabInputNotebook: NotebookEditorTabInput,
|
|
1296
|
+
TabInputNotebookDiff: NotebookDiffEditorTabInput,
|
|
1297
|
+
TabInputWebview: WebviewEditorTabInput,
|
|
1298
|
+
TabInputTerminal: TerminalEditorTabInput,
|
|
1299
|
+
TerminalLocation
|
|
1300
|
+
};
|
|
1301
|
+
};
|
|
1302
|
+
}
|
|
1303
|
+
|
|
1304
|
+
/**
|
|
1305
|
+
* Represents a Theia plugin as well as a VSCode extension.
|
|
1306
|
+
*/
|
|
1307
|
+
export interface ExtensionPlugin<T> extends theia.Plugin<T> {
|
|
1308
|
+
/**
|
|
1309
|
+
* The uri of the directory containing the extension. Same as {@linkcode theia.Plugin.pluginUri}.
|
|
1310
|
+
*/
|
|
1311
|
+
readonly extensionUri: theia.Uri;
|
|
1312
|
+
|
|
1313
|
+
/**
|
|
1314
|
+
* The absolute file path of the directory containing this extension.
|
|
1315
|
+
* Same as {@linkcode theia.Plugin.pluginPath}.
|
|
1316
|
+
*/
|
|
1317
|
+
readonly extensionPath: string;
|
|
1318
|
+
|
|
1319
|
+
/**
|
|
1320
|
+
* The extension kind describes if an extension runs where the UI runs
|
|
1321
|
+
* or if an extension runs where the remote extension host runs. The extension kind
|
|
1322
|
+
* is defined in the `package.json`-file of extensions. When no remote extension host exists,
|
|
1323
|
+
* the value is {@linkcode ExtensionKind.UI}.
|
|
1324
|
+
*/
|
|
1325
|
+
extensionKind: theia.ExtensionKind;
|
|
1326
|
+
}
|
|
1327
|
+
|
|
1328
|
+
export class Plugin<T> implements theia.Plugin<T> {
|
|
1329
|
+
id: string;
|
|
1330
|
+
pluginPath: string;
|
|
1331
|
+
pluginUri: theia.Uri;
|
|
1332
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1333
|
+
packageJSON: any;
|
|
1334
|
+
pluginType: theia.PluginType;
|
|
1335
|
+
|
|
1336
|
+
constructor(protected readonly pluginManager: PluginManager, plugin: InternalPlugin) {
|
|
1337
|
+
this.id = plugin.model.id;
|
|
1338
|
+
this.pluginPath = plugin.pluginFolder;
|
|
1339
|
+
this.packageJSON = plugin.rawModel;
|
|
1340
|
+
this.pluginType = plugin.model.entryPoint.frontend ? 'frontend' : 'backend';
|
|
1341
|
+
|
|
1342
|
+
if (this.pluginType === 'frontend') {
|
|
1343
|
+
const { origin } = new Endpoint();
|
|
1344
|
+
this.pluginUri = URI.parse(origin + '/' + PluginPackage.toPluginUrl(plugin.model, ''));
|
|
1345
|
+
} else {
|
|
1346
|
+
this.pluginUri = URI.parse(plugin.pluginUri);
|
|
1347
|
+
}
|
|
1348
|
+
}
|
|
1349
|
+
|
|
1350
|
+
get isActive(): boolean {
|
|
1351
|
+
return this.pluginManager.isActive(this.id);
|
|
1352
|
+
}
|
|
1353
|
+
|
|
1354
|
+
get exports(): T {
|
|
1355
|
+
return <T>this.pluginManager.getPluginExport(this.id);
|
|
1356
|
+
}
|
|
1357
|
+
|
|
1358
|
+
activate(): PromiseLike<T> {
|
|
1359
|
+
return this.pluginManager.activatePlugin(this.id).then(() => this.exports);
|
|
1360
|
+
}
|
|
1361
|
+
}
|
|
1362
|
+
|
|
1363
|
+
export class PluginExt<T> extends Plugin<T> implements ExtensionPlugin<T> {
|
|
1364
|
+
extensionPath: string;
|
|
1365
|
+
extensionUri: theia.Uri;
|
|
1366
|
+
extensionKind: ExtensionKind;
|
|
1367
|
+
|
|
1368
|
+
constructor(protected override readonly pluginManager: PluginManager, plugin: InternalPlugin) {
|
|
1369
|
+
super(pluginManager, plugin);
|
|
1370
|
+
|
|
1371
|
+
this.extensionPath = this.pluginPath;
|
|
1372
|
+
this.extensionUri = this.pluginUri;
|
|
1373
|
+
this.extensionKind = ExtensionKind.UI; // stub as a local extension (not running on a remote workspace)
|
|
1374
|
+
}
|
|
1375
|
+
|
|
1376
|
+
override get isActive(): boolean {
|
|
1377
|
+
return this.pluginManager.isActive(this.id);
|
|
1378
|
+
}
|
|
1379
|
+
|
|
1380
|
+
override get exports(): T {
|
|
1381
|
+
return <T>this.pluginManager.getPluginExport(this.id);
|
|
1382
|
+
}
|
|
1383
|
+
|
|
1384
|
+
override activate(): PromiseLike<T> {
|
|
1385
|
+
return this.pluginManager.activatePlugin(this.id).then(() => this.exports);
|
|
1386
|
+
}
|
|
1387
|
+
}
|