@theia/plugin-ext 1.45.0 → 1.46.0-next.72
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +54 -54
- package/lib/common/arrays.d.ts +23 -23
- package/lib/common/arrays.js +60 -60
- 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 +8 -8
- package/lib/common/collections.js +55 -55
- package/lib/common/commands.d.ts +3 -3
- package/lib/common/commands.js +16 -16
- 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 +17 -17
- package/lib/common/errors.js +58 -58
- 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/language-pack-service.d.ts +15 -15
- package/lib/common/language-pack-service.js +20 -20
- 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 +755 -755
- package/lib/common/plugin-api-rpc-model.d.ts.map +1 -1
- package/lib/common/plugin-api-rpc-model.js +178 -178
- package/lib/common/plugin-api-rpc.d.ts +2112 -2088
- package/lib/common/plugin-api-rpc.d.ts.map +1 -1
- package/lib/common/plugin-api-rpc.js +304 -302
- package/lib/common/plugin-api-rpc.js.map +1 -1
- package/lib/common/plugin-ext-api-contribution.d.ts +88 -58
- package/lib/common/plugin-ext-api-contribution.d.ts.map +1 -1
- package/lib/common/plugin-ext-api-contribution.js +5 -5
- package/lib/common/plugin-ext-api-contribution.js.map +1 -1
- package/lib/common/plugin-identifiers.d.ts +40 -40
- package/lib/common/plugin-identifiers.js +80 -80
- package/lib/common/plugin-protocol.d.ts +942 -929
- package/lib/common/plugin-protocol.d.ts.map +1 -1
- package/lib/common/plugin-protocol.js +75 -74
- package/lib/common/plugin-protocol.js.map +1 -1
- package/lib/common/proxy-handler.d.ts +72 -65
- package/lib/common/proxy-handler.d.ts.map +1 -1
- package/lib/common/proxy-handler.js +103 -99
- package/lib/common/proxy-handler.js.map +1 -1
- package/lib/common/reference-map.d.ts +7 -7
- package/lib/common/reference-map.js +39 -39
- package/lib/common/rpc-protocol.d.ts +75 -65
- package/lib/common/rpc-protocol.d.ts.map +1 -1
- package/lib/common/rpc-protocol.js +258 -229
- package/lib/common/rpc-protocol.js.map +1 -1
- package/lib/common/semantic-tokens-dto.d.ts +18 -18
- package/lib/common/semantic-tokens-dto.js +162 -162
- package/lib/common/test-types.d.ts +91 -91
- package/lib/common/test-types.js +74 -74
- 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 +38 -39
- package/lib/common/uri-components.d.ts.map +1 -1
- package/lib/common/uri-components.js +62 -66
- package/lib/common/uri-components.js.map +1 -1
- 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 +99 -157
- package/lib/hosted/browser/hosted-plugin.d.ts.map +1 -1
- package/lib/hosted/browser/hosted-plugin.js +599 -871
- package/lib/hosted/browser/hosted-plugin.js.map +1 -1
- 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.d.ts.map +1 -1
- package/lib/hosted/browser/worker/debug-stub.js +29 -29
- package/lib/hosted/browser/worker/debug-stub.js.map +1 -1
- 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 +13 -14
- package/lib/hosted/browser/worker/worker-env-ext.d.ts.map +1 -1
- package/lib/hosted/browser/worker/worker-env-ext.js +52 -38
- package/lib/hosted/browser/worker/worker-env-ext.js.map +1 -1
- package/lib/hosted/browser/worker/worker-main.d.ts +1 -1
- package/lib/hosted/browser/worker/worker-main.js +182 -194
- package/lib/hosted/browser/worker/worker-main.js.map +1 -1
- package/lib/hosted/browser/worker/worker-plugin-module.d.ts +5 -0
- package/lib/hosted/browser/worker/worker-plugin-module.d.ts.map +1 -0
- package/lib/hosted/browser/worker/worker-plugin-module.js +78 -0
- package/lib/hosted/browser/worker/worker-plugin-module.js.map +1 -0
- package/lib/hosted/common/hosted-plugin.d.ts +97 -0
- package/lib/hosted/common/hosted-plugin.d.ts.map +1 -0
- package/lib/hosted/common/hosted-plugin.js +408 -0
- package/lib/hosted/common/hosted-plugin.js.map +1 -0
- 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 +43 -43
- package/lib/hosted/node/hosted-plugin-deployer-handler.js +270 -270
- package/lib/hosted/node/hosted-plugin-localization-service.d.ts +46 -46
- package/lib/hosted/node/hosted-plugin-localization-service.js +389 -389
- package/lib/hosted/node/hosted-plugin-process.d.ts +47 -47
- package/lib/hosted/node/hosted-plugin-process.d.ts.map +1 -1
- package/lib/hosted/node/hosted-plugin-process.js +224 -224
- package/lib/hosted/node/hosted-plugin-process.js.map +1 -1
- 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-activation-events.d.ts +6 -6
- package/lib/hosted/node/plugin-activation-events.js +95 -95
- package/lib/hosted/node/plugin-ext-hosted-backend-module.d.ts +3 -3
- package/lib/hosted/node/plugin-ext-hosted-backend-module.d.ts.map +1 -1
- package/lib/hosted/node/plugin-ext-hosted-backend-module.js +82 -80
- package/lib/hosted/node/plugin-ext-hosted-backend-module.js.map +1 -1
- package/lib/hosted/node/plugin-host-module.d.ts +5 -0
- package/lib/hosted/node/plugin-host-module.d.ts.map +1 -0
- package/lib/hosted/node/plugin-host-module.js +68 -0
- package/lib/hosted/node/plugin-host-module.js.map +1 -0
- package/lib/hosted/node/plugin-host-proxy.d.ts +18 -18
- package/lib/hosted/node/plugin-host-proxy.js +70 -70
- package/lib/hosted/node/plugin-host-rpc.d.ts +107 -21
- package/lib/hosted/node/plugin-host-rpc.d.ts.map +1 -1
- package/lib/hosted/node/plugin-host-rpc.js +341 -192
- package/lib/hosted/node/plugin-host-rpc.js.map +1 -1
- package/lib/hosted/node/plugin-host.d.ts +1 -1
- package/lib/hosted/node/plugin-host.js +102 -101
- package/lib/hosted/node/plugin-host.js.map +1 -1
- package/lib/hosted/node/plugin-language-pack-service.d.ts +7 -7
- package/lib/hosted/node/plugin-language-pack-service.js +53 -53
- package/lib/hosted/node/plugin-manifest-loader.d.ts +2 -2
- package/lib/hosted/node/plugin-manifest-loader.js +35 -35
- package/lib/hosted/node/plugin-reader.d.ts +25 -25
- package/lib/hosted/node/plugin-reader.d.ts.map +1 -1
- package/lib/hosted/node/plugin-reader.js +146 -143
- package/lib/hosted/node/plugin-reader.js.map +1 -1
- package/lib/hosted/node/plugin-service.d.ts +47 -39
- package/lib/hosted/node/plugin-service.d.ts.map +1 -1
- package/lib/hosted/node/plugin-service.js +203 -193
- package/lib/hosted/node/plugin-service.js.map +1 -1
- 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/file-plugin-uri-factory.js.map +1 -1
- 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 +68 -54
- package/lib/hosted/node/scanners/scanner-theia.d.ts.map +1 -1
- package/lib/hosted/node/scanners/scanner-theia.js +859 -824
- package/lib/hosted/node/scanners/scanner-theia.js.map +1 -1
- 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.d.ts.map +1 -1
- package/lib/main/browser/authentication-main.js +315 -313
- package/lib/main/browser/authentication-main.js.map +1 -1
- 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 +26 -26
- package/lib/main/browser/command-registry-main.js +107 -107
- 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 +470 -470
- 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.d.ts.map +1 -1
- package/lib/main/browser/comments/comments-contribution.js +267 -264
- package/lib/main/browser/comments/comments-contribution.js.map +1 -1
- 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 +111 -111
- package/lib/main/browser/comments/comments-main.js +356 -356
- package/lib/main/browser/comments/comments-main.js.map +1 -1
- 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-opener.js.map +1 -1
- 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.d.ts.map +1 -1
- package/lib/main/browser/custom-editors/custom-editor-widget.js +120 -118
- package/lib/main/browser/custom-editors/custom-editor-widget.js.map +1 -1
- package/lib/main/browser/custom-editors/custom-editors-main.d.ts +119 -119
- package/lib/main/browser/custom-editors/custom-editors-main.js +436 -436
- package/lib/main/browser/custom-editors/custom-editors-main.js.map +1 -1
- package/lib/main/browser/custom-editors/plugin-custom-editor-registry.d.ts +23 -23
- package/lib/main/browser/custom-editors/plugin-custom-editor-registry.js +142 -142
- package/lib/main/browser/data-transfer/data-transfer-type-converters.d.ts +8 -8
- package/lib/main/browser/data-transfer/data-transfer-type-converters.d.ts.map +1 -1
- package/lib/main/browser/data-transfer/data-transfer-type-converters.js +62 -64
- package/lib/main/browser/data-transfer/data-transfer-type-converters.js.map +1 -1
- 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 +55 -55
- package/lib/main/browser/debug/plugin-debug-service.js +367 -367
- 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 +109 -109
- 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 +36 -32
- package/lib/main/browser/editors-and-documents-main.d.ts.map +1 -1
- package/lib/main/browser/editors-and-documents-main.js +321 -302
- package/lib/main/browser/editors-and-documents-main.js.map +1 -1
- package/lib/main/browser/env-main.d.ts +6 -15
- package/lib/main/browser/env-main.d.ts.map +1 -1
- package/lib/main/browser/env-main.js +63 -82
- package/lib/main/browser/env-main.js.map +1 -1
- package/lib/main/browser/file-system-main-impl.d.ts +27 -27
- package/lib/main/browser/file-system-main-impl.js +205 -205
- package/lib/main/browser/hierarchy/hierarchy-types-converters.d.ts +24 -24
- package/lib/main/browser/hierarchy/hierarchy-types-converters.js +184 -184
- 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 +143 -143
- package/lib/main/browser/languages-main.d.ts.map +1 -1
- package/lib/main/browser/languages-main.js +1187 -1184
- package/lib/main/browser/languages-main.js.map +1 -1
- package/lib/main/browser/localization-main.d.ts +8 -8
- package/lib/main/browser/localization-main.js +31 -31
- package/lib/main/browser/main-context.d.ts +3 -3
- package/lib/main/browser/main-context.d.ts.map +1 -1
- package/lib/main/browser/main-context.js +159 -161
- package/lib/main/browser/main-context.js.map +1 -1
- package/lib/main/browser/main-file-system-event-service.d.ts +7 -7
- package/lib/main/browser/main-file-system-event-service.js +65 -65
- package/lib/main/browser/menus/menus-contribution-handler.d.ts +29 -29
- package/lib/main/browser/menus/menus-contribution-handler.d.ts.map +1 -1
- package/lib/main/browser/menus/menus-contribution-handler.js +201 -198
- package/lib/main/browser/menus/menus-contribution-handler.js.map +1 -1
- package/lib/main/browser/menus/plugin-menu-command-adapter.d.ts +44 -44
- package/lib/main/browser/menus/plugin-menu-command-adapter.js +310 -310
- package/lib/main/browser/menus/plugin-menu-command-adapter.js.map +1 -1
- package/lib/main/browser/menus/vscode-theia-menu-mappings.d.ts +18 -18
- package/lib/main/browser/menus/vscode-theia-menu-mappings.js +107 -107
- package/lib/main/browser/message-registry-main.d.ts +10 -8
- package/lib/main/browser/message-registry-main.d.ts.map +1 -1
- package/lib/main/browser/message-registry-main.js +40 -52
- package/lib/main/browser/message-registry-main.js.map +1 -1
- package/lib/main/browser/notebooks/notebook-documents-and-editors-main.d.ts +50 -51
- package/lib/main/browser/notebooks/notebook-documents-and-editors-main.d.ts.map +1 -1
- package/lib/main/browser/notebooks/notebook-documents-and-editors-main.js +199 -201
- package/lib/main/browser/notebooks/notebook-documents-and-editors-main.js.map +1 -1
- package/lib/main/browser/notebooks/notebook-documents-main.d.ts +21 -21
- package/lib/main/browser/notebooks/notebook-documents-main.js +131 -131
- package/lib/main/browser/notebooks/notebook-dto.d.ts +17 -17
- package/lib/main/browser/notebooks/notebook-dto.js +130 -130
- package/lib/main/browser/notebooks/notebook-editors-main.d.ts +19 -19
- package/lib/main/browser/notebooks/notebook-editors-main.js +57 -57
- package/lib/main/browser/notebooks/notebook-kernels-main.d.ts +42 -41
- package/lib/main/browser/notebooks/notebook-kernels-main.d.ts.map +1 -1
- package/lib/main/browser/notebooks/notebook-kernels-main.js +260 -223
- package/lib/main/browser/notebooks/notebook-kernels-main.js.map +1 -1
- package/lib/main/browser/notebooks/notebook-renderers-main.d.ts +11 -11
- package/lib/main/browser/notebooks/notebook-renderers-main.js +38 -38
- package/lib/main/browser/notebooks/notebooks-main.d.ts +30 -30
- package/lib/main/browser/notebooks/notebooks-main.js +102 -102
- package/lib/main/browser/notebooks/renderers/cell-output-webview.d.ts +39 -33
- package/lib/main/browser/notebooks/renderers/cell-output-webview.d.ts.map +1 -1
- package/lib/main/browser/notebooks/renderers/cell-output-webview.js +249 -206
- package/lib/main/browser/notebooks/renderers/cell-output-webview.js.map +1 -1
- package/lib/main/browser/notebooks/renderers/output-webview-internal.d.ts +13 -12
- package/lib/main/browser/notebooks/renderers/output-webview-internal.d.ts.map +1 -1
- package/lib/main/browser/notebooks/renderers/output-webview-internal.js +457 -376
- package/lib/main/browser/notebooks/renderers/output-webview-internal.js.map +1 -1
- package/lib/main/browser/notebooks/renderers/webview-communication.d.ts +60 -51
- package/lib/main/browser/notebooks/renderers/webview-communication.d.ts.map +1 -1
- package/lib/main/browser/notebooks/renderers/webview-communication.js +21 -21
- package/lib/main/browser/notification-main.d.ts +6 -18
- package/lib/main/browser/notification-main.d.ts.map +1 -1
- package/lib/main/browser/notification-main.js +26 -75
- package/lib/main/browser/notification-main.js.map +1 -1
- 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 +75 -75
- package/lib/main/browser/plugin-contribution-handler.d.ts.map +1 -1
- package/lib/main/browser/plugin-contribution-handler.js +664 -659
- package/lib/main/browser/plugin-contribution-handler.js.map +1 -1
- package/lib/main/browser/plugin-ext-frontend-module.d.ts +7 -7
- package/lib/main/browser/plugin-ext-frontend-module.d.ts.map +1 -1
- package/lib/main/browser/plugin-ext-frontend-module.js +230 -230
- package/lib/main/browser/plugin-ext-frontend-module.js.map +1 -1
- 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 +9 -9
- package/lib/main/browser/plugin-frontend-contribution.js +79 -79
- 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-service.d.ts +16 -19
- package/lib/main/browser/plugin-icon-service.d.ts.map +1 -1
- package/lib/main/browser/plugin-icon-service.js +96 -155
- package/lib/main/browser/plugin-icon-service.js.map +1 -1
- package/lib/main/browser/plugin-icon-theme-service.d.ts +146 -146
- package/lib/main/browser/plugin-icon-theme-service.js +561 -561
- package/lib/main/browser/plugin-shared-style.d.ts +40 -40
- package/lib/main/browser/plugin-shared-style.js +144 -144
- 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 +32 -31
- package/lib/main/browser/quick-open-main.d.ts.map +1 -1
- package/lib/main/browser/quick-open-main.js +318 -281
- package/lib/main/browser/quick-open-main.js.map +1 -1
- package/lib/main/browser/scm-main.d.ts +106 -106
- package/lib/main/browser/scm-main.js +346 -346
- package/lib/main/browser/scm-main.js.map +1 -1
- 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.d.ts.map +1 -1
- package/lib/main/browser/selection-provider-command.js +56 -57
- package/lib/main/browser/selection-provider-command.js.map +1 -1
- 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 +47 -47
- package/lib/main/browser/tabs/tabs-main.js +291 -291
- package/lib/main/browser/tasks-main.d.ts +33 -33
- package/lib/main/browser/tasks-main.js +208 -208
- package/lib/main/browser/terminal-main.d.ts +50 -50
- package/lib/main/browser/terminal-main.d.ts.map +1 -1
- package/lib/main/browser/terminal-main.js +269 -269
- package/lib/main/browser/terminal-main.js.map +1 -1
- package/lib/main/browser/test-main.d.ts +140 -140
- package/lib/main/browser/test-main.js +559 -559
- package/lib/main/browser/text-editor-main.d.ts +47 -47
- package/lib/main/browser/text-editor-main.js +384 -384
- 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 +37 -38
- package/lib/main/browser/text-editors-main.d.ts.map +1 -1
- package/lib/main/browser/text-editors-main.js +164 -158
- package/lib/main/browser/text-editors-main.js.map +1 -1
- package/lib/main/browser/theme-icon-override.d.ts +1 -1
- package/lib/main/browser/theme-icon-override.js +244 -250
- package/lib/main/browser/theme-icon-override.js.map +1 -1
- 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 +50 -50
- 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-tree-view-node-label-provider.js.map +1 -1
- package/lib/main/browser/view/plugin-view-registry.d.ts +105 -103
- package/lib/main/browser/view/plugin-view-registry.d.ts.map +1 -1
- package/lib/main/browser/view/plugin-view-registry.js +892 -876
- package/lib/main/browser/view/plugin-view-registry.js.map +1 -1
- package/lib/main/browser/view/plugin-view-widget.d.ts +62 -62
- package/lib/main/browser/view/plugin-view-widget.d.ts.map +1 -1
- package/lib/main/browser/view/plugin-view-widget.js +206 -207
- package/lib/main/browser/view/plugin-view-widget.js.map +1 -1
- 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 +166 -166
- package/lib/main/browser/view/tree-view-widget.d.ts.map +1 -1
- package/lib/main/browser/view/tree-view-widget.js +843 -844
- package/lib/main/browser/view/tree-view-widget.js.map +1 -1
- package/lib/main/browser/view/tree-views-main.d.ts +34 -34
- package/lib/main/browser/view/tree-views-main.js +181 -181
- package/lib/main/browser/view/view-context-key-service.d.ts +18 -18
- package/lib/main/browser/view/view-context-key-service.js +74 -74
- 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-context-keys.d.ts +16 -12
- package/lib/main/browser/webview/webview-context-keys.d.ts.map +1 -1
- package/lib/main/browser/webview/webview-context-keys.js +72 -63
- package/lib/main/browser/webview/webview-context-keys.js.map +1 -1
- package/lib/main/browser/webview/webview-environment.d.ts +16 -16
- package/lib/main/browser/webview/webview-environment.js +96 -96
- 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.d.ts.map +1 -1
- package/lib/main/browser/webview/webview-widget-factory.js +39 -38
- package/lib/main/browser/webview/webview-widget-factory.js.map +1 -1
- package/lib/main/browser/webview/webview.d.ts +162 -161
- package/lib/main/browser/webview/webview.d.ts.map +1 -1
- package/lib/main/browser/webview/webview.js +620 -619
- package/lib/main/browser/webview/webview.js.map +1 -1
- package/lib/main/browser/webview-views/webview-views-main.d.ts +32 -32
- package/lib/main/browser/webview-views/webview-views-main.js +136 -136
- package/lib/main/browser/webview-views/webview-views.d.ts +19 -19
- package/lib/main/browser/webview-views/webview-views.js +22 -22
- package/lib/main/browser/webviews-main.d.ts +40 -40
- package/lib/main/browser/webviews-main.d.ts.map +1 -1
- package/lib/main/browser/webviews-main.js +248 -243
- package/lib/main/browser/webviews-main.js.map +1 -1
- 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 +77 -77
- package/lib/main/browser/workspace-main.js +348 -348
- package/lib/main/common/basic-message-registry-main.d.ts +14 -0
- package/lib/main/common/basic-message-registry-main.d.ts.map +1 -0
- package/lib/main/common/basic-message-registry-main.js +50 -0
- package/lib/main/common/basic-message-registry-main.js.map +1 -0
- package/lib/main/common/basic-notification-main.d.ts +19 -0
- package/lib/main/common/basic-notification-main.d.ts.map +1 -0
- package/lib/main/common/basic-notification-main.js +75 -0
- package/lib/main/common/basic-notification-main.js.map +1 -0
- package/lib/main/common/env-main.d.ts +11 -0
- package/lib/main/common/env-main.d.ts.map +1 -0
- package/lib/main/common/env-main.js +40 -0
- package/lib/main/common/env-main.js.map +1 -0
- 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 +23 -23
- package/lib/main/electron-browser/webview/electron-webview-widget-factory.js +53 -53
- package/lib/main/node/errors.spec.d.ts +1 -1
- package/lib/main/node/errors.spec.js +35 -35
- package/lib/main/node/errors.spec.js.map +1 -1
- package/lib/main/node/handlers/plugin-theia-directory-handler.d.ts +18 -13
- package/lib/main/node/handlers/plugin-theia-directory-handler.d.ts.map +1 -1
- package/lib/main/node/handlers/plugin-theia-directory-handler.js +137 -119
- package/lib/main/node/handlers/plugin-theia-directory-handler.js.map +1 -1
- package/lib/main/node/handlers/plugin-theia-file-handler.d.ts +10 -10
- package/lib/main/node/handlers/plugin-theia-file-handler.js +74 -74
- package/lib/main/node/handlers/plugin-theia-file-handler.js.map +1 -1
- 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 +25 -25
- package/lib/main/node/paths/plugin-paths-service.js +160 -160
- 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 +48 -48
- 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 +111 -111
- 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.d.ts.map +1 -1
- package/lib/main/node/plugin-deployer-impl.js +338 -334
- package/lib/main/node/plugin-deployer-impl.js.map +1 -1
- 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 +73 -73
- package/lib/main/node/plugin-github-resolver.d.ts +23 -23
- package/lib/main/node/plugin-github-resolver.js +143 -143
- package/lib/main/node/plugin-http-resolver.d.ts +20 -20
- package/lib/main/node/plugin-http-resolver.js +99 -99
- package/lib/main/node/plugin-localization-server.d.ts +9 -9
- package/lib/main/node/plugin-localization-server.js +58 -58
- package/lib/main/node/plugin-mgmt-cli-contribution.d.ts +12 -12
- package/lib/main/node/plugin-mgmt-cli-contribution.js +70 -70
- 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 +23 -23
- package/lib/main/node/plugin-service.js +109 -109
- 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 +28 -28
- package/lib/main/node/plugins-key-value-storage.js +167 -167
- package/lib/main/node/plugins-key-value-storage.js.map +1 -1
- package/lib/main/node/plugins-key-value-storage.spec.d.ts +16 -16
- package/lib/main/node/plugins-key-value-storage.spec.js +100 -100
- 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 +2 -2
- package/lib/main/node/temp-dir-util.js +39 -39
- 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 +30 -30
- package/lib/plugin/authentication-ext.js +94 -94
- package/lib/plugin/clipboard-ext.d.ts +10 -9
- package/lib/plugin/clipboard-ext.d.ts.map +1 -1
- package/lib/plugin/clipboard-ext.js +55 -31
- package/lib/plugin/clipboard-ext.js.map +1 -1
- package/lib/plugin/command-registry.d.ts +41 -41
- package/lib/plugin/command-registry.js +182 -182
- package/lib/plugin/comments.d.ts +92 -92
- package/lib/plugin/comments.js +392 -392
- package/lib/plugin/custom-editors.d.ts +47 -47
- package/lib/plugin/custom-editors.js +255 -255
- package/lib/plugin/custom-editors.js.map +1 -1
- package/lib/plugin/debug/debug-ext.d.ts +88 -86
- package/lib/plugin/debug/debug-ext.d.ts.map +1 -1
- package/lib/plugin/debug/debug-ext.js +421 -394
- package/lib/plugin/debug/debug-ext.js.map +1 -1
- 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/documents.js.map +1 -1
- package/lib/plugin/editors-and-documents.d.ts +25 -26
- package/lib/plugin/editors-and-documents.d.ts.map +1 -1
- package/lib/plugin/editors-and-documents.js +154 -137
- package/lib/plugin/editors-and-documents.js.map +1 -1
- package/lib/plugin/env.d.ts +38 -34
- package/lib/plugin/env.d.ts.map +1 -1
- package/lib/plugin/env.js +118 -85
- package/lib/plugin/env.js.map +1 -1
- 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 +56 -56
- package/lib/plugin/file-system-ext-impl.js +346 -346
- package/lib/plugin/known-commands.d.ts +5 -5
- package/lib/plugin/known-commands.d.ts.map +1 -1
- package/lib/plugin/known-commands.js +400 -399
- package/lib/plugin/known-commands.js.map +1 -1
- 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 +164 -164
- 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/diagnostics.js.map +1 -1
- package/lib/plugin/languages/document-drop-edit.d.ts +15 -15
- package/lib/plugin/languages/document-drop-edit.js +22 -22
- 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.d.ts.map +1 -1
- package/lib/plugin/languages/link-provider.js +73 -71
- package/lib/plugin/languages/link-provider.js.map +1 -1
- 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 +6 -6
- package/lib/plugin/languages-utils.js +65 -65
- package/lib/plugin/languages.d.ts +127 -127
- package/lib/plugin/languages.js +712 -712
- package/lib/plugin/localization-ext.d.ts +17 -16
- package/lib/plugin/localization-ext.d.ts.map +1 -1
- package/lib/plugin/localization-ext.js +99 -73
- package/lib/plugin/localization-ext.js.map +1 -1
- package/lib/plugin/markdown-string.d.ts +24 -24
- package/lib/plugin/markdown-string.d.ts.map +1 -1
- package/lib/plugin/markdown-string.js +124 -124
- package/lib/plugin/markdown-string.js.map +1 -1
- package/lib/plugin/message-registry.d.ts +9 -8
- package/lib/plugin/message-registry.d.ts.map +1 -1
- package/lib/plugin/message-registry.js +84 -60
- package/lib/plugin/message-registry.js.map +1 -1
- package/lib/plugin/node/debug/debug.spec.d.ts +1 -1
- package/lib/plugin/node/debug/debug.spec.js +87 -67
- package/lib/plugin/node/debug/debug.spec.js.map +1 -1
- 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 +16 -21
- package/lib/plugin/node/env-node-ext.d.ts.map +1 -1
- package/lib/plugin/node/env-node-ext.js +71 -63
- package/lib/plugin/node/env-node-ext.js.map +1 -1
- package/lib/plugin/node/plugin-container-module.d.ts +75 -0
- package/lib/plugin/node/plugin-container-module.d.ts.map +1 -0
- package/lib/plugin/node/plugin-container-module.js +115 -0
- package/lib/plugin/node/plugin-container-module.js.map +1 -0
- package/lib/plugin/notebook/notebook-document.d.ts +61 -61
- package/lib/plugin/notebook/notebook-document.js +372 -372
- package/lib/plugin/notebook/notebook-documents.d.ts +16 -16
- package/lib/plugin/notebook/notebook-documents.js +47 -47
- package/lib/plugin/notebook/notebook-editor.d.ts +20 -20
- package/lib/plugin/notebook/notebook-editor.js +98 -98
- package/lib/plugin/notebook/notebook-editors.d.ts +13 -13
- package/lib/plugin/notebook/notebook-editors.js +64 -64
- package/lib/plugin/notebook/notebook-kernels.d.ts +35 -36
- package/lib/plugin/notebook/notebook-kernels.d.ts.map +1 -1
- package/lib/plugin/notebook/notebook-kernels.js +516 -516
- package/lib/plugin/notebook/notebook-kernels.js.map +1 -1
- package/lib/plugin/notebook/notebook-renderers.d.ts +13 -13
- package/lib/plugin/notebook/notebook-renderers.d.ts.map +1 -1
- package/lib/plugin/notebook/notebook-renderers.js +62 -62
- package/lib/plugin/notebook/notebook-renderers.js.map +1 -1
- package/lib/plugin/notebook/notebooks.d.ts +57 -56
- package/lib/plugin/notebook/notebooks.d.ts.map +1 -1
- package/lib/plugin/notebook/notebooks.js +316 -297
- package/lib/plugin/notebook/notebooks.js.map +1 -1
- package/lib/plugin/notification.d.ts +17 -17
- package/lib/plugin/notification.js +67 -67
- package/lib/plugin/output-channel/log-output-channel.d.ts +23 -23
- package/lib/plugin/output-channel/log-output-channel.js +91 -91
- 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 +13 -13
- package/lib/plugin/output-channel-registry.js +44 -44
- 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 +58 -58
- package/lib/plugin/plugin-context.d.ts.map +1 -1
- package/lib/plugin/plugin-context.js +1185 -1170
- package/lib/plugin/plugin-context.js.map +1 -1
- 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 +92 -83
- package/lib/plugin/plugin-manager.d.ts.map +1 -1
- package/lib/plugin/plugin-manager.js +428 -358
- package/lib/plugin/plugin-manager.js.map +1 -1
- package/lib/plugin/plugin-storage.d.ts +44 -36
- package/lib/plugin/plugin-storage.d.ts.map +1 -1
- package/lib/plugin/plugin-storage.js +119 -99
- package/lib/plugin/plugin-storage.js.map +1 -1
- package/lib/plugin/preference-registry.d.ts +40 -39
- package/lib/plugin/preference-registry.d.ts.map +1 -1
- package/lib/plugin/preference-registry.js +317 -287
- package/lib/plugin/preference-registry.js.map +1 -1
- package/lib/plugin/preference-registry.spec.d.ts +1 -1
- package/lib/plugin/preference-registry.spec.js +246 -239
- package/lib/plugin/preference-registry.spec.js.map +1 -1
- 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 +195 -202
- package/lib/plugin/quick-open.d.ts.map +1 -1
- package/lib/plugin/quick-open.js +622 -638
- package/lib/plugin/quick-open.js.map +1 -1
- package/lib/plugin/scm.d.ts +53 -53
- package/lib/plugin/scm.js +726 -726
- package/lib/plugin/secrets-ext.d.ts +39 -30
- package/lib/plugin/secrets-ext.d.ts.map +1 -1
- package/lib/plugin/secrets-ext.js +88 -68
- package/lib/plugin/secrets-ext.js.map +1 -1
- 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/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 +53 -53
- package/lib/plugin/tasks/tasks.d.ts +46 -46
- package/lib/plugin/tasks/tasks.js +215 -215
- package/lib/plugin/telemetry-ext.d.ts +43 -43
- package/lib/plugin/telemetry-ext.js +251 -251
- package/lib/plugin/terminal-ext.d.ts +113 -113
- package/lib/plugin/terminal-ext.d.ts.map +1 -1
- package/lib/plugin/terminal-ext.js +488 -468
- package/lib/plugin/terminal-ext.js.map +1 -1
- package/lib/plugin/test-item.d.ts +46 -46
- package/lib/plugin/test-item.js +195 -195
- package/lib/plugin/tests.d.ts +121 -121
- package/lib/plugin/tests.js +423 -423
- package/lib/plugin/tests.js.map +1 -1
- package/lib/plugin/text-editor.d.ts +104 -104
- package/lib/plugin/text-editor.js +464 -464
- package/lib/plugin/text-editors.d.ts +39 -37
- package/lib/plugin/text-editors.d.ts.map +1 -1
- package/lib/plugin/text-editors.js +132 -126
- package/lib/plugin/text-editors.js.map +1 -1
- 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 +157 -157
- package/lib/plugin/tree/tree-views.d.ts +107 -107
- package/lib/plugin/tree/tree-views.js +590 -590
- package/lib/plugin/type-converters.d.ts +204 -195
- package/lib/plugin/type-converters.d.ts.map +1 -1
- package/lib/plugin/type-converters.js +1676 -1637
- package/lib/plugin/type-converters.js.map +1 -1
- package/lib/plugin/type-converters.spec.d.ts +1 -1
- package/lib/plugin/type-converters.spec.js +395 -395
- package/lib/plugin/types-impl.d.ts +1653 -1633
- package/lib/plugin/types-impl.d.ts.map +1 -1
- package/lib/plugin/types-impl.js +3185 -3169
- 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 +55 -55
- package/lib/plugin/webview-views.d.ts.map +1 -1
- package/lib/plugin/webview-views.js +156 -155
- package/lib/plugin/webview-views.js.map +1 -1
- package/lib/plugin/webviews.d.ts +110 -95
- package/lib/plugin/webviews.d.ts.map +1 -1
- package/lib/plugin/webviews.js +393 -343
- package/lib/plugin/webviews.js.map +1 -1
- package/lib/plugin/window-state.d.ts +16 -16
- package/lib/plugin/window-state.js +54 -54
- package/lib/plugin/word-helper.d.ts +21 -21
- package/lib/plugin/word-helper.js +125 -125
- package/lib/plugin/workspace.d.ts +62 -61
- package/lib/plugin/workspace.d.ts.map +1 -1
- package/lib/plugin/workspace.js +445 -411
- package/lib/plugin/workspace.js.map +1 -1
- 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 +30 -31
- package/src/common/arrays.ts +70 -70
- package/src/common/assert.ts +23 -23
- package/src/common/cache.ts +51 -51
- package/src/common/character-classifier.ts +73 -73
- package/src/common/collections.ts +54 -54
- package/src/common/commands.ts +19 -19
- package/src/common/connection.ts +137 -137
- package/src/common/disposable-util.ts +39 -39
- package/src/common/editor-options.ts +74 -74
- package/src/common/env.ts +19 -19
- package/src/common/errors.ts +63 -63
- package/src/common/id-generator.ts +26 -26
- package/src/common/index.ts +24 -24
- package/src/common/language-pack-service.ts +34 -34
- package/src/common/link-computer.ts +354 -354
- package/src/common/object-identifier.ts +33 -33
- package/src/common/objects.ts +50 -50
- package/src/common/paths-util.ts +158 -158
- package/src/common/plugin-api-rpc-model.ts +897 -897
- package/src/common/plugin-api-rpc.ts +2686 -2669
- package/src/common/plugin-ext-api-contribution.ts +115 -82
- package/src/common/plugin-identifiers.ts +84 -84
- package/src/common/plugin-protocol.ts +1091 -1075
- package/src/common/proxy-handler.ts +141 -128
- package/src/common/reference-map.ts +38 -38
- package/src/common/rpc-protocol.ts +310 -272
- package/src/common/semantic-tokens-dto.ts +182 -182
- package/src/common/test-types.ts +153 -153
- package/src/common/types.ts +129 -129
- package/src/common/uint.ts +37 -37
- package/src/common/uri-components.ts +81 -85
- package/src/hosted/browser/hosted-plugin-watcher.ts +54 -54
- package/src/hosted/browser/hosted-plugin.ts +621 -910
- package/src/hosted/browser/plugin-worker.ts +52 -52
- package/src/hosted/browser/worker/debug-stub.ts +29 -28
- package/src/hosted/browser/worker/plugin-manifest-loader.ts +114 -114
- package/src/hosted/browser/worker/worker-env-ext.ts +42 -41
- package/src/hosted/browser/worker/worker-main.ts +212 -224
- package/src/hosted/browser/worker/worker-plugin-module.ts +80 -0
- package/src/hosted/common/hosted-plugin.ts +456 -0
- package/src/hosted/node/hosted-plugin-cli-contribution.ts +75 -75
- package/src/hosted/node/hosted-plugin-deployer-handler.ts +268 -268
- package/src/hosted/node/hosted-plugin-localization-service.ts +410 -410
- package/src/hosted/node/hosted-plugin-process.ts +248 -248
- package/src/hosted/node/hosted-plugin-protocol.ts +49 -49
- package/src/hosted/node/hosted-plugin.ts +116 -116
- package/src/hosted/node/metadata-scanner.ts +64 -64
- package/src/hosted/node/plugin-activation-events.ts +112 -112
- package/src/hosted/node/plugin-ext-hosted-backend-module.ts +94 -92
- package/src/hosted/node/plugin-host-module.ts +69 -0
- package/src/hosted/node/plugin-host-proxy.ts +82 -82
- package/src/hosted/node/plugin-host-rpc.ts +377 -218
- package/src/hosted/node/plugin-host.ts +110 -108
- package/src/hosted/node/plugin-language-pack-service.ts +43 -43
- package/src/hosted/node/plugin-manifest-loader.ts +32 -32
- package/src/hosted/node/plugin-reader.ts +136 -133
- package/src/hosted/node/plugin-service.ts +192 -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 +57 -57
- package/src/hosted/node/scanners/plugin-uri-factory.ts +33 -33
- package/src/hosted/node/scanners/scanner-theia.ts +951 -911
- 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 +388 -386
- package/src/main/browser/clipboard-main.ts +38 -38
- package/src/main/browser/command-registry-main.ts +123 -123
- package/src/main/browser/commands.ts +104 -104
- package/src/main/browser/comments/comment-glyph-widget.ts +66 -66
- package/src/main/browser/comments/comment-thread-widget.tsx +696 -696
- package/src/main/browser/comments/comments-context-key-service.ts +68 -68
- package/src/main/browser/comments/comments-contribution.ts +268 -264
- package/src/main/browser/comments/comments-decorator.ts +110 -110
- package/src/main/browser/comments/comments-main.ts +482 -482
- package/src/main/browser/comments/comments-service.ts +205 -205
- package/src/main/browser/custom-editors/custom-editor-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 +129 -127
- package/src/main/browser/custom-editors/custom-editors-main.ts +595 -595
- package/src/main/browser/custom-editors/plugin-custom-editor-registry.ts +142 -142
- package/src/main/browser/data-transfer/data-transfer-type-converters.ts +68 -70
- 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 +427 -427
- package/src/main/browser/debug/plugin-debug-session-contribution-registry.ts +76 -76
- package/src/main/browser/debug/plugin-debug-session-factory.ts +105 -105
- package/src/main/browser/decorations/decorations-main.ts +146 -146
- package/src/main/browser/dialogs/modal-notification.ts +112 -112
- package/src/main/browser/dialogs/style/modal-notification.css +123 -123
- package/src/main/browser/dialogs-main.ts +185 -185
- package/src/main/browser/documents-main.ts +289 -289
- package/src/main/browser/editors-and-documents-main.ts +417 -395
- package/src/main/browser/env-main.ts +60 -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 +1440 -1436
- package/src/main/browser/localization-main.ts +34 -34
- package/src/main/browser/main-context.ts +212 -214
- package/src/main/browser/main-file-system-event-service.ts +76 -76
- package/src/main/browser/menus/menus-contribution-handler.ts +171 -166
- package/src/main/browser/menus/plugin-menu-command-adapter.ts +295 -295
- package/src/main/browser/menus/vscode-theia-menu-mappings.ts +105 -105
- package/src/main/browser/message-registry-main.ts +43 -56
- package/src/main/browser/notebooks/notebook-documents-and-editors-main.ts +249 -252
- package/src/main/browser/notebooks/notebook-documents-main.ts +165 -165
- package/src/main/browser/notebooks/notebook-dto.ts +131 -131
- package/src/main/browser/notebooks/notebook-editors-main.ts +70 -70
- package/src/main/browser/notebooks/notebook-kernels-main.ts +327 -286
- package/src/main/browser/notebooks/notebook-renderers-main.ts +47 -47
- package/src/main/browser/notebooks/notebooks-main.ts +135 -135
- package/src/main/browser/notebooks/renderers/cell-output-webview.tsx +254 -201
- package/src/main/browser/notebooks/renderers/output-webview-internal.ts +577 -477
- package/src/main/browser/notebooks/renderers/webview-communication.ts +90 -79
- package/src/main/browser/notification-main.ts +26 -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 +698 -690
- package/src/main/browser/plugin-ext-frontend-module.ts +269 -268
- package/src/main/browser/plugin-ext-widget.tsx +132 -132
- package/src/main/browser/plugin-frontend-contribution.ts +70 -70
- package/src/main/browser/plugin-frontend-view-contribution.ts +38 -38
- package/src/main/browser/plugin-icon-service.ts +92 -156
- package/src/main/browser/plugin-icon-theme-service.ts +625 -625
- package/src/main/browser/plugin-shared-style.ts +154 -154
- package/src/main/browser/plugin-storage.ts +55 -55
- package/src/main/browser/plugin-terminal-registry.ts +27 -27
- package/src/main/browser/preference-registry-main.ts +123 -123
- package/src/main/browser/quick-open-main.ts +373 -324
- package/src/main/browser/scm-main.ts +472 -472
- package/src/main/browser/secrets-main.ts +82 -82
- package/src/main/browser/selection-provider-command.ts +45 -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 +84 -84
- package/src/main/browser/style/plugin-sidebar.css +73 -73
- package/src/main/browser/style/tree.css +54 -54
- package/src/main/browser/style/webview.css +55 -55
- package/src/main/browser/tabs/tabs-main.ts +333 -333
- package/src/main/browser/tasks-main.ts +268 -268
- package/src/main/browser/terminal-main.ts +304 -304
- package/src/main/browser/test-main.ts +618 -618
- package/src/main/browser/text-editor-main.ts +472 -472
- package/src/main/browser/text-editor-model-service.ts +102 -102
- package/src/main/browser/text-editors-main.ts +215 -207
- package/src/main/browser/theme-icon-override.ts +246 -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 +942 -924
- package/src/main/browser/view/plugin-view-widget.ts +221 -222
- package/src/main/browser/view/tree-view-decorator-service.ts +51 -51
- package/src/main/browser/view/tree-view-widget.tsx +931 -932
- package/src/main/browser/view/tree-views-main.ts +209 -209
- package/src/main/browser/view/view-context-key-service.ts +70 -70
- 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 +682 -682
- package/src/main/browser/webview/pre/service-worker.js +295 -295
- package/src/main/browser/webview/webview-context-keys.ts +62 -49
- package/src/main/browser/webview/webview-environment.ts +87 -87
- package/src/main/browser/webview/webview-frontend-security-warnings.ts +59 -59
- package/src/main/browser/webview/webview-preferences.ts +72 -72
- package/src/main/browser/webview/webview-resource-cache.ts +88 -88
- package/src/main/browser/webview/webview-theme-data-provider.ts +124 -124
- package/src/main/browser/webview/webview-widget-factory.ts +2 -1
- package/src/main/browser/webview/webview.ts +719 -717
- package/src/main/browser/webview-views/webview-views-main.ts +154 -154
- package/src/main/browser/webview-views/webview-views.ts +43 -43
- package/src/main/browser/webviews-main.ts +282 -277
- package/src/main/browser/window-state-main.ts +76 -76
- package/src/main/browser/workspace-main.ts +424 -424
- package/src/main/common/basic-message-registry-main.ts +53 -0
- package/src/main/common/basic-notification-main.ts +86 -0
- package/src/main/common/env-main.ts +44 -0
- package/src/main/common/plugin-paths-protocol.ts +26 -26
- package/src/main/common/plugin-theia-environment.ts +36 -36
- package/src/main/common/webview-protocol.ts +28 -28
- package/src/main/electron-browser/plugin-ext-frontend-electron-module.ts +25 -25
- package/src/main/electron-browser/webview/electron-webview-widget-factory.ts +59 -59
- package/src/main/node/errors.spec.ts +37 -37
- package/src/main/node/handlers/plugin-theia-directory-handler.ts +137 -115
- package/src/main/node/handlers/plugin-theia-file-handler.ts +66 -66
- package/src/main/node/paths/const.ts +21 -21
- package/src/main/node/paths/plugin-paths-service.ts +163 -163
- package/src/main/node/plugin-cli-contribution.ts +85 -85
- package/src/main/node/plugin-deployer-contribution.ts +35 -35
- package/src/main/node/plugin-deployer-directory-handler-context-impl.ts +45 -45
- package/src/main/node/plugin-deployer-entry-impl.ts +132 -132
- package/src/main/node/plugin-deployer-file-handler-context-impl.ts +33 -33
- package/src/main/node/plugin-deployer-impl.ts +364 -360
- 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 +97 -97
- package/src/main/node/plugin-github-resolver.ts +139 -139
- package/src/main/node/plugin-http-resolver.ts +92 -92
- package/src/main/node/plugin-localization-server.ts +42 -42
- package/src/main/node/plugin-mgmt-cli-contribution.ts +64 -64
- package/src/main/node/plugin-server-handler.ts +69 -69
- package/src/main/node/plugin-service.ts +97 -97
- package/src/main/node/plugin-theia-deployer-participant.ts +32 -32
- package/src/main/node/plugin-uninstallation-manager.ts +74 -74
- package/src/main/node/plugins-key-value-storage.spec.ts +110 -110
- package/src/main/node/plugins-key-value-storage.ts +161 -161
- package/src/main/node/resolvers/local-directory-plugin-deployer-resolver.ts +37 -37
- package/src/main/node/resolvers/local-plugin-deployer-resolver.ts +56 -56
- package/src/main/node/temp-dir-util.ts +36 -36
- package/src/main/node/webview-backend-security-warnings.ts +45 -45
- package/src/main/style/status-bar.css +35 -35
- package/src/plugin/authentication-ext.ts +125 -125
- package/src/plugin/clipboard-ext.ts +43 -37
- package/src/plugin/command-registry.ts +219 -219
- package/src/plugin/comments.ts +549 -549
- package/src/plugin/custom-editors.ts +336 -336
- package/src/plugin/debug/debug-ext.ts +499 -490
- 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 +172 -170
- package/src/plugin/env.ts +129 -113
- package/src/plugin/file-system-event-service-ext-impl.ts +256 -256
- package/src/plugin/file-system-ext-impl.ts +402 -402
- package/src/plugin/known-commands.spec.ts +50 -50
- package/src/plugin/known-commands.ts +428 -427
- package/src/plugin/label-service.ts +36 -36
- package/src/plugin/languages/call-hierarchy.ts +124 -124
- package/src/plugin/languages/code-action.ts +162 -162
- package/src/plugin/languages/color.ts +75 -75
- package/src/plugin/languages/completion.ts +183 -183
- package/src/plugin/languages/declaration.ts +72 -72
- package/src/plugin/languages/definition.ts +73 -73
- package/src/plugin/languages/diagnostics.ts +325 -325
- package/src/plugin/languages/document-drop-edit.ts +44 -44
- package/src/plugin/languages/document-formatting.ts +47 -47
- package/src/plugin/languages/document-highlight.ts +61 -61
- package/src/plugin/languages/evaluatable-expression.ts +47 -47
- package/src/plugin/languages/folding.ts +46 -46
- package/src/plugin/languages/hover.ts +58 -58
- package/src/plugin/languages/implementation.ts +73 -73
- package/src/plugin/languages/inlay-hints.ts +149 -149
- package/src/plugin/languages/inline-completion.ts +126 -126
- package/src/plugin/languages/inline-values.ts +50 -50
- package/src/plugin/languages/lens.ts +102 -102
- package/src/plugin/languages/link-provider.ts +81 -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 +68 -68
- package/src/plugin/languages.ts +1022 -1022
- package/src/plugin/localization-ext.ts +89 -84
- package/src/plugin/markdown-string.ts +115 -115
- package/src/plugin/message-registry.ts +70 -65
- package/src/plugin/node/debug/debug.spec.ts +98 -94
- package/src/plugin/node/debug/plugin-node-debug-adapter-creator.ts +167 -167
- package/src/plugin/node/env-node-ext.ts +64 -69
- package/src/plugin/node/plugin-container-module.ts +165 -0
- package/src/plugin/notebook/notebook-document.ts +438 -438
- package/src/plugin/notebook/notebook-documents.ts +58 -58
- package/src/plugin/notebook/notebook-editor.ts +116 -116
- package/src/plugin/notebook/notebook-editors.ts +71 -71
- package/src/plugin/notebook/notebook-kernels.ts +617 -618
- package/src/plugin/notebook/notebook-renderers.ts +71 -72
- package/src/plugin/notebook/notebooks.ts +405 -385
- package/src/plugin/notification.ts +80 -80
- package/src/plugin/output-channel/log-output-channel.ts +108 -108
- package/src/plugin/output-channel/output-channel-item.ts +73 -73
- package/src/plugin/output-channel-registry.ts +52 -52
- package/src/plugin/path.spec.ts +40 -40
- package/src/plugin/path.ts +68 -68
- package/src/plugin/plugin-context.ts +1495 -1478
- package/src/plugin/plugin-icon-path.ts +50 -50
- package/src/plugin/plugin-manager.ts +493 -439
- package/src/plugin/plugin-storage.ts +138 -120
- package/src/plugin/preference-registry.spec.ts +288 -283
- package/src/plugin/preference-registry.ts +335 -329
- package/src/plugin/prefix-sum-computer.ts +218 -218
- package/src/plugin/quick-open.ts +759 -773
- package/src/plugin/scm.ts +919 -919
- package/src/plugin/secrets-ext.ts +104 -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/tabs.ts +426 -426
- package/src/plugin/tasks/task-provider.ts +57 -57
- package/src/plugin/tasks/tasks.ts +252 -252
- package/src/plugin/telemetry-ext.ts +298 -298
- package/src/plugin/terminal-ext.ts +553 -551
- package/src/plugin/test-item.ts +174 -174
- package/src/plugin/tests.ts +506 -506
- package/src/plugin/text-editor.ts +582 -582
- package/src/plugin/text-editors.ts +157 -150
- package/src/plugin/theming.ts +73 -73
- package/src/plugin/timeline.ts +186 -186
- package/src/plugin/tree/tree-views.ts +682 -682
- package/src/plugin/type-converters.spec.ts +476 -476
- package/src/plugin/type-converters.ts +1748 -1712
- package/src/plugin/types-impl.spec.ts +85 -85
- package/src/plugin/types-impl.ts +3724 -3696
- package/src/plugin/webview-views.ts +228 -227
- package/src/plugin/webviews.ts +459 -433
- package/src/plugin/window-state.ts +68 -68
- package/src/plugin/word-helper.ts +162 -162
- package/src/plugin/workspace.ts +505 -495
- 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
|
@@ -1,410 +1,410 @@
|
|
|
1
|
-
// *****************************************************************************
|
|
2
|
-
// Copyright (C) 2021 TypeFox and others.
|
|
3
|
-
//
|
|
4
|
-
// This program and the accompanying materials are made available under the
|
|
5
|
-
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
-
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
-
//
|
|
8
|
-
// This Source Code may also be made available under the following Secondary
|
|
9
|
-
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
-
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
-
// with the GNU Classpath Exception which is available at
|
|
12
|
-
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
-
//
|
|
14
|
-
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
-
// *****************************************************************************
|
|
16
|
-
|
|
17
|
-
import * as path from 'path';
|
|
18
|
-
import * as fs from '@theia/core/shared/fs-extra';
|
|
19
|
-
import { LazyLocalization, LocalizationProvider } from '@theia/core/lib/node/i18n/localization-provider';
|
|
20
|
-
import { Localization } from '@theia/core/lib/common/i18n/localization';
|
|
21
|
-
import { inject, injectable } from '@theia/core/shared/inversify';
|
|
22
|
-
import { DeployedPlugin, Localization as PluginLocalization, PluginIdentifiers, Translation } from '../../common';
|
|
23
|
-
import { EnvVariablesServer } from '@theia/core/lib/common/env-variables';
|
|
24
|
-
import { BackendApplicationContribution } from '@theia/core/lib/node';
|
|
25
|
-
import { Disposable, DisposableCollection, isObject, MaybePromise, nls, Path, URI } from '@theia/core';
|
|
26
|
-
import { Deferred } from '@theia/core/lib/common/promise-util';
|
|
27
|
-
import { LanguagePackBundle, LanguagePackService } from '../../common/language-pack-service';
|
|
28
|
-
|
|
29
|
-
export interface VSCodeNlsConfig {
|
|
30
|
-
locale: string
|
|
31
|
-
availableLanguages: Record<string, string>
|
|
32
|
-
_languagePackSupport?: boolean
|
|
33
|
-
_languagePackId?: string
|
|
34
|
-
_translationsConfigFile?: string
|
|
35
|
-
_cacheRoot?: string
|
|
36
|
-
_corruptedFile?: string
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
@injectable()
|
|
40
|
-
export class HostedPluginLocalizationService implements BackendApplicationContribution {
|
|
41
|
-
|
|
42
|
-
@inject(LocalizationProvider)
|
|
43
|
-
protected readonly localizationProvider: LocalizationProvider;
|
|
44
|
-
|
|
45
|
-
@inject(LanguagePackService)
|
|
46
|
-
protected readonly languagePackService: LanguagePackService;
|
|
47
|
-
|
|
48
|
-
@inject(EnvVariablesServer)
|
|
49
|
-
protected readonly envVariables: EnvVariablesServer;
|
|
50
|
-
|
|
51
|
-
protected localizationDisposeMap = new Map<string, Disposable>();
|
|
52
|
-
protected translationConfigFiles: Map<string, string> = new Map();
|
|
53
|
-
|
|
54
|
-
protected readonly _ready = new Deferred();
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* This promise resolves when the cache has been cleaned up after starting the backend server.
|
|
58
|
-
* Once resolved, the service allows to cache localization files for plugins.
|
|
59
|
-
*/
|
|
60
|
-
ready = this._ready.promise;
|
|
61
|
-
|
|
62
|
-
initialize(): MaybePromise<void> {
|
|
63
|
-
this.getLocalizationCacheDir()
|
|
64
|
-
.then(cacheDir => fs.emptyDir(cacheDir))
|
|
65
|
-
.then(() => this._ready.resolve());
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
async deployLocalizations(plugin: DeployedPlugin): Promise<void> {
|
|
69
|
-
const disposable = new DisposableCollection();
|
|
70
|
-
if (plugin.contributes?.localizations) {
|
|
71
|
-
// Indicator that this plugin is a vscode language pack
|
|
72
|
-
// Language packs translate Theia and some builtin vscode extensions
|
|
73
|
-
const localizations = buildLocalizations(plugin.metadata.model.packageUri, plugin.contributes.localizations);
|
|
74
|
-
disposable.push(this.localizationProvider.addLocalizations(...localizations));
|
|
75
|
-
}
|
|
76
|
-
if (plugin.metadata.model.l10n || plugin.contributes?.localizations) {
|
|
77
|
-
// Indicator that this plugin is a vscode language pack or has its own localization bundles
|
|
78
|
-
// These bundles are purely used for translating plugins
|
|
79
|
-
// The branch above builds localizations for Theia's own strings
|
|
80
|
-
disposable.push(await this.updateLanguagePackBundles(plugin));
|
|
81
|
-
}
|
|
82
|
-
if (!disposable.disposed) {
|
|
83
|
-
const versionedId = PluginIdentifiers.componentsToVersionedId(plugin.metadata.model);
|
|
84
|
-
disposable.push(Disposable.create(() => {
|
|
85
|
-
this.localizationDisposeMap.delete(versionedId);
|
|
86
|
-
}));
|
|
87
|
-
this.localizationDisposeMap.set(versionedId, disposable);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
undeployLocalizations(plugin: PluginIdentifiers.VersionedId): void {
|
|
92
|
-
this.localizationDisposeMap.get(plugin)?.dispose();
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
protected async updateLanguagePackBundles(plugin: DeployedPlugin): Promise<Disposable> {
|
|
96
|
-
const disposable = new DisposableCollection();
|
|
97
|
-
const pluginId = plugin.metadata.model.id;
|
|
98
|
-
const packageUri = new URI(plugin.metadata.model.packageUri);
|
|
99
|
-
if (plugin.contributes?.localizations) {
|
|
100
|
-
const l10nPromises: Promise<void>[] = [];
|
|
101
|
-
for (const localization of plugin.contributes.localizations) {
|
|
102
|
-
for (const translation of localization.translations) {
|
|
103
|
-
l10nPromises.push(getL10nTranslation(plugin.metadata.model.packageUri, translation).then(l10n => {
|
|
104
|
-
if (l10n) {
|
|
105
|
-
const translatedPluginId = translation.id;
|
|
106
|
-
const translationUri = packageUri.resolve(translation.path);
|
|
107
|
-
const locale = localization.languageId;
|
|
108
|
-
// We store a bundle for another extension in here
|
|
109
|
-
// Hence we use `translatedPluginId` instead of `pluginId`
|
|
110
|
-
this.languagePackService.storeBundle(translatedPluginId, locale, {
|
|
111
|
-
contents: processL10nBundle(l10n),
|
|
112
|
-
uri: translationUri.toString()
|
|
113
|
-
});
|
|
114
|
-
disposable.push(Disposable.create(() => {
|
|
115
|
-
// Only dispose the deleted locale for the specific plugin
|
|
116
|
-
this.languagePackService.deleteBundle(translatedPluginId, locale);
|
|
117
|
-
}));
|
|
118
|
-
}
|
|
119
|
-
}));
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
await Promise.all(l10nPromises);
|
|
123
|
-
}
|
|
124
|
-
// The `l10n` field of the plugin model points to a relative directory path within the plugin
|
|
125
|
-
// It is supposed to contain localization bundles that contain translations of the plugin strings into different languages
|
|
126
|
-
if (plugin.metadata.model.l10n) {
|
|
127
|
-
const bundleDirectory = packageUri.resolve(plugin.metadata.model.l10n);
|
|
128
|
-
const bundles = await loadPluginBundles(bundleDirectory);
|
|
129
|
-
if (bundles) {
|
|
130
|
-
for (const [locale, bundle] of Object.entries(bundles)) {
|
|
131
|
-
this.languagePackService.storeBundle(pluginId, locale, bundle);
|
|
132
|
-
}
|
|
133
|
-
disposable.push(Disposable.create(() => {
|
|
134
|
-
// Dispose all bundles contributed by the deleted plugin
|
|
135
|
-
this.languagePackService.deleteBundle(pluginId);
|
|
136
|
-
}));
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
return disposable;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
/**
|
|
143
|
-
* Performs localization of the plugin model. Translates entries such as command names, view names and other items.
|
|
144
|
-
*
|
|
145
|
-
* Translatable items are indicated with a `%id%` value.
|
|
146
|
-
* The `id` is the translation key that gets replaced with the localized value for the currently selected language.
|
|
147
|
-
*
|
|
148
|
-
* Returns a copy of the plugin argument and does not modify the argument.
|
|
149
|
-
* This is done to preserve the original `%id%` values for subsequent invocations of this method.
|
|
150
|
-
*/
|
|
151
|
-
async localizePlugin(plugin: DeployedPlugin): Promise<DeployedPlugin> {
|
|
152
|
-
const currentLanguage = this.localizationProvider.getCurrentLanguage();
|
|
153
|
-
const pluginPath = new URI(plugin.metadata.model.packageUri).path.fsPath();
|
|
154
|
-
const pluginId = plugin.metadata.model.id;
|
|
155
|
-
try {
|
|
156
|
-
const [localization, translations] = await Promise.all([
|
|
157
|
-
this.localizationProvider.loadLocalization(currentLanguage),
|
|
158
|
-
loadPackageTranslations(pluginPath, currentLanguage),
|
|
159
|
-
]);
|
|
160
|
-
plugin = localizePackage(plugin, translations, (key, original) => {
|
|
161
|
-
const fullKey = `${pluginId}/package/${key}`;
|
|
162
|
-
return Localization.localize(localization, fullKey, original);
|
|
163
|
-
}) as DeployedPlugin;
|
|
164
|
-
} catch (err) {
|
|
165
|
-
console.error(`Failed to localize plugin '${pluginId}'.`, err);
|
|
166
|
-
}
|
|
167
|
-
return plugin;
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
getNlsConfig(): VSCodeNlsConfig {
|
|
171
|
-
const locale = this.localizationProvider.getCurrentLanguage();
|
|
172
|
-
const configFile = this.translationConfigFiles.get(locale);
|
|
173
|
-
if (locale === nls.defaultLocale || !configFile) {
|
|
174
|
-
return { locale, availableLanguages: {} };
|
|
175
|
-
}
|
|
176
|
-
const cache = path.dirname(configFile);
|
|
177
|
-
return {
|
|
178
|
-
locale,
|
|
179
|
-
availableLanguages: { '*': locale },
|
|
180
|
-
_languagePackSupport: true,
|
|
181
|
-
_cacheRoot: cache,
|
|
182
|
-
_languagePackId: locale,
|
|
183
|
-
_translationsConfigFile: configFile
|
|
184
|
-
};
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
async buildTranslationConfig(plugins: DeployedPlugin[]): Promise<void> {
|
|
188
|
-
await this.ready;
|
|
189
|
-
const cacheDir = await this.getLocalizationCacheDir();
|
|
190
|
-
const configs = new Map<string, Record<string, string>>();
|
|
191
|
-
for (const plugin of plugins) {
|
|
192
|
-
if (plugin.contributes?.localizations) {
|
|
193
|
-
const pluginPath = new URI(plugin.metadata.model.packageUri).path.fsPath();
|
|
194
|
-
for (const localization of plugin.contributes.localizations) {
|
|
195
|
-
const config = configs.get(localization.languageId) || {};
|
|
196
|
-
for (const translation of localization.translations) {
|
|
197
|
-
const fullPath = path.join(pluginPath, translation.path);
|
|
198
|
-
config[translation.id] = fullPath;
|
|
199
|
-
}
|
|
200
|
-
configs.set(localization.languageId, config);
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
for (const [language, config] of configs.entries()) {
|
|
206
|
-
const languageConfigDir = path.join(cacheDir, language);
|
|
207
|
-
await fs.mkdirs(languageConfigDir);
|
|
208
|
-
const configFile = path.join(languageConfigDir, `nls.config.${language}.json`);
|
|
209
|
-
this.translationConfigFiles.set(language, configFile);
|
|
210
|
-
await fs.writeJson(configFile, config);
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
protected async getLocalizationCacheDir(): Promise<string> {
|
|
215
|
-
const configDir = new URI(await this.envVariables.getConfigDirUri()).path.fsPath();
|
|
216
|
-
const cacheDir = path.join(configDir, 'localization-cache');
|
|
217
|
-
return cacheDir;
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
// New plugin localization logic using vscode.l10n
|
|
222
|
-
|
|
223
|
-
async function getL10nTranslation(packageUri: string, translation: Translation): Promise<UnprocessedL10nBundle | undefined> {
|
|
224
|
-
// 'bundle' is a special key that contains all translations for the l10n vscode API
|
|
225
|
-
// If that doesn't exist, we can assume that the language pack is using the old vscode-nls API
|
|
226
|
-
if (translation.cachedContents) {
|
|
227
|
-
return translation.cachedContents.bundle;
|
|
228
|
-
} else {
|
|
229
|
-
const translationPath = new URI(packageUri).path.join(translation.path).fsPath();
|
|
230
|
-
try {
|
|
231
|
-
const translationJson = await fs.readJson(translationPath);
|
|
232
|
-
translation.cachedContents = translationJson?.contents;
|
|
233
|
-
return translationJson?.contents?.bundle;
|
|
234
|
-
} catch (err) {
|
|
235
|
-
console.error('Failed reading translation file from: ' + translationPath, err);
|
|
236
|
-
// Store an empty object, so we don't reattempt to load the file
|
|
237
|
-
translation.cachedContents = {};
|
|
238
|
-
return undefined;
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
async function loadPluginBundles(l10nUri: URI): Promise<Record<string, LanguagePackBundle> | undefined> {
|
|
244
|
-
try {
|
|
245
|
-
const directory = l10nUri.path.fsPath();
|
|
246
|
-
const files = await fs.readdir(directory);
|
|
247
|
-
const result: Record<string, LanguagePackBundle> = {};
|
|
248
|
-
await Promise.all(files.map(async fileName => {
|
|
249
|
-
const match = fileName.match(/^bundle\.l10n\.([\w\-]+)\.json$/);
|
|
250
|
-
if (match) {
|
|
251
|
-
const locale = match[1];
|
|
252
|
-
const contents = await fs.readJSON(path.join(directory, fileName));
|
|
253
|
-
result[locale] = {
|
|
254
|
-
contents,
|
|
255
|
-
uri: l10nUri.resolve(fileName).toString()
|
|
256
|
-
};
|
|
257
|
-
}
|
|
258
|
-
}));
|
|
259
|
-
return result;
|
|
260
|
-
} catch (err) {
|
|
261
|
-
// The directory either doesn't exist or its contents cannot be parsed
|
|
262
|
-
console.error(`Failed to load plugin localization bundles from ${l10nUri}.`, err);
|
|
263
|
-
// In any way we should just safely return undefined
|
|
264
|
-
return undefined;
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
type UnprocessedL10nBundle = Record<string, string | { message: string }>;
|
|
269
|
-
|
|
270
|
-
function processL10nBundle(bundle: UnprocessedL10nBundle): Record<string, string> {
|
|
271
|
-
const processedBundle: Record<string, string> = {};
|
|
272
|
-
for (const [name, value] of Object.entries(bundle)) {
|
|
273
|
-
const stringValue = typeof value === 'string' ? value : value.message;
|
|
274
|
-
processedBundle[name] = stringValue;
|
|
275
|
-
}
|
|
276
|
-
return processedBundle;
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
// Old plugin localization logic for vscode-nls
|
|
280
|
-
// vscode-nls was used until version 1.73 of VSCode to translate extensions
|
|
281
|
-
// This style of localization is still used by vscode language packs
|
|
282
|
-
|
|
283
|
-
function buildLocalizations(packageUri: string, localizations: PluginLocalization[]): LazyLocalization[] {
|
|
284
|
-
const theiaLocalizations: LazyLocalization[] = [];
|
|
285
|
-
const packagePath = new URI(packageUri).path;
|
|
286
|
-
for (const localization of localizations) {
|
|
287
|
-
let cachedLocalization: Promise<Record<string, string>> | undefined;
|
|
288
|
-
const theiaLocalization: LazyLocalization = {
|
|
289
|
-
languageId: localization.languageId,
|
|
290
|
-
languageName: localization.languageName,
|
|
291
|
-
localizedLanguageName: localization.localizedLanguageName,
|
|
292
|
-
languagePack: true,
|
|
293
|
-
async getTranslations(): Promise<Record<string, string>> {
|
|
294
|
-
cachedLocalization ??= loadTranslations(packagePath, localization.translations);
|
|
295
|
-
return cachedLocalization;
|
|
296
|
-
},
|
|
297
|
-
};
|
|
298
|
-
theiaLocalizations.push(theiaLocalization);
|
|
299
|
-
}
|
|
300
|
-
return theiaLocalizations;
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
async function loadTranslations(packagePath: Path, translations: Translation[]): Promise<Record<string, string>> {
|
|
304
|
-
const allTranslations = await Promise.all(translations.map(async translation => {
|
|
305
|
-
const values: Record<string, string> = {};
|
|
306
|
-
const translationPath = packagePath.join(translation.path).fsPath();
|
|
307
|
-
try {
|
|
308
|
-
const translationJson = await fs.readJson(translationPath);
|
|
309
|
-
const translationContents: Record<string, Record<string, string>> = translationJson?.contents;
|
|
310
|
-
for (const [scope, value] of Object.entries(translationContents ?? {})) {
|
|
311
|
-
for (const [key, item] of Object.entries(value)) {
|
|
312
|
-
const translationKey = buildTranslationKey(translation.id, scope, key);
|
|
313
|
-
values[translationKey] = item;
|
|
314
|
-
}
|
|
315
|
-
}
|
|
316
|
-
} catch (err) {
|
|
317
|
-
console.error('Failed to load translation from: ' + translationPath, err);
|
|
318
|
-
}
|
|
319
|
-
return values;
|
|
320
|
-
}));
|
|
321
|
-
return Object.assign({}, ...allTranslations);
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
function buildTranslationKey(pluginId: string, scope: string, key: string): string {
|
|
325
|
-
return `${pluginId}/${Localization.transformKey(scope)}/${key}`;
|
|
326
|
-
}
|
|
327
|
-
|
|
328
|
-
// Localization logic for `package.json` entries
|
|
329
|
-
// Extensions can use `package.nls.json` files to store translations for values in their package.json
|
|
330
|
-
// This logic has not changed with the introduction of the vscode.l10n API
|
|
331
|
-
|
|
332
|
-
interface PackageTranslation {
|
|
333
|
-
translation?: Record<string, string>
|
|
334
|
-
default?: Record<string, string>
|
|
335
|
-
}
|
|
336
|
-
|
|
337
|
-
async function loadPackageTranslations(pluginPath: string, locale: string): Promise<PackageTranslation> {
|
|
338
|
-
const localizedPluginPath = path.join(pluginPath, `package.nls.${locale}.json`);
|
|
339
|
-
try {
|
|
340
|
-
const defaultValue = coerceLocalizations(await fs.readJson(path.join(pluginPath, 'package.nls.json')));
|
|
341
|
-
if (await fs.pathExists(localizedPluginPath)) {
|
|
342
|
-
return {
|
|
343
|
-
translation: coerceLocalizations(await fs.readJson(localizedPluginPath)),
|
|
344
|
-
default: defaultValue
|
|
345
|
-
};
|
|
346
|
-
}
|
|
347
|
-
return {
|
|
348
|
-
default: defaultValue
|
|
349
|
-
};
|
|
350
|
-
} catch (e) {
|
|
351
|
-
if (e.code !== 'ENOENT') {
|
|
352
|
-
throw e;
|
|
353
|
-
}
|
|
354
|
-
return {};
|
|
355
|
-
}
|
|
356
|
-
}
|
|
357
|
-
|
|
358
|
-
interface LocalizeInfo {
|
|
359
|
-
message: string
|
|
360
|
-
comment?: string
|
|
361
|
-
}
|
|
362
|
-
|
|
363
|
-
function isLocalizeInfo(obj: unknown): obj is LocalizeInfo {
|
|
364
|
-
return isObject(obj) && 'message' in obj || false;
|
|
365
|
-
}
|
|
366
|
-
|
|
367
|
-
function coerceLocalizations(translations: Record<string, string | LocalizeInfo>): Record<string, string> {
|
|
368
|
-
for (const [key, value] of Object.entries(translations)) {
|
|
369
|
-
if (isLocalizeInfo(value)) {
|
|
370
|
-
translations[key] = value.message;
|
|
371
|
-
} else if (typeof value !== 'string') {
|
|
372
|
-
// Only strings or LocalizeInfo values are valid
|
|
373
|
-
translations[key] = 'INVALID TRANSLATION VALUE';
|
|
374
|
-
}
|
|
375
|
-
}
|
|
376
|
-
return translations as Record<string, string>;
|
|
377
|
-
}
|
|
378
|
-
|
|
379
|
-
const NLS_REGEX = /^%([\w\d.-]+)%$/i;
|
|
380
|
-
|
|
381
|
-
function localizePackage(value: unknown, translations: PackageTranslation, callback: (key: string, defaultValue: string) => string): unknown {
|
|
382
|
-
if (typeof value === 'string') {
|
|
383
|
-
const match = NLS_REGEX.exec(value);
|
|
384
|
-
let result = value;
|
|
385
|
-
if (match) {
|
|
386
|
-
const key = match[1];
|
|
387
|
-
if (translations.translation) {
|
|
388
|
-
result = translations.translation[key];
|
|
389
|
-
} else if (translations.default) {
|
|
390
|
-
result = callback(key, translations.default[key]);
|
|
391
|
-
}
|
|
392
|
-
}
|
|
393
|
-
return result;
|
|
394
|
-
}
|
|
395
|
-
if (Array.isArray(value)) {
|
|
396
|
-
const result = [];
|
|
397
|
-
for (const item of value) {
|
|
398
|
-
result.push(localizePackage(item, translations, callback));
|
|
399
|
-
}
|
|
400
|
-
return result;
|
|
401
|
-
}
|
|
402
|
-
if (isObject(value)) {
|
|
403
|
-
const result: Record<string, unknown> = {};
|
|
404
|
-
for (const [name, item] of Object.entries(value)) {
|
|
405
|
-
result[name] = localizePackage(item, translations, callback);
|
|
406
|
-
}
|
|
407
|
-
return result;
|
|
408
|
-
}
|
|
409
|
-
return value;
|
|
410
|
-
}
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2021 TypeFox and others.
|
|
3
|
+
//
|
|
4
|
+
// This program and the accompanying materials are made available under the
|
|
5
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
//
|
|
8
|
+
// This Source Code may also be made available under the following Secondary
|
|
9
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
// with the GNU Classpath Exception which is available at
|
|
12
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
//
|
|
14
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
|
+
// *****************************************************************************
|
|
16
|
+
|
|
17
|
+
import * as path from 'path';
|
|
18
|
+
import * as fs from '@theia/core/shared/fs-extra';
|
|
19
|
+
import { LazyLocalization, LocalizationProvider } from '@theia/core/lib/node/i18n/localization-provider';
|
|
20
|
+
import { Localization } from '@theia/core/lib/common/i18n/localization';
|
|
21
|
+
import { inject, injectable } from '@theia/core/shared/inversify';
|
|
22
|
+
import { DeployedPlugin, Localization as PluginLocalization, PluginIdentifiers, Translation } from '../../common';
|
|
23
|
+
import { EnvVariablesServer } from '@theia/core/lib/common/env-variables';
|
|
24
|
+
import { BackendApplicationContribution } from '@theia/core/lib/node';
|
|
25
|
+
import { Disposable, DisposableCollection, isObject, MaybePromise, nls, Path, URI } from '@theia/core';
|
|
26
|
+
import { Deferred } from '@theia/core/lib/common/promise-util';
|
|
27
|
+
import { LanguagePackBundle, LanguagePackService } from '../../common/language-pack-service';
|
|
28
|
+
|
|
29
|
+
export interface VSCodeNlsConfig {
|
|
30
|
+
locale: string
|
|
31
|
+
availableLanguages: Record<string, string>
|
|
32
|
+
_languagePackSupport?: boolean
|
|
33
|
+
_languagePackId?: string
|
|
34
|
+
_translationsConfigFile?: string
|
|
35
|
+
_cacheRoot?: string
|
|
36
|
+
_corruptedFile?: string
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
@injectable()
|
|
40
|
+
export class HostedPluginLocalizationService implements BackendApplicationContribution {
|
|
41
|
+
|
|
42
|
+
@inject(LocalizationProvider)
|
|
43
|
+
protected readonly localizationProvider: LocalizationProvider;
|
|
44
|
+
|
|
45
|
+
@inject(LanguagePackService)
|
|
46
|
+
protected readonly languagePackService: LanguagePackService;
|
|
47
|
+
|
|
48
|
+
@inject(EnvVariablesServer)
|
|
49
|
+
protected readonly envVariables: EnvVariablesServer;
|
|
50
|
+
|
|
51
|
+
protected localizationDisposeMap = new Map<string, Disposable>();
|
|
52
|
+
protected translationConfigFiles: Map<string, string> = new Map();
|
|
53
|
+
|
|
54
|
+
protected readonly _ready = new Deferred();
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* This promise resolves when the cache has been cleaned up after starting the backend server.
|
|
58
|
+
* Once resolved, the service allows to cache localization files for plugins.
|
|
59
|
+
*/
|
|
60
|
+
ready = this._ready.promise;
|
|
61
|
+
|
|
62
|
+
initialize(): MaybePromise<void> {
|
|
63
|
+
this.getLocalizationCacheDir()
|
|
64
|
+
.then(cacheDir => fs.emptyDir(cacheDir))
|
|
65
|
+
.then(() => this._ready.resolve());
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
async deployLocalizations(plugin: DeployedPlugin): Promise<void> {
|
|
69
|
+
const disposable = new DisposableCollection();
|
|
70
|
+
if (plugin.contributes?.localizations) {
|
|
71
|
+
// Indicator that this plugin is a vscode language pack
|
|
72
|
+
// Language packs translate Theia and some builtin vscode extensions
|
|
73
|
+
const localizations = buildLocalizations(plugin.metadata.model.packageUri, plugin.contributes.localizations);
|
|
74
|
+
disposable.push(this.localizationProvider.addLocalizations(...localizations));
|
|
75
|
+
}
|
|
76
|
+
if (plugin.metadata.model.l10n || plugin.contributes?.localizations) {
|
|
77
|
+
// Indicator that this plugin is a vscode language pack or has its own localization bundles
|
|
78
|
+
// These bundles are purely used for translating plugins
|
|
79
|
+
// The branch above builds localizations for Theia's own strings
|
|
80
|
+
disposable.push(await this.updateLanguagePackBundles(plugin));
|
|
81
|
+
}
|
|
82
|
+
if (!disposable.disposed) {
|
|
83
|
+
const versionedId = PluginIdentifiers.componentsToVersionedId(plugin.metadata.model);
|
|
84
|
+
disposable.push(Disposable.create(() => {
|
|
85
|
+
this.localizationDisposeMap.delete(versionedId);
|
|
86
|
+
}));
|
|
87
|
+
this.localizationDisposeMap.set(versionedId, disposable);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
undeployLocalizations(plugin: PluginIdentifiers.VersionedId): void {
|
|
92
|
+
this.localizationDisposeMap.get(plugin)?.dispose();
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
protected async updateLanguagePackBundles(plugin: DeployedPlugin): Promise<Disposable> {
|
|
96
|
+
const disposable = new DisposableCollection();
|
|
97
|
+
const pluginId = plugin.metadata.model.id;
|
|
98
|
+
const packageUri = new URI(plugin.metadata.model.packageUri);
|
|
99
|
+
if (plugin.contributes?.localizations) {
|
|
100
|
+
const l10nPromises: Promise<void>[] = [];
|
|
101
|
+
for (const localization of plugin.contributes.localizations) {
|
|
102
|
+
for (const translation of localization.translations) {
|
|
103
|
+
l10nPromises.push(getL10nTranslation(plugin.metadata.model.packageUri, translation).then(l10n => {
|
|
104
|
+
if (l10n) {
|
|
105
|
+
const translatedPluginId = translation.id;
|
|
106
|
+
const translationUri = packageUri.resolve(translation.path);
|
|
107
|
+
const locale = localization.languageId;
|
|
108
|
+
// We store a bundle for another extension in here
|
|
109
|
+
// Hence we use `translatedPluginId` instead of `pluginId`
|
|
110
|
+
this.languagePackService.storeBundle(translatedPluginId, locale, {
|
|
111
|
+
contents: processL10nBundle(l10n),
|
|
112
|
+
uri: translationUri.toString()
|
|
113
|
+
});
|
|
114
|
+
disposable.push(Disposable.create(() => {
|
|
115
|
+
// Only dispose the deleted locale for the specific plugin
|
|
116
|
+
this.languagePackService.deleteBundle(translatedPluginId, locale);
|
|
117
|
+
}));
|
|
118
|
+
}
|
|
119
|
+
}));
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
await Promise.all(l10nPromises);
|
|
123
|
+
}
|
|
124
|
+
// The `l10n` field of the plugin model points to a relative directory path within the plugin
|
|
125
|
+
// It is supposed to contain localization bundles that contain translations of the plugin strings into different languages
|
|
126
|
+
if (plugin.metadata.model.l10n) {
|
|
127
|
+
const bundleDirectory = packageUri.resolve(plugin.metadata.model.l10n);
|
|
128
|
+
const bundles = await loadPluginBundles(bundleDirectory);
|
|
129
|
+
if (bundles) {
|
|
130
|
+
for (const [locale, bundle] of Object.entries(bundles)) {
|
|
131
|
+
this.languagePackService.storeBundle(pluginId, locale, bundle);
|
|
132
|
+
}
|
|
133
|
+
disposable.push(Disposable.create(() => {
|
|
134
|
+
// Dispose all bundles contributed by the deleted plugin
|
|
135
|
+
this.languagePackService.deleteBundle(pluginId);
|
|
136
|
+
}));
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return disposable;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Performs localization of the plugin model. Translates entries such as command names, view names and other items.
|
|
144
|
+
*
|
|
145
|
+
* Translatable items are indicated with a `%id%` value.
|
|
146
|
+
* The `id` is the translation key that gets replaced with the localized value for the currently selected language.
|
|
147
|
+
*
|
|
148
|
+
* Returns a copy of the plugin argument and does not modify the argument.
|
|
149
|
+
* This is done to preserve the original `%id%` values for subsequent invocations of this method.
|
|
150
|
+
*/
|
|
151
|
+
async localizePlugin(plugin: DeployedPlugin): Promise<DeployedPlugin> {
|
|
152
|
+
const currentLanguage = this.localizationProvider.getCurrentLanguage();
|
|
153
|
+
const pluginPath = new URI(plugin.metadata.model.packageUri).path.fsPath();
|
|
154
|
+
const pluginId = plugin.metadata.model.id;
|
|
155
|
+
try {
|
|
156
|
+
const [localization, translations] = await Promise.all([
|
|
157
|
+
this.localizationProvider.loadLocalization(currentLanguage),
|
|
158
|
+
loadPackageTranslations(pluginPath, currentLanguage),
|
|
159
|
+
]);
|
|
160
|
+
plugin = localizePackage(plugin, translations, (key, original) => {
|
|
161
|
+
const fullKey = `${pluginId}/package/${key}`;
|
|
162
|
+
return Localization.localize(localization, fullKey, original);
|
|
163
|
+
}) as DeployedPlugin;
|
|
164
|
+
} catch (err) {
|
|
165
|
+
console.error(`Failed to localize plugin '${pluginId}'.`, err);
|
|
166
|
+
}
|
|
167
|
+
return plugin;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
getNlsConfig(): VSCodeNlsConfig {
|
|
171
|
+
const locale = this.localizationProvider.getCurrentLanguage();
|
|
172
|
+
const configFile = this.translationConfigFiles.get(locale);
|
|
173
|
+
if (locale === nls.defaultLocale || !configFile) {
|
|
174
|
+
return { locale, availableLanguages: {} };
|
|
175
|
+
}
|
|
176
|
+
const cache = path.dirname(configFile);
|
|
177
|
+
return {
|
|
178
|
+
locale,
|
|
179
|
+
availableLanguages: { '*': locale },
|
|
180
|
+
_languagePackSupport: true,
|
|
181
|
+
_cacheRoot: cache,
|
|
182
|
+
_languagePackId: locale,
|
|
183
|
+
_translationsConfigFile: configFile
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
async buildTranslationConfig(plugins: DeployedPlugin[]): Promise<void> {
|
|
188
|
+
await this.ready;
|
|
189
|
+
const cacheDir = await this.getLocalizationCacheDir();
|
|
190
|
+
const configs = new Map<string, Record<string, string>>();
|
|
191
|
+
for (const plugin of plugins) {
|
|
192
|
+
if (plugin.contributes?.localizations) {
|
|
193
|
+
const pluginPath = new URI(plugin.metadata.model.packageUri).path.fsPath();
|
|
194
|
+
for (const localization of plugin.contributes.localizations) {
|
|
195
|
+
const config = configs.get(localization.languageId) || {};
|
|
196
|
+
for (const translation of localization.translations) {
|
|
197
|
+
const fullPath = path.join(pluginPath, translation.path);
|
|
198
|
+
config[translation.id] = fullPath;
|
|
199
|
+
}
|
|
200
|
+
configs.set(localization.languageId, config);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
for (const [language, config] of configs.entries()) {
|
|
206
|
+
const languageConfigDir = path.join(cacheDir, language);
|
|
207
|
+
await fs.mkdirs(languageConfigDir);
|
|
208
|
+
const configFile = path.join(languageConfigDir, `nls.config.${language}.json`);
|
|
209
|
+
this.translationConfigFiles.set(language, configFile);
|
|
210
|
+
await fs.writeJson(configFile, config);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
protected async getLocalizationCacheDir(): Promise<string> {
|
|
215
|
+
const configDir = new URI(await this.envVariables.getConfigDirUri()).path.fsPath();
|
|
216
|
+
const cacheDir = path.join(configDir, 'localization-cache');
|
|
217
|
+
return cacheDir;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
// New plugin localization logic using vscode.l10n
|
|
222
|
+
|
|
223
|
+
async function getL10nTranslation(packageUri: string, translation: Translation): Promise<UnprocessedL10nBundle | undefined> {
|
|
224
|
+
// 'bundle' is a special key that contains all translations for the l10n vscode API
|
|
225
|
+
// If that doesn't exist, we can assume that the language pack is using the old vscode-nls API
|
|
226
|
+
if (translation.cachedContents) {
|
|
227
|
+
return translation.cachedContents.bundle;
|
|
228
|
+
} else {
|
|
229
|
+
const translationPath = new URI(packageUri).path.join(translation.path).fsPath();
|
|
230
|
+
try {
|
|
231
|
+
const translationJson = await fs.readJson(translationPath);
|
|
232
|
+
translation.cachedContents = translationJson?.contents;
|
|
233
|
+
return translationJson?.contents?.bundle;
|
|
234
|
+
} catch (err) {
|
|
235
|
+
console.error('Failed reading translation file from: ' + translationPath, err);
|
|
236
|
+
// Store an empty object, so we don't reattempt to load the file
|
|
237
|
+
translation.cachedContents = {};
|
|
238
|
+
return undefined;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
async function loadPluginBundles(l10nUri: URI): Promise<Record<string, LanguagePackBundle> | undefined> {
|
|
244
|
+
try {
|
|
245
|
+
const directory = l10nUri.path.fsPath();
|
|
246
|
+
const files = await fs.readdir(directory);
|
|
247
|
+
const result: Record<string, LanguagePackBundle> = {};
|
|
248
|
+
await Promise.all(files.map(async fileName => {
|
|
249
|
+
const match = fileName.match(/^bundle\.l10n\.([\w\-]+)\.json$/);
|
|
250
|
+
if (match) {
|
|
251
|
+
const locale = match[1];
|
|
252
|
+
const contents = await fs.readJSON(path.join(directory, fileName));
|
|
253
|
+
result[locale] = {
|
|
254
|
+
contents,
|
|
255
|
+
uri: l10nUri.resolve(fileName).toString()
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
}));
|
|
259
|
+
return result;
|
|
260
|
+
} catch (err) {
|
|
261
|
+
// The directory either doesn't exist or its contents cannot be parsed
|
|
262
|
+
console.error(`Failed to load plugin localization bundles from ${l10nUri}.`, err);
|
|
263
|
+
// In any way we should just safely return undefined
|
|
264
|
+
return undefined;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
type UnprocessedL10nBundle = Record<string, string | { message: string }>;
|
|
269
|
+
|
|
270
|
+
function processL10nBundle(bundle: UnprocessedL10nBundle): Record<string, string> {
|
|
271
|
+
const processedBundle: Record<string, string> = {};
|
|
272
|
+
for (const [name, value] of Object.entries(bundle)) {
|
|
273
|
+
const stringValue = typeof value === 'string' ? value : value.message;
|
|
274
|
+
processedBundle[name] = stringValue;
|
|
275
|
+
}
|
|
276
|
+
return processedBundle;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
// Old plugin localization logic for vscode-nls
|
|
280
|
+
// vscode-nls was used until version 1.73 of VSCode to translate extensions
|
|
281
|
+
// This style of localization is still used by vscode language packs
|
|
282
|
+
|
|
283
|
+
function buildLocalizations(packageUri: string, localizations: PluginLocalization[]): LazyLocalization[] {
|
|
284
|
+
const theiaLocalizations: LazyLocalization[] = [];
|
|
285
|
+
const packagePath = new URI(packageUri).path;
|
|
286
|
+
for (const localization of localizations) {
|
|
287
|
+
let cachedLocalization: Promise<Record<string, string>> | undefined;
|
|
288
|
+
const theiaLocalization: LazyLocalization = {
|
|
289
|
+
languageId: localization.languageId,
|
|
290
|
+
languageName: localization.languageName,
|
|
291
|
+
localizedLanguageName: localization.localizedLanguageName,
|
|
292
|
+
languagePack: true,
|
|
293
|
+
async getTranslations(): Promise<Record<string, string>> {
|
|
294
|
+
cachedLocalization ??= loadTranslations(packagePath, localization.translations);
|
|
295
|
+
return cachedLocalization;
|
|
296
|
+
},
|
|
297
|
+
};
|
|
298
|
+
theiaLocalizations.push(theiaLocalization);
|
|
299
|
+
}
|
|
300
|
+
return theiaLocalizations;
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
async function loadTranslations(packagePath: Path, translations: Translation[]): Promise<Record<string, string>> {
|
|
304
|
+
const allTranslations = await Promise.all(translations.map(async translation => {
|
|
305
|
+
const values: Record<string, string> = {};
|
|
306
|
+
const translationPath = packagePath.join(translation.path).fsPath();
|
|
307
|
+
try {
|
|
308
|
+
const translationJson = await fs.readJson(translationPath);
|
|
309
|
+
const translationContents: Record<string, Record<string, string>> = translationJson?.contents;
|
|
310
|
+
for (const [scope, value] of Object.entries(translationContents ?? {})) {
|
|
311
|
+
for (const [key, item] of Object.entries(value)) {
|
|
312
|
+
const translationKey = buildTranslationKey(translation.id, scope, key);
|
|
313
|
+
values[translationKey] = item;
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
} catch (err) {
|
|
317
|
+
console.error('Failed to load translation from: ' + translationPath, err);
|
|
318
|
+
}
|
|
319
|
+
return values;
|
|
320
|
+
}));
|
|
321
|
+
return Object.assign({}, ...allTranslations);
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
function buildTranslationKey(pluginId: string, scope: string, key: string): string {
|
|
325
|
+
return `${pluginId}/${Localization.transformKey(scope)}/${key}`;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
// Localization logic for `package.json` entries
|
|
329
|
+
// Extensions can use `package.nls.json` files to store translations for values in their package.json
|
|
330
|
+
// This logic has not changed with the introduction of the vscode.l10n API
|
|
331
|
+
|
|
332
|
+
interface PackageTranslation {
|
|
333
|
+
translation?: Record<string, string>
|
|
334
|
+
default?: Record<string, string>
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
async function loadPackageTranslations(pluginPath: string, locale: string): Promise<PackageTranslation> {
|
|
338
|
+
const localizedPluginPath = path.join(pluginPath, `package.nls.${locale}.json`);
|
|
339
|
+
try {
|
|
340
|
+
const defaultValue = coerceLocalizations(await fs.readJson(path.join(pluginPath, 'package.nls.json')));
|
|
341
|
+
if (await fs.pathExists(localizedPluginPath)) {
|
|
342
|
+
return {
|
|
343
|
+
translation: coerceLocalizations(await fs.readJson(localizedPluginPath)),
|
|
344
|
+
default: defaultValue
|
|
345
|
+
};
|
|
346
|
+
}
|
|
347
|
+
return {
|
|
348
|
+
default: defaultValue
|
|
349
|
+
};
|
|
350
|
+
} catch (e) {
|
|
351
|
+
if (e.code !== 'ENOENT') {
|
|
352
|
+
throw e;
|
|
353
|
+
}
|
|
354
|
+
return {};
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
interface LocalizeInfo {
|
|
359
|
+
message: string
|
|
360
|
+
comment?: string
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
function isLocalizeInfo(obj: unknown): obj is LocalizeInfo {
|
|
364
|
+
return isObject(obj) && 'message' in obj || false;
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
function coerceLocalizations(translations: Record<string, string | LocalizeInfo>): Record<string, string> {
|
|
368
|
+
for (const [key, value] of Object.entries(translations)) {
|
|
369
|
+
if (isLocalizeInfo(value)) {
|
|
370
|
+
translations[key] = value.message;
|
|
371
|
+
} else if (typeof value !== 'string') {
|
|
372
|
+
// Only strings or LocalizeInfo values are valid
|
|
373
|
+
translations[key] = 'INVALID TRANSLATION VALUE';
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
return translations as Record<string, string>;
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
const NLS_REGEX = /^%([\w\d.-]+)%$/i;
|
|
380
|
+
|
|
381
|
+
function localizePackage(value: unknown, translations: PackageTranslation, callback: (key: string, defaultValue: string) => string): unknown {
|
|
382
|
+
if (typeof value === 'string') {
|
|
383
|
+
const match = NLS_REGEX.exec(value);
|
|
384
|
+
let result = value;
|
|
385
|
+
if (match) {
|
|
386
|
+
const key = match[1];
|
|
387
|
+
if (translations.translation) {
|
|
388
|
+
result = translations.translation[key];
|
|
389
|
+
} else if (translations.default) {
|
|
390
|
+
result = callback(key, translations.default[key]);
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
return result;
|
|
394
|
+
}
|
|
395
|
+
if (Array.isArray(value)) {
|
|
396
|
+
const result = [];
|
|
397
|
+
for (const item of value) {
|
|
398
|
+
result.push(localizePackage(item, translations, callback));
|
|
399
|
+
}
|
|
400
|
+
return result;
|
|
401
|
+
}
|
|
402
|
+
if (isObject(value)) {
|
|
403
|
+
const result: Record<string, unknown> = {};
|
|
404
|
+
for (const [name, item] of Object.entries(value)) {
|
|
405
|
+
result[name] = localizePackage(item, translations, callback);
|
|
406
|
+
}
|
|
407
|
+
return result;
|
|
408
|
+
}
|
|
409
|
+
return value;
|
|
410
|
+
}
|