@codingame/monaco-vscode-extensions-service-override 3.2.3 → 4.1.0

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.
Files changed (108) hide show
  1. package/extensions.js +6 -87
  2. package/override/vs/platform/dialogs/common/dialogs.js +2 -0
  3. package/package.json +9 -9
  4. package/_virtual/semver.js +0 -3
  5. package/external/vscode-semver/semver.js +0 -985
  6. package/override/vs/workbench/browser/parts/editor/textEditor.weak.js +0 -8
  7. package/vscode/src/vs/base/common/console.js +0 -59
  8. package/vscode/src/vs/platform/extensionManagement/common/extensionManagementCLI.js +0 -497
  9. package/vscode/src/vs/platform/extensionResourceLoader/browser/extensionResourceLoaderService.js +0 -44
  10. package/vscode/src/vs/platform/lifecycle/common/lifecycle.js +0 -27
  11. package/vscode/src/vs/platform/remote/common/managedSocket.js +0 -98
  12. package/vscode/src/vs/workbench/api/browser/mainThreadAiEmbeddingVector.js +0 -31
  13. package/vscode/src/vs/workbench/api/browser/mainThreadAiRelatedInformation.js +0 -35
  14. package/vscode/src/vs/workbench/api/browser/mainThreadAuthentication.js +0 -227
  15. package/vscode/src/vs/workbench/api/browser/mainThreadBulkEdits.js +0 -68
  16. package/vscode/src/vs/workbench/api/browser/mainThreadCLICommands.js +0 -103
  17. package/vscode/src/vs/workbench/api/browser/mainThreadChat.js +0 -83
  18. package/vscode/src/vs/workbench/api/browser/mainThreadChatAgents2.js +0 -203
  19. package/vscode/src/vs/workbench/api/browser/mainThreadChatProvider.js +0 -201
  20. package/vscode/src/vs/workbench/api/browser/mainThreadChatVariables.js +0 -41
  21. package/vscode/src/vs/workbench/api/browser/mainThreadClipboard.js +0 -24
  22. package/vscode/src/vs/workbench/api/browser/mainThreadCodeInsets.js +0 -107
  23. package/vscode/src/vs/workbench/api/browser/mainThreadCommands.js +0 -98
  24. package/vscode/src/vs/workbench/api/browser/mainThreadComments.js +0 -545
  25. package/vscode/src/vs/workbench/api/browser/mainThreadConfiguration.js +0 -80
  26. package/vscode/src/vs/workbench/api/browser/mainThreadConsole.js +0 -35
  27. package/vscode/src/vs/workbench/api/browser/mainThreadCustomEditors.js +0 -578
  28. package/vscode/src/vs/workbench/api/browser/mainThreadDebugService.js +0 -424
  29. package/vscode/src/vs/workbench/api/browser/mainThreadDecorations.js +0 -102
  30. package/vscode/src/vs/workbench/api/browser/mainThreadDiagnostics.js +0 -69
  31. package/vscode/src/vs/workbench/api/browser/mainThreadDialogs.js +0 -68
  32. package/vscode/src/vs/workbench/api/browser/mainThreadDocumentContentProviders.js +0 -79
  33. package/vscode/src/vs/workbench/api/browser/mainThreadDocuments.js +0 -253
  34. package/vscode/src/vs/workbench/api/browser/mainThreadDocumentsAndEditors.js +0 -370
  35. package/vscode/src/vs/workbench/api/browser/mainThreadDownloadService.js +0 -22
  36. package/vscode/src/vs/workbench/api/browser/mainThreadEditSessionIdentityParticipant.js +0 -41
  37. package/vscode/src/vs/workbench/api/browser/mainThreadEditor.js +0 -414
  38. package/vscode/src/vs/workbench/api/browser/mainThreadEditorTabs.js +0 -482
  39. package/vscode/src/vs/workbench/api/browser/mainThreadEditors.js +0 -227
  40. package/vscode/src/vs/workbench/api/browser/mainThreadErrors.js +0 -24
  41. package/vscode/src/vs/workbench/api/browser/mainThreadExtensionService.js +0 -317
  42. package/vscode/src/vs/workbench/api/browser/mainThreadFileSystem.js +0 -208
  43. package/vscode/src/vs/workbench/api/browser/mainThreadFileSystemEventService.js +0 -374
  44. package/vscode/src/vs/workbench/api/browser/mainThreadInlineChat.js +0 -72
  45. package/vscode/src/vs/workbench/api/browser/mainThreadInteractive.js +0 -28
  46. package/vscode/src/vs/workbench/api/browser/mainThreadIssueReporter.js +0 -50
  47. package/vscode/src/vs/workbench/api/browser/mainThreadLabelService.js +0 -27
  48. package/vscode/src/vs/workbench/api/browser/mainThreadLanguageFeatures.js +0 -991
  49. package/vscode/src/vs/workbench/api/browser/mainThreadLanguages.js +0 -78
  50. package/vscode/src/vs/workbench/api/browser/mainThreadLocalization.js +0 -35
  51. package/vscode/src/vs/workbench/api/browser/mainThreadLogService.js +0 -78
  52. package/vscode/src/vs/workbench/api/browser/mainThreadManagedSockets.js +0 -93
  53. package/vscode/src/vs/workbench/api/browser/mainThreadMessageService.js +0 -137
  54. package/vscode/src/vs/workbench/api/browser/mainThreadNotebook.js +0 -194
  55. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDocuments.js +0 -123
  56. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDocumentsAndEditors.js +0 -188
  57. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDto.js +0 -129
  58. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookEditors.js +0 -131
  59. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookKernels.js +0 -374
  60. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookRenderers.js +0 -25
  61. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookSaveParticipant.js +0 -48
  62. package/vscode/src/vs/workbench/api/browser/mainThreadOutputService.js +0 -76
  63. package/vscode/src/vs/workbench/api/browser/mainThreadProfilContentHandlers.js +0 -38
  64. package/vscode/src/vs/workbench/api/browser/mainThreadProgress.js +0 -68
  65. package/vscode/src/vs/workbench/api/browser/mainThreadQuickDiff.js +0 -42
  66. package/vscode/src/vs/workbench/api/browser/mainThreadQuickOpen.js +0 -185
  67. package/vscode/src/vs/workbench/api/browser/mainThreadRemoteConnectionData.js +0 -30
  68. package/vscode/src/vs/workbench/api/browser/mainThreadSCM.js +0 -493
  69. package/vscode/src/vs/workbench/api/browser/mainThreadSaveParticipant.js +0 -49
  70. package/vscode/src/vs/workbench/api/browser/mainThreadSearch.js +0 -146
  71. package/vscode/src/vs/workbench/api/browser/mainThreadSecretState.js +0 -70
  72. package/vscode/src/vs/workbench/api/browser/mainThreadShare.js +0 -50
  73. package/vscode/src/vs/workbench/api/browser/mainThreadSpeech.js +0 -99
  74. package/vscode/src/vs/workbench/api/browser/mainThreadStatusBar.js +0 -53
  75. package/vscode/src/vs/workbench/api/browser/mainThreadStorage.js +0 -72
  76. package/vscode/src/vs/workbench/api/browser/mainThreadTask.js +0 -731
  77. package/vscode/src/vs/workbench/api/browser/mainThreadTelemetry.js +0 -53
  78. package/vscode/src/vs/workbench/api/browser/mainThreadTerminalService.js +0 -408
  79. package/vscode/src/vs/workbench/api/browser/mainThreadTesting.js +0 -195
  80. package/vscode/src/vs/workbench/api/browser/mainThreadTheming.js +0 -24
  81. package/vscode/src/vs/workbench/api/browser/mainThreadTimeline.js +0 -55
  82. package/vscode/src/vs/workbench/api/browser/mainThreadTreeViews.js +0 -312
  83. package/vscode/src/vs/workbench/api/browser/mainThreadTunnelService.js +0 -223
  84. package/vscode/src/vs/workbench/api/browser/mainThreadUriOpeners.js +0 -110
  85. package/vscode/src/vs/workbench/api/browser/mainThreadUrls.js +0 -61
  86. package/vscode/src/vs/workbench/api/browser/mainThreadWebviewManager.js +0 -29
  87. package/vscode/src/vs/workbench/api/browser/mainThreadWebviewPanels.js +0 -283
  88. package/vscode/src/vs/workbench/api/browser/mainThreadWebviewViews.js +0 -100
  89. package/vscode/src/vs/workbench/api/browser/mainThreadWebviews.js +0 -135
  90. package/vscode/src/vs/workbench/api/browser/mainThreadWindow.js +0 -57
  91. package/vscode/src/vs/workbench/api/browser/mainThreadWorkspace.js +0 -268
  92. package/vscode/src/vs/workbench/api/common/shared/dataTransferCache.js +0 -35
  93. package/vscode/src/vs/workbench/contrib/customEditor/common/customTextEditorModel.js +0 -73
  94. package/vscode/src/vs/workbench/contrib/externalUriOpener/common/contributedOpeners.js +0 -83
  95. package/vscode/src/vs/workbench/services/extensions/browser/extensionService.js +0 -284
  96. package/vscode/src/vs/workbench/services/extensions/browser/webWorkerExtensionHost.js +0 -276
  97. package/vscode/src/vs/workbench/services/extensions/browser/webWorkerFileSystemProvider.js +0 -52
  98. package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.js +0 -1138
  99. package/vscode/src/vs/workbench/services/extensions/common/extHostCustomers.js +0 -41
  100. package/vscode/src/vs/workbench/services/extensions/common/extensionDevOptions.js +0 -25
  101. package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.js +0 -512
  102. package/vscode/src/vs/workbench/services/extensions/common/extensionRunningLocationTracker.js +0 -274
  103. package/vscode/src/vs/workbench/services/extensions/common/extensionStorageMigration.js +0 -58
  104. package/vscode/src/vs/workbench/services/extensions/common/extensionsProposedApi.js +0 -80
  105. package/vscode/src/vs/workbench/services/extensions/common/extensionsUtil.js +0 -64
  106. package/vscode/src/vs/workbench/services/extensions/common/lazyCreateExtensionHostManager.js +0 -161
  107. package/vscode/src/vs/workbench/services/extensions/common/remoteConsoleUtil.js +0 -49
  108. package/vscode/src/vs/workbench/services/extensions/common/remoteExtensionHost.js +0 -222
@@ -1,110 +0,0 @@
1
- import { __decorate, __param } from '../../../../../../external/tslib/tslib.es6.js';
2
- import { Action } from 'vscode/vscode/vs/base/common/actions';
3
- import { isCancellationError } from 'vscode/vscode/vs/base/common/errors';
4
- import { Disposable } from 'vscode/vscode/vs/base/common/lifecycle';
5
- import { Schemas } from 'vscode/vscode/vs/base/common/network';
6
- import { localizeWithPath } from 'vscode/vscode/vs/nls';
7
- import { INotificationService, Severity } from 'vscode/vscode/vs/platform/notification/common/notification';
8
- import { IOpenerService } from 'vscode/vscode/vs/platform/opener/common/opener';
9
- import { IStorageService } from 'vscode/vscode/vs/platform/storage/common/storage';
10
- import { MainContext, ExtHostContext } from 'vscode/vscode/vs/workbench/api/common/extHost.protocol';
11
- import { defaultExternalUriOpenerId } from 'vscode/vscode/vs/workbench/contrib/externalUriOpener/common/configuration';
12
- import { ContributedExternalUriOpenersStore } from '../../contrib/externalUriOpener/common/contributedOpeners.js';
13
- import { IExternalUriOpenerService } from 'vscode/vscode/vs/workbench/contrib/externalUriOpener/common/externalUriOpenerService';
14
- import { IExtensionService } from 'vscode/vscode/vs/workbench/services/extensions/common/extensions';
15
- import { extHostNamedCustomer } from '../../services/extensions/common/extHostCustomers.js';
16
-
17
- let MainThreadUriOpeners = class MainThreadUriOpeners extends Disposable {
18
- constructor(context, storageService, externalUriOpenerService, extensionService, openerService, notificationService) {
19
- super();
20
- this.extensionService = extensionService;
21
- this.openerService = openerService;
22
- this.notificationService = notificationService;
23
- this._registeredOpeners = ( new Map());
24
- this.proxy = ( context.getProxy(ExtHostContext.ExtHostUriOpeners));
25
- this._register(externalUriOpenerService.registerExternalOpenerProvider(this));
26
- this._contributedExternalUriOpenersStore = this._register(( new ContributedExternalUriOpenersStore(storageService, extensionService)));
27
- }
28
- async *getOpeners(targetUri) {
29
- if (targetUri.scheme !== Schemas.http && targetUri.scheme !== Schemas.https) {
30
- return;
31
- }
32
- await this.extensionService.activateByEvent(`onOpenExternalUri:${targetUri.scheme}`);
33
- for (const [id, openerMetadata] of this._registeredOpeners) {
34
- if (( openerMetadata.schemes.has(targetUri.scheme))) {
35
- yield this.createOpener(id, openerMetadata);
36
- }
37
- }
38
- }
39
- createOpener(id, metadata) {
40
- return {
41
- id: id,
42
- label: metadata.label,
43
- canOpen: (uri, token) => {
44
- return this.proxy.$canOpenUri(id, uri, token);
45
- },
46
- openExternalUri: async (uri, ctx, token) => {
47
- try {
48
- await this.proxy.$openUri(id, { resolvedUri: uri, sourceUri: ctx.sourceUri }, token);
49
- }
50
- catch (e) {
51
- if (!isCancellationError(e)) {
52
- const openDefaultAction = ( new Action('default', ( localizeWithPath(
53
- 'vs/workbench/api/browser/mainThreadUriOpeners',
54
- 'openerFailedUseDefault',
55
- "Open using default opener"
56
- )), undefined, undefined, async () => {
57
- await this.openerService.open(uri, {
58
- allowTunneling: false,
59
- allowContributedOpeners: defaultExternalUriOpenerId,
60
- });
61
- }));
62
- openDefaultAction.tooltip = ( uri.toString());
63
- this.notificationService.notify({
64
- severity: Severity.Error,
65
- message: ( localizeWithPath('vs/workbench/api/browser/mainThreadUriOpeners', {
66
- key: 'openerFailedMessage',
67
- comment: ['{0} is the id of the opener. {1} is the url being opened.'],
68
- }, 'Could not open uri with \'{0}\': {1}', id, ( e.toString()))),
69
- actions: {
70
- primary: [
71
- openDefaultAction
72
- ]
73
- }
74
- });
75
- }
76
- }
77
- return true;
78
- },
79
- };
80
- }
81
- async $registerUriOpener(id, schemes, extensionId, label) {
82
- if (( this._registeredOpeners.has(id))) {
83
- throw new Error(`Opener with id '${id}' already registered`);
84
- }
85
- this._registeredOpeners.set(id, {
86
- schemes: ( new Set(schemes)),
87
- label,
88
- extensionId,
89
- });
90
- this._contributedExternalUriOpenersStore.didRegisterOpener(id, extensionId.value);
91
- }
92
- async $unregisterUriOpener(id) {
93
- this._registeredOpeners.delete(id);
94
- this._contributedExternalUriOpenersStore.delete(id);
95
- }
96
- dispose() {
97
- super.dispose();
98
- this._registeredOpeners.clear();
99
- }
100
- };
101
- MainThreadUriOpeners = __decorate([
102
- extHostNamedCustomer(MainContext.MainThreadUriOpeners),
103
- ( __param(1, IStorageService)),
104
- ( __param(2, IExternalUriOpenerService)),
105
- ( __param(3, IExtensionService)),
106
- ( __param(4, IOpenerService)),
107
- ( __param(5, INotificationService))
108
- ], MainThreadUriOpeners);
109
-
110
- export { MainThreadUriOpeners };
@@ -1,61 +0,0 @@
1
- import { __decorate, __param } from '../../../../../../external/tslib/tslib.es6.js';
2
- import { MainContext, ExtHostContext } from 'vscode/vscode/vs/workbench/api/common/extHost.protocol';
3
- import { extHostNamedCustomer } from '../../services/extensions/common/extHostCustomers.js';
4
- import { IURLService } from 'vscode/vscode/vs/platform/url/common/url';
5
- import { IExtensionUrlHandler } from 'vscode/vscode/vs/workbench/services/extensions/browser/extensionUrlHandler';
6
- import { ExtensionIdentifier } from 'vscode/vscode/vs/platform/extensions/common/extensions';
7
-
8
- class ExtensionUrlHandler {
9
- constructor(proxy, handle, extensionId, extensionDisplayName) {
10
- this.proxy = proxy;
11
- this.handle = handle;
12
- this.extensionId = extensionId;
13
- this.extensionDisplayName = extensionDisplayName;
14
- }
15
- handleURL(uri, options) {
16
- if (!ExtensionIdentifier.equals(this.extensionId, uri.authority)) {
17
- return Promise.resolve(false);
18
- }
19
- return Promise.resolve(this.proxy.$handleExternalUri(this.handle, uri)).then(() => true);
20
- }
21
- }
22
- let MainThreadUrls = class MainThreadUrls {
23
- constructor(context, urlService, extensionUrlHandler) {
24
- this.urlService = urlService;
25
- this.extensionUrlHandler = extensionUrlHandler;
26
- this.handlers = ( new Map());
27
- this.proxy = ( context.getProxy(ExtHostContext.ExtHostUrls));
28
- }
29
- $registerUriHandler(handle, extensionId, extensionDisplayName) {
30
- const handler = ( new ExtensionUrlHandler(this.proxy, handle, extensionId, extensionDisplayName));
31
- const disposable = this.urlService.registerHandler(handler);
32
- this.handlers.set(handle, { extensionId, disposable });
33
- this.extensionUrlHandler.registerExtensionHandler(extensionId, handler);
34
- return Promise.resolve(undefined);
35
- }
36
- $unregisterUriHandler(handle) {
37
- const tuple = this.handlers.get(handle);
38
- if (!tuple) {
39
- return Promise.resolve(undefined);
40
- }
41
- const { extensionId, disposable } = tuple;
42
- this.extensionUrlHandler.unregisterExtensionHandler(extensionId);
43
- this.handlers.delete(handle);
44
- disposable.dispose();
45
- return Promise.resolve(undefined);
46
- }
47
- async $createAppUri(uri) {
48
- return this.urlService.create(uri);
49
- }
50
- dispose() {
51
- this.handlers.forEach(({ disposable }) => disposable.dispose());
52
- this.handlers.clear();
53
- }
54
- };
55
- MainThreadUrls = __decorate([
56
- extHostNamedCustomer(MainContext.MainThreadUrls),
57
- ( __param(1, IURLService)),
58
- ( __param(2, IExtensionUrlHandler))
59
- ], MainThreadUrls);
60
-
61
- export { MainThreadUrls };
@@ -1,29 +0,0 @@
1
- import { __decorate, __param } from '../../../../../../external/tslib/tslib.es6.js';
2
- import { Disposable } from 'vscode/vscode/vs/base/common/lifecycle';
3
- import { IInstantiationService } from 'vscode/vscode/vs/platform/instantiation/common/instantiation';
4
- import { MainThreadCustomEditors } from './mainThreadCustomEditors.js';
5
- import { MainThreadWebviewPanels } from './mainThreadWebviewPanels.js';
6
- import { MainThreadWebviews } from './mainThreadWebviews.js';
7
- import { MainThreadWebviewsViews } from './mainThreadWebviewViews.js';
8
- import { MainContext } from 'vscode/vscode/vs/workbench/api/common/extHost.protocol';
9
- import { extHostCustomer } from '../../services/extensions/common/extHostCustomers.js';
10
-
11
- let MainThreadWebviewManager = class MainThreadWebviewManager extends Disposable {
12
- constructor(context, instantiationService) {
13
- super();
14
- const webviews = this._register(instantiationService.createInstance(MainThreadWebviews, context));
15
- context.set(MainContext.MainThreadWebviews, webviews);
16
- const webviewPanels = this._register(instantiationService.createInstance(MainThreadWebviewPanels, context, webviews));
17
- context.set(MainContext.MainThreadWebviewPanels, webviewPanels);
18
- const customEditors = this._register(instantiationService.createInstance(MainThreadCustomEditors, context, webviews, webviewPanels));
19
- context.set(MainContext.MainThreadCustomEditors, customEditors);
20
- const webviewViews = this._register(instantiationService.createInstance(MainThreadWebviewsViews, context, webviews));
21
- context.set(MainContext.MainThreadWebviewViews, webviewViews);
22
- }
23
- };
24
- MainThreadWebviewManager = __decorate([
25
- extHostCustomer,
26
- ( __param(1, IInstantiationService))
27
- ], MainThreadWebviewManager);
28
-
29
- export { MainThreadWebviewManager };
@@ -1,283 +0,0 @@
1
- import { __decorate, __param } from '../../../../../../external/tslib/tslib.es6.js';
2
- import { onUnexpectedError } from 'vscode/vscode/vs/base/common/errors';
3
- import { Event } from 'vscode/vscode/vs/base/common/event';
4
- import { Disposable, DisposableMap } from 'vscode/vscode/vs/base/common/lifecycle';
5
- import { URI } from 'vscode/vscode/vs/base/common/uri';
6
- import { generateUuid } from 'vscode/vscode/vs/base/common/uuid';
7
- import { IConfigurationService } from 'vscode/vscode/vs/platform/configuration/common/configuration';
8
- import { IStorageService } from 'vscode/vscode/vs/platform/storage/common/storage';
9
- import { ITelemetryService } from 'vscode/vscode/vs/platform/telemetry/common/telemetry';
10
- import { reviveWebviewExtension, reviveWebviewContentOptions } from './mainThreadWebviews.js';
11
- import { ExtHostContext } from 'vscode/vscode/vs/workbench/api/common/extHost.protocol';
12
- import { DiffEditorInput } from 'vscode/vscode/vs/workbench/common/editor/diffEditorInput';
13
- import { ExtensionKeyedWebviewOriginStore } from 'vscode/vscode/vs/workbench/contrib/webview/browser/webview';
14
- import { WebviewInput } from 'vscode/vscode/vs/workbench/contrib/webviewPanel/browser/webviewEditorInput';
15
- import { IWebviewWorkbenchService } from 'vscode/vscode/vs/workbench/contrib/webviewPanel/browser/webviewWorkbenchService';
16
- import { editorGroupToColumn } from 'vscode/vscode/vs/workbench/services/editor/common/editorGroupColumn';
17
- import { IEditorGroupsService, preferredSideBySideGroupDirection } from 'vscode/vscode/vs/workbench/services/editor/common/editorGroupsService';
18
- import { IEditorService, ACTIVE_GROUP, SIDE_GROUP } from 'vscode/vscode/vs/workbench/services/editor/common/editorService';
19
- import { IExtensionService } from 'vscode/vscode/vs/workbench/services/extensions/common/extensions';
20
-
21
- class WebviewInputStore {
22
- constructor() {
23
- this._handlesToInputs = ( new Map());
24
- this._inputsToHandles = ( new Map());
25
- }
26
- add(handle, input) {
27
- this._handlesToInputs.set(handle, input);
28
- this._inputsToHandles.set(input, handle);
29
- }
30
- getHandleForInput(input) {
31
- return this._inputsToHandles.get(input);
32
- }
33
- getInputForHandle(handle) {
34
- return this._handlesToInputs.get(handle);
35
- }
36
- delete(handle) {
37
- const input = this.getInputForHandle(handle);
38
- this._handlesToInputs.delete(handle);
39
- if (input) {
40
- this._inputsToHandles.delete(input);
41
- }
42
- }
43
- get size() {
44
- return this._handlesToInputs.size;
45
- }
46
- [Symbol.iterator]() {
47
- return ( this._handlesToInputs.values());
48
- }
49
- }
50
- class WebviewViewTypeTransformer {
51
- constructor(prefix) {
52
- this.prefix = prefix;
53
- }
54
- fromExternal(viewType) {
55
- return this.prefix + viewType;
56
- }
57
- toExternal(viewType) {
58
- return viewType.startsWith(this.prefix)
59
- ? viewType.substr(this.prefix.length)
60
- : undefined;
61
- }
62
- }
63
- let MainThreadWebviewPanels = class MainThreadWebviewPanels extends Disposable {
64
- constructor(context, _mainThreadWebviews, _configurationService, _editorGroupService, _editorService, extensionService, storageService, _telemetryService, _webviewWorkbenchService) {
65
- super();
66
- this._mainThreadWebviews = _mainThreadWebviews;
67
- this._configurationService = _configurationService;
68
- this._editorGroupService = _editorGroupService;
69
- this._editorService = _editorService;
70
- this._telemetryService = _telemetryService;
71
- this._webviewWorkbenchService = _webviewWorkbenchService;
72
- this.webviewPanelViewType = ( new WebviewViewTypeTransformer('mainThreadWebview-'));
73
- this._webviewInputs = ( new WebviewInputStore());
74
- this._revivers = this._register(( new DisposableMap()));
75
- this.webviewOriginStore = ( new ExtensionKeyedWebviewOriginStore('mainThreadWebviewPanel.origins', storageService));
76
- this._proxy = ( context.getProxy(ExtHostContext.ExtHostWebviewPanels));
77
- this._register(Event.any(_editorService.onDidActiveEditorChange, _editorService.onDidVisibleEditorsChange, _editorGroupService.onDidAddGroup, _editorGroupService.onDidRemoveGroup, _editorGroupService.onDidMoveGroup)(() => {
78
- this.updateWebviewViewStates(this._editorService.activeEditor);
79
- }));
80
- this._register(_webviewWorkbenchService.onDidChangeActiveWebviewEditor(input => {
81
- this.updateWebviewViewStates(input);
82
- }));
83
- this._register(_webviewWorkbenchService.registerResolver({
84
- canResolve: (webview) => {
85
- const viewType = this.webviewPanelViewType.toExternal(webview.viewType);
86
- if (typeof viewType === 'string') {
87
- extensionService.activateByEvent(`onWebviewPanel:${viewType}`);
88
- }
89
- return false;
90
- },
91
- resolveWebview: () => { throw new Error('not implemented'); }
92
- }));
93
- }
94
- get webviewInputs() { return this._webviewInputs; }
95
- addWebviewInput(handle, input, options) {
96
- this._webviewInputs.add(handle, input);
97
- this._mainThreadWebviews.addWebview(handle, input.webview, options);
98
- input.webview.onDidDispose(() => {
99
- this._proxy.$onDidDisposeWebviewPanel(handle).finally(() => {
100
- this._webviewInputs.delete(handle);
101
- });
102
- });
103
- }
104
- $createWebviewPanel(extensionData, handle, viewType, initData, showOptions) {
105
- const targetGroup = this.getTargetGroupFromShowOptions(showOptions);
106
- const mainThreadShowOptions = showOptions ? {
107
- preserveFocus: !!showOptions.preserveFocus,
108
- group: targetGroup
109
- } : {};
110
- const extension = reviveWebviewExtension(extensionData);
111
- const origin = this.webviewOriginStore.getOrigin(viewType, extension.id);
112
- const webview = this._webviewWorkbenchService.openWebview({
113
- origin,
114
- providedViewType: viewType,
115
- title: initData.title,
116
- options: reviveWebviewOptions(initData.panelOptions),
117
- contentOptions: reviveWebviewContentOptions(initData.webviewOptions),
118
- extension
119
- }, this.webviewPanelViewType.fromExternal(viewType), initData.title, mainThreadShowOptions);
120
- this.addWebviewInput(handle, webview, { serializeBuffersForPostMessage: initData.serializeBuffersForPostMessage });
121
- const payload = {
122
- extensionId: extension.id.value,
123
- viewType
124
- };
125
- this._telemetryService.publicLog2('webviews:createWebviewPanel', payload);
126
- }
127
- $disposeWebview(handle) {
128
- const webview = this.tryGetWebviewInput(handle);
129
- if (!webview) {
130
- return;
131
- }
132
- webview.dispose();
133
- }
134
- $setTitle(handle, value) {
135
- this.tryGetWebviewInput(handle)?.setName(value);
136
- }
137
- $setIconPath(handle, value) {
138
- const webview = this.tryGetWebviewInput(handle);
139
- if (webview) {
140
- webview.iconPath = reviveWebviewIcon(value);
141
- }
142
- }
143
- $reveal(handle, showOptions) {
144
- const webview = this.tryGetWebviewInput(handle);
145
- if (!webview || webview.isDisposed()) {
146
- return;
147
- }
148
- const targetGroup = this.getTargetGroupFromShowOptions(showOptions);
149
- this._webviewWorkbenchService.revealWebview(webview, targetGroup, !!showOptions.preserveFocus);
150
- }
151
- getTargetGroupFromShowOptions(showOptions) {
152
- if (typeof showOptions.viewColumn === 'undefined'
153
- || showOptions.viewColumn === ACTIVE_GROUP
154
- || (this._editorGroupService.count === 1 && this._editorGroupService.activeGroup.isEmpty)) {
155
- return ACTIVE_GROUP;
156
- }
157
- if (showOptions.viewColumn === SIDE_GROUP) {
158
- return SIDE_GROUP;
159
- }
160
- if (showOptions.viewColumn >= 0) {
161
- const groupInColumn = this._editorGroupService.getGroups(2 )[showOptions.viewColumn];
162
- if (groupInColumn) {
163
- return groupInColumn.id;
164
- }
165
- const newGroup = this._editorGroupService.findGroup({ location: 1 });
166
- if (newGroup) {
167
- const direction = preferredSideBySideGroupDirection(this._configurationService);
168
- return this._editorGroupService.addGroup(newGroup, direction);
169
- }
170
- }
171
- return ACTIVE_GROUP;
172
- }
173
- $registerSerializer(viewType, options) {
174
- if (( this._revivers.has(viewType))) {
175
- throw new Error(`Reviver for ${viewType} already registered`);
176
- }
177
- this._revivers.set(viewType, this._webviewWorkbenchService.registerResolver({
178
- canResolve: (webviewInput) => {
179
- return webviewInput.viewType === this.webviewPanelViewType.fromExternal(viewType);
180
- },
181
- resolveWebview: async (webviewInput) => {
182
- const viewType = this.webviewPanelViewType.toExternal(webviewInput.viewType);
183
- if (!viewType) {
184
- webviewInput.webview.setHtml(this._mainThreadWebviews.getWebviewResolvedFailedContent(webviewInput.viewType));
185
- return;
186
- }
187
- const handle = generateUuid();
188
- this.addWebviewInput(handle, webviewInput, options);
189
- let state = undefined;
190
- if (webviewInput.webview.state) {
191
- try {
192
- state = JSON.parse(webviewInput.webview.state);
193
- }
194
- catch (e) {
195
- console.error('Could not load webview state', e, webviewInput.webview.state);
196
- }
197
- }
198
- try {
199
- await this._proxy.$deserializeWebviewPanel(handle, viewType, {
200
- title: webviewInput.getTitle(),
201
- state,
202
- panelOptions: webviewInput.webview.options,
203
- webviewOptions: webviewInput.webview.contentOptions,
204
- active: webviewInput === this._editorService.activeEditor,
205
- }, editorGroupToColumn(this._editorGroupService, webviewInput.group || 0));
206
- }
207
- catch (error) {
208
- onUnexpectedError(error);
209
- webviewInput.webview.setHtml(this._mainThreadWebviews.getWebviewResolvedFailedContent(viewType));
210
- }
211
- }
212
- }));
213
- }
214
- $unregisterSerializer(viewType) {
215
- if (!( this._revivers.has(viewType))) {
216
- throw new Error(`No reviver for ${viewType} registered`);
217
- }
218
- this._revivers.deleteAndDispose(viewType);
219
- }
220
- updateWebviewViewStates(activeEditorInput) {
221
- if (!this._webviewInputs.size) {
222
- return;
223
- }
224
- const viewStates = {};
225
- const updateViewStatesForInput = (group, topLevelInput, editorInput) => {
226
- if (!(editorInput instanceof WebviewInput)) {
227
- return;
228
- }
229
- editorInput.updateGroup(group.id);
230
- const handle = this._webviewInputs.getHandleForInput(editorInput);
231
- if (handle) {
232
- viewStates[handle] = {
233
- visible: topLevelInput === group.activeEditor,
234
- active: editorInput === activeEditorInput,
235
- position: editorGroupToColumn(this._editorGroupService, group.id),
236
- };
237
- }
238
- };
239
- for (const group of this._editorGroupService.groups) {
240
- for (const input of group.editors) {
241
- if (input instanceof DiffEditorInput) {
242
- updateViewStatesForInput(group, input, input.primary);
243
- updateViewStatesForInput(group, input, input.secondary);
244
- }
245
- else {
246
- updateViewStatesForInput(group, input, input);
247
- }
248
- }
249
- }
250
- if (( Object.keys(viewStates)).length) {
251
- this._proxy.$onDidChangeWebviewPanelViewStates(viewStates);
252
- }
253
- }
254
- tryGetWebviewInput(handle) {
255
- return this._webviewInputs.getInputForHandle(handle);
256
- }
257
- };
258
- MainThreadWebviewPanels = ( __decorate([
259
- ( __param(2, IConfigurationService)),
260
- ( __param(3, IEditorGroupsService)),
261
- ( __param(4, IEditorService)),
262
- ( __param(5, IExtensionService)),
263
- ( __param(6, IStorageService)),
264
- ( __param(7, ITelemetryService)),
265
- ( __param(8, IWebviewWorkbenchService))
266
- ], MainThreadWebviewPanels));
267
- function reviveWebviewIcon(value) {
268
- if (!value) {
269
- return undefined;
270
- }
271
- return {
272
- light: URI.revive(value.light),
273
- dark: URI.revive(value.dark),
274
- };
275
- }
276
- function reviveWebviewOptions(panelOptions) {
277
- return {
278
- enableFindWidget: panelOptions.enableFindWidget,
279
- retainContextWhenHidden: panelOptions.retainContextWhenHidden,
280
- };
281
- }
282
-
283
- export { MainThreadWebviewPanels };
@@ -1,100 +0,0 @@
1
- import { __decorate, __param } from '../../../../../../external/tslib/tslib.es6.js';
2
- import { onUnexpectedError } from 'vscode/vscode/vs/base/common/errors';
3
- import { Disposable, DisposableMap } from 'vscode/vscode/vs/base/common/lifecycle';
4
- import { generateUuid } from 'vscode/vscode/vs/base/common/uuid';
5
- import { reviveWebviewExtension } from './mainThreadWebviews.js';
6
- import { ExtHostContext } from 'vscode/vscode/vs/workbench/api/common/extHost.protocol';
7
- import { IWebviewViewService } from 'vscode/vscode/vs/workbench/contrib/webviewView/browser/webviewViewService';
8
- import { ITelemetryService } from 'vscode/vscode/vs/platform/telemetry/common/telemetry';
9
-
10
- let MainThreadWebviewsViews = class MainThreadWebviewsViews extends Disposable {
11
- constructor(context, mainThreadWebviews, _telemetryService, _webviewViewService) {
12
- super();
13
- this.mainThreadWebviews = mainThreadWebviews;
14
- this._telemetryService = _telemetryService;
15
- this._webviewViewService = _webviewViewService;
16
- this._webviewViews = this._register(( new DisposableMap()));
17
- this._webviewViewProviders = this._register(( new DisposableMap()));
18
- this._proxy = ( context.getProxy(ExtHostContext.ExtHostWebviewViews));
19
- }
20
- $setWebviewViewTitle(handle, value) {
21
- const webviewView = this.getWebviewView(handle);
22
- webviewView.title = value;
23
- }
24
- $setWebviewViewDescription(handle, value) {
25
- const webviewView = this.getWebviewView(handle);
26
- webviewView.description = value;
27
- }
28
- $setWebviewViewBadge(handle, badge) {
29
- const webviewView = this.getWebviewView(handle);
30
- webviewView.badge = badge;
31
- }
32
- $show(handle, preserveFocus) {
33
- const webviewView = this.getWebviewView(handle);
34
- webviewView.show(preserveFocus);
35
- }
36
- $registerWebviewViewProvider(extensionData, viewType, options) {
37
- if (( this._webviewViewProviders.has(viewType))) {
38
- throw new Error(`View provider for ${viewType} already registered`);
39
- }
40
- const extension = reviveWebviewExtension(extensionData);
41
- const registration = this._webviewViewService.register(viewType, {
42
- resolve: async (webviewView, cancellation) => {
43
- const handle = generateUuid();
44
- this._webviewViews.set(handle, webviewView);
45
- this.mainThreadWebviews.addWebview(handle, webviewView.webview, { serializeBuffersForPostMessage: options.serializeBuffersForPostMessage });
46
- let state = undefined;
47
- if (webviewView.webview.state) {
48
- try {
49
- state = JSON.parse(webviewView.webview.state);
50
- }
51
- catch (e) {
52
- console.error('Could not load webview state', e, webviewView.webview.state);
53
- }
54
- }
55
- webviewView.webview.extension = extension;
56
- if (options) {
57
- webviewView.webview.options = options;
58
- }
59
- webviewView.onDidChangeVisibility(visible => {
60
- this._proxy.$onDidChangeWebviewViewVisibility(handle, visible);
61
- });
62
- webviewView.onDispose(() => {
63
- this._proxy.$disposeWebviewView(handle);
64
- this._webviewViews.deleteAndDispose(handle);
65
- });
66
- this._telemetryService.publicLog2('webviews:createWebviewView', {
67
- extensionId: extension.id.value,
68
- id: viewType,
69
- });
70
- try {
71
- await this._proxy.$resolveWebviewView(handle, viewType, webviewView.title, state, cancellation);
72
- }
73
- catch (error) {
74
- onUnexpectedError(error);
75
- webviewView.webview.setHtml(this.mainThreadWebviews.getWebviewResolvedFailedContent(viewType));
76
- }
77
- }
78
- });
79
- this._webviewViewProviders.set(viewType, registration);
80
- }
81
- $unregisterWebviewViewProvider(viewType) {
82
- if (!( this._webviewViewProviders.has(viewType))) {
83
- throw new Error(`No view provider for ${viewType} registered`);
84
- }
85
- this._webviewViewProviders.deleteAndDispose(viewType);
86
- }
87
- getWebviewView(handle) {
88
- const webviewView = this._webviewViews.get(handle);
89
- if (!webviewView) {
90
- throw new Error('unknown webview view');
91
- }
92
- return webviewView;
93
- }
94
- };
95
- MainThreadWebviewsViews = ( __decorate([
96
- ( __param(2, ITelemetryService)),
97
- ( __param(3, IWebviewViewService))
98
- ], MainThreadWebviewsViews));
99
-
100
- export { MainThreadWebviewsViews };