@codingame/monaco-vscode-extensions-service-override 25.1.2 → 26.0.1
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/index.js +7 -0
- package/package.json +3 -3
- package/vscode/src/vs/base/common/console.js +24 -15
- package/vscode/src/vs/platform/extensionManagement/common/extensionManagementCLI.d.ts +4 -1
- package/vscode/src/vs/platform/extensionManagement/common/extensionManagementCLI.js +149 -84
- package/vscode/src/vs/platform/extensionResourceLoader/browser/extensionResourceLoaderService.js +20 -12
- package/vscode/src/vs/platform/extensionResourceLoader/common/extensionResourceLoader.js +38 -21
- package/vscode/src/vs/platform/remote/common/managedSocket.js +7 -10
- package/vscode/src/vs/workbench/api/browser/mainThreadAiEmbeddingVector.js +5 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadAiRelatedInformation.js +5 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadAiSettingsSearch.js +4 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadAuthentication.js +200 -143
- package/vscode/src/vs/workbench/api/browser/mainThreadBulkEdits.js +10 -14
- package/vscode/src/vs/workbench/api/browser/mainThreadCLICommands.js +41 -31
- package/vscode/src/vs/workbench/api/browser/mainThreadChatAgents2.d.ts +9 -12
- package/vscode/src/vs/workbench/api/browser/mainThreadChatAgents2.js +168 -115
- package/vscode/src/vs/workbench/api/browser/mainThreadChatCodeMapper.js +11 -13
- package/vscode/src/vs/workbench/api/browser/mainThreadChatContext.d.ts +5 -5
- package/vscode/src/vs/workbench/api/browser/mainThreadChatContext.js +42 -15
- package/vscode/src/vs/workbench/api/browser/mainThreadChatOutputRenderer.js +8 -7
- package/vscode/src/vs/workbench/api/browser/mainThreadChatSessions.d.ts +4 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadChatSessions.js +170 -99
- package/vscode/src/vs/workbench/api/browser/mainThreadChatStatus.js +2 -5
- package/vscode/src/vs/workbench/api/browser/mainThreadClipboard.js +4 -9
- package/vscode/src/vs/workbench/api/browser/mainThreadCodeInsets.js +13 -12
- package/vscode/src/vs/workbench/api/browser/mainThreadCommands.js +16 -19
- package/vscode/src/vs/workbench/api/browser/mainThreadComments.js +127 -70
- package/vscode/src/vs/workbench/api/browser/mainThreadConfiguration.js +80 -26
- package/vscode/src/vs/workbench/api/browser/mainThreadConsole.js +5 -11
- package/vscode/src/vs/workbench/api/browser/mainThreadCustomEditors.js +199 -97
- package/vscode/src/vs/workbench/api/browser/mainThreadDataChannels.js +1 -4
- package/vscode/src/vs/workbench/api/browser/mainThreadDebugService.js +88 -73
- package/vscode/src/vs/workbench/api/browser/mainThreadDecorations.js +5 -5
- package/vscode/src/vs/workbench/api/browser/mainThreadDiagnostics.js +16 -12
- package/vscode/src/vs/workbench/api/browser/mainThreadDialogs.js +10 -8
- package/vscode/src/vs/workbench/api/browser/mainThreadDocumentContentProviders.js +14 -6
- package/vscode/src/vs/workbench/api/browser/mainThreadDocuments.js +52 -37
- package/vscode/src/vs/workbench/api/browser/mainThreadDocumentsAndEditors.js +78 -58
- package/vscode/src/vs/workbench/api/browser/mainThreadEditSessionIdentityParticipant.js +5 -7
- package/vscode/src/vs/workbench/api/browser/mainThreadEditor.js +75 -63
- package/vscode/src/vs/workbench/api/browser/mainThreadEditorTabs.js +99 -91
- package/vscode/src/vs/workbench/api/browser/mainThreadEditors.js +93 -55
- package/vscode/src/vs/workbench/api/browser/mainThreadEmbeddings.js +3 -7
- package/vscode/src/vs/workbench/api/browser/mainThreadExtensionService.js +85 -60
- package/vscode/src/vs/workbench/api/browser/mainThreadFileSystem.js +49 -45
- package/vscode/src/vs/workbench/api/browser/mainThreadFileSystemEventService.js +114 -72
- package/vscode/src/vs/workbench/api/browser/mainThreadInteractive.js +4 -7
- package/vscode/src/vs/workbench/api/browser/mainThreadLabelService.js +1 -4
- package/vscode/src/vs/workbench/api/browser/mainThreadLanguageFeatures.d.ts +2 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadLanguageFeatures.js +381 -238
- package/vscode/src/vs/workbench/api/browser/mainThreadLanguageModelTools.d.ts +7 -3
- package/vscode/src/vs/workbench/api/browser/mainThreadLanguageModelTools.js +90 -13
- package/vscode/src/vs/workbench/api/browser/mainThreadLanguageModels.js +81 -58
- package/vscode/src/vs/workbench/api/browser/mainThreadLanguages.js +9 -10
- package/vscode/src/vs/workbench/api/browser/mainThreadLocalization.js +2 -7
- package/vscode/src/vs/workbench/api/browser/mainThreadLogService.js +6 -10
- package/vscode/src/vs/workbench/api/browser/mainThreadManagedSockets.js +12 -10
- package/vscode/src/vs/workbench/api/browser/mainThreadMcp.d.ts +3 -2
- package/vscode/src/vs/workbench/api/browser/mainThreadMcp.js +162 -97
- package/vscode/src/vs/workbench/api/browser/mainThreadMessageService.js +32 -26
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebook.js +38 -32
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDocuments.js +48 -46
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDocumentsAndEditors.js +22 -18
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookDto.js +5 -8
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookEditors.js +35 -21
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookKernels.js +31 -28
- package/vscode/src/vs/workbench/api/browser/mainThreadNotebookSaveParticipant.js +5 -7
- package/vscode/src/vs/workbench/api/browser/mainThreadOutputService.js +47 -23
- package/vscode/src/vs/workbench/api/browser/mainThreadProfileContentHandlers.js +15 -12
- package/vscode/src/vs/workbench/api/browser/mainThreadProgress.js +17 -18
- package/vscode/src/vs/workbench/api/browser/mainThreadQuickDiff.js +6 -7
- package/vscode/src/vs/workbench/api/browser/mainThreadQuickOpen.js +83 -66
- package/vscode/src/vs/workbench/api/browser/mainThreadRemoteConnectionData.js +1 -5
- package/vscode/src/vs/workbench/api/browser/mainThreadSCM.js +250 -92
- package/vscode/src/vs/workbench/api/browser/mainThreadSaveParticipant.js +6 -8
- package/vscode/src/vs/workbench/api/browser/mainThreadSearch.js +37 -26
- package/vscode/src/vs/workbench/api/browser/mainThreadSecretState.js +34 -21
- package/vscode/src/vs/workbench/api/browser/mainThreadShare.js +3 -6
- package/vscode/src/vs/workbench/api/browser/mainThreadSpeech.js +19 -14
- package/vscode/src/vs/workbench/api/browser/mainThreadStatusBar.js +41 -16
- package/vscode/src/vs/workbench/api/browser/mainThreadStorage.js +18 -17
- package/vscode/src/vs/workbench/api/browser/mainThreadTask.js +145 -145
- package/vscode/src/vs/workbench/api/browser/mainThreadTelemetry.js +19 -11
- package/vscode/src/vs/workbench/api/browser/mainThreadTerminalService.js +176 -80
- package/vscode/src/vs/workbench/api/browser/mainThreadTerminalShellIntegration.js +52 -21
- package/vscode/src/vs/workbench/api/browser/mainThreadTesting.js +26 -24
- package/vscode/src/vs/workbench/api/browser/mainThreadTheming.js +1 -4
- package/vscode/src/vs/workbench/api/browser/mainThreadTimeline.js +5 -8
- package/vscode/src/vs/workbench/api/browser/mainThreadTreeViews.d.ts +4 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadTreeViews.js +106 -46
- package/vscode/src/vs/workbench/api/browser/mainThreadTunnelService.js +83 -65
- package/vscode/src/vs/workbench/api/browser/mainThreadUriOpeners.js +20 -20
- package/vscode/src/vs/workbench/api/browser/mainThreadUrls.js +14 -9
- package/vscode/src/vs/workbench/api/browser/mainThreadWebviewManager.js +17 -9
- package/vscode/src/vs/workbench/api/browser/mainThreadWebviewPanels.js +49 -38
- package/vscode/src/vs/workbench/api/browser/mainThreadWebviewViews.js +10 -13
- package/vscode/src/vs/workbench/api/browser/mainThreadWebviews.js +38 -27
- package/vscode/src/vs/workbench/api/browser/mainThreadWindow.js +5 -11
- package/vscode/src/vs/workbench/api/browser/mainThreadWorkspace.d.ts +4 -1
- package/vscode/src/vs/workbench/api/browser/mainThreadWorkspace.js +73 -43
- package/vscode/src/vs/workbench/api/common/shared/dataTransferCache.js +2 -2
- package/vscode/src/vs/workbench/contrib/customEditor/common/customTextEditorModel.js +17 -10
- package/vscode/src/vs/workbench/contrib/externalUriOpener/common/contributedOpeners.js +17 -11
- package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionBisect.js +107 -80
- package/vscode/src/vs/workbench/services/extensionManagement/browser/webExtensionsScannerService.js +336 -175
- package/vscode/src/vs/workbench/services/extensions/browser/extensionService.js +126 -71
- package/vscode/src/vs/workbench/services/extensions/browser/webWorkerExtensionHost.js +76 -54
- package/vscode/src/vs/workbench/services/extensions/browser/webWorkerFileSystemProvider.js +1 -2
- package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.d.ts +2 -0
- package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.js +343 -192
- package/vscode/src/vs/workbench/services/extensions/common/extHostCustomers.js +5 -3
- package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.d.ts +0 -1
- package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.js +75 -68
- package/vscode/src/vs/workbench/services/extensions/common/extensionRunningLocationTracker.js +135 -36
- package/vscode/src/vs/workbench/services/extensions/common/extensionsProposedApi.js +22 -18
- package/vscode/src/vs/workbench/services/extensions/common/extensionsUtil.js +14 -12
- package/vscode/src/vs/workbench/services/extensions/common/lazyCreateExtensionHostManager.js +21 -9
- package/vscode/src/vs/workbench/services/extensions/common/remoteExtensionHost.js +48 -25
- package/vscode/src/vs/workbench/services/themes/browser/cssExtensionPoint.d.ts +24 -0
- package/vscode/src/vs/workbench/services/themes/browser/cssExtensionPoint.js +300 -0
package/vscode/src/vs/workbench/services/extensions/common/extensionRunningLocationTracker.js
CHANGED
|
@@ -8,6 +8,7 @@ import { IWorkbenchEnvironmentService } from '@codingame/monaco-vscode-api/vscod
|
|
|
8
8
|
import { determineExtensionHostKinds, ExtensionHostKind, ExtensionRunningPreference } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensionHostKind';
|
|
9
9
|
import { IExtensionManifestPropertiesService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensionManifestPropertiesService.service';
|
|
10
10
|
import { RemoteRunningLocation, LocalProcessRunningLocation, LocalWebWorkerRunningLocation } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensionRunningLocation';
|
|
11
|
+
import { isProposedApiEnabled } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions';
|
|
11
12
|
|
|
12
13
|
let ExtensionRunningLocationTracker = class ExtensionRunningLocationTracker {
|
|
13
14
|
get maxLocalProcessAffinity() {
|
|
@@ -16,7 +17,14 @@ let ExtensionRunningLocationTracker = class ExtensionRunningLocationTracker {
|
|
|
16
17
|
get maxLocalWebWorkerAffinity() {
|
|
17
18
|
return this._maxLocalWebWorkerAffinity;
|
|
18
19
|
}
|
|
19
|
-
constructor(
|
|
20
|
+
constructor(
|
|
21
|
+
_registry,
|
|
22
|
+
_extensionHostKindPicker,
|
|
23
|
+
_environmentService,
|
|
24
|
+
_configurationService,
|
|
25
|
+
_logService,
|
|
26
|
+
_extensionManifestPropertiesService
|
|
27
|
+
) {
|
|
20
28
|
this._registry = _registry;
|
|
21
29
|
this._extensionHostKindPicker = _extensionHostKindPicker;
|
|
22
30
|
this._environmentService = _environmentService;
|
|
@@ -40,13 +48,25 @@ let ExtensionRunningLocationTracker = class ExtensionRunningLocationTracker {
|
|
|
40
48
|
return this._runningLocation.get(extensionId) || null;
|
|
41
49
|
}
|
|
42
50
|
filterByRunningLocation(extensions, desiredRunningLocation) {
|
|
43
|
-
return filterExtensionDescriptions(
|
|
51
|
+
return filterExtensionDescriptions(
|
|
52
|
+
extensions,
|
|
53
|
+
this._runningLocation,
|
|
54
|
+
extRunningLocation => desiredRunningLocation.equals(extRunningLocation)
|
|
55
|
+
);
|
|
44
56
|
}
|
|
45
57
|
filterByExtensionHostKind(extensions, desiredExtensionHostKind) {
|
|
46
|
-
return filterExtensionDescriptions(
|
|
58
|
+
return filterExtensionDescriptions(
|
|
59
|
+
extensions,
|
|
60
|
+
this._runningLocation,
|
|
61
|
+
extRunningLocation => extRunningLocation.kind === desiredExtensionHostKind
|
|
62
|
+
);
|
|
47
63
|
}
|
|
48
64
|
filterByExtensionHostManager(extensions, extensionHostManager) {
|
|
49
|
-
return filterExtensionDescriptions(
|
|
65
|
+
return filterExtensionDescriptions(
|
|
66
|
+
extensions,
|
|
67
|
+
this._runningLocation,
|
|
68
|
+
extRunningLocation => extensionHostManager.representsRunningLocation(extRunningLocation)
|
|
69
|
+
);
|
|
50
70
|
}
|
|
51
71
|
_computeAffinity(inputExtensions, extensionHostKind, isInitialAllocation) {
|
|
52
72
|
const extensions = ( new ExtensionIdentifierMap());
|
|
@@ -91,6 +111,28 @@ let ExtensionRunningLocationTracker = class ExtensionRunningLocationTracker {
|
|
|
91
111
|
changeGroup(depGroup, myGroup);
|
|
92
112
|
}
|
|
93
113
|
}
|
|
114
|
+
for (const [_, extension] of extensions) {
|
|
115
|
+
if (!extension.extensionAffinity) {
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
118
|
+
if (!isProposedApiEnabled(extension, "extensionAffinity")) {
|
|
119
|
+
this._logService.warn(
|
|
120
|
+
`Extension '${extension.identifier.value}' declares 'extensionAffinity' in its package.json but does not enable the 'extensionAffinity' API proposal. Add '"enabledApiProposals": ["extensionAffinity"]' to the extension's package.json to use this feature.`
|
|
121
|
+
);
|
|
122
|
+
continue;
|
|
123
|
+
}
|
|
124
|
+
const myGroup = groups.get(extension.identifier);
|
|
125
|
+
for (const colocateId of extension.extensionAffinity) {
|
|
126
|
+
const colocateGroup = groups.get(colocateId);
|
|
127
|
+
if (!colocateGroup) {
|
|
128
|
+
continue;
|
|
129
|
+
}
|
|
130
|
+
if (colocateGroup === myGroup) {
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
changeGroup(colocateGroup, myGroup);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
94
136
|
const resultingAffinities = ( new Map());
|
|
95
137
|
let lastAffinity = 0;
|
|
96
138
|
for (const [_, extension] of extensions) {
|
|
@@ -102,13 +144,15 @@ let ExtensionRunningLocationTracker = class ExtensionRunningLocationTracker {
|
|
|
102
144
|
}
|
|
103
145
|
}
|
|
104
146
|
if (!this._environmentService.isExtensionDevelopment) {
|
|
105
|
-
const configuredAffinities = this._configurationService.getValue(
|
|
147
|
+
const configuredAffinities = this._configurationService.getValue("extensions.experimental.affinity") || {};
|
|
106
148
|
const configuredExtensionIds = ( Object.keys(configuredAffinities));
|
|
107
149
|
const configuredAffinityToResultingAffinity = ( new Map());
|
|
108
150
|
for (const extensionId of configuredExtensionIds) {
|
|
109
151
|
const configuredAffinity = configuredAffinities[extensionId];
|
|
110
|
-
if (typeof configuredAffinity !==
|
|
111
|
-
this._logService.info(
|
|
152
|
+
if (typeof configuredAffinity !== "number" || configuredAffinity <= 0 || Math.floor(configuredAffinity) !== configuredAffinity) {
|
|
153
|
+
this._logService.info(
|
|
154
|
+
`Ignoring configured affinity for '${extensionId}' because the value is not a positive integer.`
|
|
155
|
+
);
|
|
112
156
|
continue;
|
|
113
157
|
}
|
|
114
158
|
const group = groups.get(extensionId);
|
|
@@ -126,7 +170,9 @@ let ExtensionRunningLocationTracker = class ExtensionRunningLocationTracker {
|
|
|
126
170
|
continue;
|
|
127
171
|
}
|
|
128
172
|
if (!isInitialAllocation) {
|
|
129
|
-
this._logService.info(
|
|
173
|
+
this._logService.info(
|
|
174
|
+
`Ignoring configured affinity for '${extensionId}' because extension host(s) are already running. Reload window.`
|
|
175
|
+
);
|
|
130
176
|
continue;
|
|
131
177
|
}
|
|
132
178
|
const affinity3 = ++lastAffinity;
|
|
@@ -148,18 +194,48 @@ let ExtensionRunningLocationTracker = class ExtensionRunningLocationTracker {
|
|
|
148
194
|
extensionIds.push(extension.identifier);
|
|
149
195
|
}
|
|
150
196
|
}
|
|
151
|
-
this._logService.info(`Placing extension(s) ${( extensionIds.map(e => e.value)).join(
|
|
197
|
+
this._logService.info(`Placing extension(s) ${( extensionIds.map(e => e.value)).join(", ")} on a separate extension host.`);
|
|
152
198
|
}
|
|
153
199
|
}
|
|
154
|
-
return {
|
|
200
|
+
return {
|
|
201
|
+
affinities: result,
|
|
202
|
+
maxAffinity: lastAffinity
|
|
203
|
+
};
|
|
155
204
|
}
|
|
156
205
|
computeRunningLocation(localExtensions, remoteExtensions, isInitialAllocation) {
|
|
157
|
-
return this._doComputeRunningLocation(
|
|
206
|
+
return this._doComputeRunningLocation(
|
|
207
|
+
this._runningLocation,
|
|
208
|
+
localExtensions,
|
|
209
|
+
remoteExtensions,
|
|
210
|
+
isInitialAllocation
|
|
211
|
+
).runningLocation;
|
|
158
212
|
}
|
|
159
|
-
_doComputeRunningLocation(
|
|
213
|
+
_doComputeRunningLocation(
|
|
214
|
+
existingRunningLocation,
|
|
215
|
+
localExtensions,
|
|
216
|
+
remoteExtensions,
|
|
217
|
+
isInitialAllocation
|
|
218
|
+
) {
|
|
160
219
|
localExtensions = localExtensions.filter(extension => !( existingRunningLocation.has(extension.identifier)));
|
|
161
220
|
remoteExtensions = remoteExtensions.filter(extension => !( existingRunningLocation.has(extension.identifier)));
|
|
162
|
-
const extensionHostKinds = determineExtensionHostKinds(
|
|
221
|
+
const extensionHostKinds = determineExtensionHostKinds(
|
|
222
|
+
localExtensions,
|
|
223
|
+
remoteExtensions,
|
|
224
|
+
extension => this.readExtensionKinds(extension),
|
|
225
|
+
(
|
|
226
|
+
extensionId,
|
|
227
|
+
extensionKinds,
|
|
228
|
+
isInstalledLocally,
|
|
229
|
+
isInstalledRemotely,
|
|
230
|
+
preference
|
|
231
|
+
) => this._extensionHostKindPicker.pickExtensionHostKind(
|
|
232
|
+
extensionId,
|
|
233
|
+
extensionKinds,
|
|
234
|
+
isInstalledLocally,
|
|
235
|
+
isInstalledRemotely,
|
|
236
|
+
preference
|
|
237
|
+
)
|
|
238
|
+
);
|
|
163
239
|
const extensions = ( new ExtensionIdentifierMap());
|
|
164
240
|
for (const extension of localExtensions) {
|
|
165
241
|
extensions.set(extension.identifier, extension);
|
|
@@ -177,24 +253,36 @@ let ExtensionRunningLocationTracker = class ExtensionRunningLocationTracker {
|
|
|
177
253
|
if (extensionDescription) {
|
|
178
254
|
localProcessExtensions.push(extensionDescription);
|
|
179
255
|
}
|
|
180
|
-
}
|
|
181
|
-
else if (extensionHostKind === ExtensionHostKind.LocalWebWorker) {
|
|
256
|
+
} else if (extensionHostKind === ExtensionHostKind.LocalWebWorker) {
|
|
182
257
|
const extensionDescription = extensions.get(extensionIdKey);
|
|
183
258
|
if (extensionDescription) {
|
|
184
259
|
localWebWorkerExtensions.push(extensionDescription);
|
|
185
260
|
}
|
|
186
|
-
}
|
|
187
|
-
else if (extensionHostKind === ExtensionHostKind.Remote) {
|
|
261
|
+
} else if (extensionHostKind === ExtensionHostKind.Remote) {
|
|
188
262
|
runningLocation = ( new RemoteRunningLocation());
|
|
189
263
|
}
|
|
190
264
|
result.set(extensionIdKey, runningLocation);
|
|
191
265
|
}
|
|
192
|
-
const {
|
|
266
|
+
const {
|
|
267
|
+
affinities,
|
|
268
|
+
maxAffinity
|
|
269
|
+
} = this._computeAffinity(
|
|
270
|
+
localProcessExtensions,
|
|
271
|
+
ExtensionHostKind.LocalProcess,
|
|
272
|
+
isInitialAllocation
|
|
273
|
+
);
|
|
193
274
|
for (const extension of localProcessExtensions) {
|
|
194
275
|
const affinity = affinities.get(extension.identifier) || 0;
|
|
195
276
|
result.set(extension.identifier, ( new LocalProcessRunningLocation(affinity)));
|
|
196
277
|
}
|
|
197
|
-
const {
|
|
278
|
+
const {
|
|
279
|
+
affinities: localWebWorkerAffinities,
|
|
280
|
+
maxAffinity: maxLocalWebWorkerAffinity
|
|
281
|
+
} = this._computeAffinity(
|
|
282
|
+
localWebWorkerExtensions,
|
|
283
|
+
ExtensionHostKind.LocalWebWorker,
|
|
284
|
+
isInitialAllocation
|
|
285
|
+
);
|
|
198
286
|
for (const extension of localWebWorkerExtensions) {
|
|
199
287
|
const affinity = localWebWorkerAffinities.get(extension.identifier) || 0;
|
|
200
288
|
result.set(extension.identifier, ( new LocalWebWorkerRunningLocation(affinity)));
|
|
@@ -204,10 +292,18 @@ let ExtensionRunningLocationTracker = class ExtensionRunningLocationTracker {
|
|
|
204
292
|
result.set(extensionIdKey, runningLocation);
|
|
205
293
|
}
|
|
206
294
|
}
|
|
207
|
-
return {
|
|
295
|
+
return {
|
|
296
|
+
runningLocation: result,
|
|
297
|
+
maxLocalProcessAffinity: maxAffinity,
|
|
298
|
+
maxLocalWebWorkerAffinity: maxLocalWebWorkerAffinity
|
|
299
|
+
};
|
|
208
300
|
}
|
|
209
301
|
initializeRunningLocation(localExtensions, remoteExtensions) {
|
|
210
|
-
const {
|
|
302
|
+
const {
|
|
303
|
+
runningLocation,
|
|
304
|
+
maxLocalProcessAffinity,
|
|
305
|
+
maxLocalWebWorkerAffinity
|
|
306
|
+
} = this._doComputeRunningLocation(this._runningLocation, localExtensions, remoteExtensions, true);
|
|
211
307
|
this._runningLocation = runningLocation;
|
|
212
308
|
this._maxLocalProcessAffinity = maxLocalProcessAffinity;
|
|
213
309
|
this._maxLocalWebWorkerAffinity = maxLocalWebWorkerAffinity;
|
|
@@ -228,45 +324,48 @@ let ExtensionRunningLocationTracker = class ExtensionRunningLocationTracker {
|
|
|
228
324
|
for (const extension of toAdd) {
|
|
229
325
|
const extensionKind = this.readExtensionKinds(extension);
|
|
230
326
|
const isRemote = extension.extensionLocation.scheme === Schemas.vscodeRemote;
|
|
231
|
-
const extensionHostKind = this._extensionHostKindPicker.pickExtensionHostKind(
|
|
327
|
+
const extensionHostKind = this._extensionHostKindPicker.pickExtensionHostKind(
|
|
328
|
+
extension.identifier,
|
|
329
|
+
extensionKind,
|
|
330
|
+
!isRemote,
|
|
331
|
+
isRemote,
|
|
332
|
+
ExtensionRunningPreference.None
|
|
333
|
+
);
|
|
232
334
|
let runningLocation = null;
|
|
233
335
|
if (extensionHostKind === ExtensionHostKind.LocalProcess) {
|
|
234
336
|
localProcessExtensions.push(extension);
|
|
235
|
-
}
|
|
236
|
-
else if (extensionHostKind === ExtensionHostKind.LocalWebWorker) {
|
|
337
|
+
} else if (extensionHostKind === ExtensionHostKind.LocalWebWorker) {
|
|
237
338
|
localWebWorkerExtensions.push(extension);
|
|
238
|
-
}
|
|
239
|
-
else if (extensionHostKind === ExtensionHostKind.Remote) {
|
|
339
|
+
} else if (extensionHostKind === ExtensionHostKind.Remote) {
|
|
240
340
|
runningLocation = ( new RemoteRunningLocation());
|
|
241
341
|
}
|
|
242
342
|
this._runningLocation.set(extension.identifier, runningLocation);
|
|
243
343
|
}
|
|
244
|
-
const {
|
|
344
|
+
const {
|
|
345
|
+
affinities
|
|
346
|
+
} = this._computeAffinity(localProcessExtensions, ExtensionHostKind.LocalProcess, false);
|
|
245
347
|
for (const extension of localProcessExtensions) {
|
|
246
348
|
const affinity = affinities.get(extension.identifier) || 0;
|
|
247
349
|
this._runningLocation.set(extension.identifier, ( new LocalProcessRunningLocation(affinity)));
|
|
248
350
|
}
|
|
249
|
-
const {
|
|
351
|
+
const {
|
|
352
|
+
affinities: webWorkerExtensionsAffinities
|
|
353
|
+
} = this._computeAffinity(localWebWorkerExtensions, ExtensionHostKind.LocalWebWorker, false);
|
|
250
354
|
for (const extension of localWebWorkerExtensions) {
|
|
251
355
|
const affinity = webWorkerExtensionsAffinities.get(extension.identifier) || 0;
|
|
252
356
|
this._runningLocation.set(extension.identifier, ( new LocalWebWorkerRunningLocation(affinity)));
|
|
253
357
|
}
|
|
254
358
|
}
|
|
255
359
|
};
|
|
256
|
-
ExtensionRunningLocationTracker = ( __decorate([
|
|
257
|
-
( __param(2, IWorkbenchEnvironmentService)),
|
|
258
|
-
( __param(3, IConfigurationService)),
|
|
259
|
-
( __param(4, ILogService)),
|
|
260
|
-
( __param(5, IExtensionManifestPropertiesService))
|
|
261
|
-
], ExtensionRunningLocationTracker));
|
|
360
|
+
ExtensionRunningLocationTracker = ( __decorate([( __param(2, IWorkbenchEnvironmentService)), ( __param(3, IConfigurationService)), ( __param(4, ILogService)), ( __param(5, IExtensionManifestPropertiesService))], ExtensionRunningLocationTracker));
|
|
262
361
|
function filterExtensionDescriptions(extensions, runningLocation, predicate) {
|
|
263
|
-
return extensions.filter(
|
|
362
|
+
return extensions.filter(ext => {
|
|
264
363
|
const extRunningLocation = runningLocation.get(ext.identifier);
|
|
265
364
|
return extRunningLocation && predicate(extRunningLocation);
|
|
266
365
|
});
|
|
267
366
|
}
|
|
268
367
|
function filterExtensionIdentifiers(extensions, runningLocation, predicate) {
|
|
269
|
-
return extensions.filter(
|
|
368
|
+
return extensions.filter(ext => {
|
|
270
369
|
const extRunningLocation = runningLocation.get(ext);
|
|
271
370
|
return extRunningLocation && predicate(extRunningLocation);
|
|
272
371
|
});
|
|
@@ -19,16 +19,16 @@ let ExtensionsProposedApi = class ExtensionsProposedApi {
|
|
|
19
19
|
this._environmentService = _environmentService;
|
|
20
20
|
this._envEnabledExtensions = ( new Set(( (_environmentService.extensionEnabledProposedApi ?? []).map(id => ExtensionIdentifier.toKey(id)))));
|
|
21
21
|
this._envEnablesProposedApiForAll =
|
|
22
|
-
|
|
23
|
-
(_environmentService.isExtensionDevelopment && productService.quality !== 'stable') ||
|
|
24
|
-
(this._envEnabledExtensions.size === 0 && Array.isArray(_environmentService.extensionEnabledProposedApi));
|
|
22
|
+
!_environmentService.isBuilt || (_environmentService.isExtensionDevelopment && productService.quality !== "stable") || (this._envEnabledExtensions.size === 0 && Array.isArray(_environmentService.extensionEnabledProposedApi));
|
|
25
23
|
this._productEnabledExtensions = ( new Map());
|
|
26
24
|
if (productService.extensionEnabledApiProposals) {
|
|
27
25
|
for (const [k, value] of Object.entries(productService.extensionEnabledApiProposals)) {
|
|
28
26
|
const key = ExtensionIdentifier.toKey(k);
|
|
29
27
|
const proposalNames = value.filter(name => {
|
|
30
28
|
if (!allApiProposals[name]) {
|
|
31
|
-
_logService.warn(
|
|
29
|
+
_logService.warn(
|
|
30
|
+
`Via 'product.json#extensionEnabledApiProposals' extension '${key}' wants API proposal '${name}' but that proposal DOES NOT EXIST. Likely, the proposal has been finalized (check 'vscode.d.ts') or was abandoned.`
|
|
31
|
+
);
|
|
32
32
|
return false;
|
|
33
33
|
}
|
|
34
34
|
return true;
|
|
@@ -48,7 +48,9 @@ let ExtensionsProposedApi = class ExtensionsProposedApi {
|
|
|
48
48
|
extension.enabledApiProposals = extension.enabledApiProposals.filter(name => {
|
|
49
49
|
const result = Boolean(allApiProposals[name]);
|
|
50
50
|
if (!result) {
|
|
51
|
-
this._logService.error(
|
|
51
|
+
this._logService.error(
|
|
52
|
+
`Extension '${key}' wants API proposal '${name}' but that proposal DOES NOT EXIST. Likely, the proposal has been finalized (check 'vscode.d.ts') or was abandoned.`
|
|
53
|
+
);
|
|
52
54
|
}
|
|
53
55
|
return result;
|
|
54
56
|
});
|
|
@@ -59,9 +61,13 @@ let ExtensionsProposedApi = class ExtensionsProposedApi {
|
|
|
59
61
|
const extensionSet = ( new Set(extension.enabledApiProposals));
|
|
60
62
|
const diff = ( new Set([...extensionSet].filter(a => !( productSet.has(a)))));
|
|
61
63
|
if (diff.size > 0) {
|
|
62
|
-
this._logService.error(
|
|
64
|
+
this._logService.error(
|
|
65
|
+
`Extension '${key}' appears in product.json but enables LESS API proposals than the extension wants.\npackage.json (LOSES): ${[...extensionSet].join("\n")}\nproduct.json (WINS): ${[...productSet].join("\n")}\nDELTA: ${[...diff].join("\n")}`
|
|
66
|
+
);
|
|
63
67
|
if (this._environmentService.isExtensionDevelopment) {
|
|
64
|
-
this._logService.error(
|
|
68
|
+
this._logService.error(
|
|
69
|
+
`Proceeding with EXTRA proposals (${[...diff].join(", ")}) because extension is in development mode. Still, this EXTENSION WILL BE BROKEN unless product.json is updated.`
|
|
70
|
+
);
|
|
65
71
|
productEnabledProposals.push(...diff);
|
|
66
72
|
}
|
|
67
73
|
}
|
|
@@ -72,20 +78,18 @@ let ExtensionsProposedApi = class ExtensionsProposedApi {
|
|
|
72
78
|
return;
|
|
73
79
|
}
|
|
74
80
|
if (!extension.isBuiltin && isNonEmptyArray(extension.enabledApiProposals)) {
|
|
75
|
-
this._logService.error(
|
|
81
|
+
this._logService.error(
|
|
82
|
+
`Extension '${extension.identifier.value} CANNOT USE these API proposals '${extension.enabledApiProposals?.join(", ") || "*"}'. You MUST start in extension development mode or use the --enable-proposed-api command line flag`
|
|
83
|
+
);
|
|
76
84
|
extension.enabledApiProposals = [];
|
|
77
85
|
}
|
|
78
86
|
}
|
|
79
87
|
};
|
|
80
|
-
ExtensionsProposedApi = ( __decorate([
|
|
81
|
-
( __param(0, ILogService)),
|
|
82
|
-
( __param(1, IWorkbenchEnvironmentService)),
|
|
83
|
-
( __param(2, IProductService))
|
|
84
|
-
], ExtensionsProposedApi));
|
|
88
|
+
ExtensionsProposedApi = ( __decorate([( __param(0, ILogService)), ( __param(1, IWorkbenchEnvironmentService)), ( __param(2, IProductService))], ExtensionsProposedApi));
|
|
85
89
|
class ApiProposalsMarkdowneRenderer extends Disposable {
|
|
86
90
|
constructor() {
|
|
87
91
|
super(...arguments);
|
|
88
|
-
this.type =
|
|
92
|
+
this.type = "markdown";
|
|
89
93
|
}
|
|
90
94
|
shouldRender(manifest) {
|
|
91
95
|
return !!manifest.originalEnabledApiProposals?.length || !!manifest.enabledApiProposals?.length;
|
|
@@ -100,17 +104,17 @@ class ApiProposalsMarkdowneRenderer extends Disposable {
|
|
|
100
104
|
}
|
|
101
105
|
return {
|
|
102
106
|
data,
|
|
103
|
-
dispose: () => {
|
|
107
|
+
dispose: () => {}
|
|
104
108
|
};
|
|
105
109
|
}
|
|
106
110
|
}
|
|
107
111
|
( Registry.as(Extensions.ExtensionFeaturesRegistry)).registerExtensionFeature({
|
|
108
|
-
id:
|
|
109
|
-
label: ( localize(
|
|
112
|
+
id: "enabledApiProposals",
|
|
113
|
+
label: ( localize(14395, "API Proposals")),
|
|
110
114
|
access: {
|
|
111
115
|
canToggle: false
|
|
112
116
|
},
|
|
113
|
-
renderer: ( new SyncDescriptor(ApiProposalsMarkdowneRenderer))
|
|
117
|
+
renderer: ( new SyncDescriptor(ApiProposalsMarkdowneRenderer))
|
|
114
118
|
});
|
|
115
119
|
|
|
116
120
|
export { ExtensionsProposedApi };
|
|
@@ -5,11 +5,11 @@ import { semverExports } from '@codingame/monaco-vscode-api/_virtual/semver';
|
|
|
5
5
|
|
|
6
6
|
function dedupExtensions(system, user, workspace, development, logService) {
|
|
7
7
|
const result = ( new ExtensionIdentifierMap());
|
|
8
|
-
system.forEach(
|
|
8
|
+
system.forEach(systemExtension => {
|
|
9
9
|
const extension = result.get(systemExtension.identifier);
|
|
10
10
|
if (extension) {
|
|
11
11
|
logService.warn(( localize(
|
|
12
|
-
|
|
12
|
+
14484,
|
|
13
13
|
"Overwriting extension {0} with {1}.",
|
|
14
14
|
extension.extensionLocation.fsPath,
|
|
15
15
|
systemExtension.extensionLocation.fsPath
|
|
@@ -17,27 +17,29 @@ function dedupExtensions(system, user, workspace, development, logService) {
|
|
|
17
17
|
}
|
|
18
18
|
result.set(systemExtension.identifier, systemExtension);
|
|
19
19
|
});
|
|
20
|
-
user.forEach(
|
|
20
|
+
user.forEach(userExtension => {
|
|
21
21
|
const extension = result.get(userExtension.identifier);
|
|
22
22
|
if (extension) {
|
|
23
23
|
if (extension.isBuiltin) {
|
|
24
24
|
if (semverExports.gte(extension.version, userExtension.version)) {
|
|
25
|
-
logService.warn(
|
|
25
|
+
logService.warn(
|
|
26
|
+
`Skipping extension ${userExtension.extensionLocation.path} in favour of the builtin extension ${extension.extensionLocation.path}.`
|
|
27
|
+
);
|
|
26
28
|
return;
|
|
27
29
|
}
|
|
28
30
|
userExtension.isBuiltin = true;
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
+
} else {
|
|
31
32
|
logService.warn(( localize(
|
|
32
|
-
|
|
33
|
+
14484,
|
|
33
34
|
"Overwriting extension {0} with {1}.",
|
|
34
35
|
extension.extensionLocation.fsPath,
|
|
35
36
|
userExtension.extensionLocation.fsPath
|
|
36
37
|
)));
|
|
37
38
|
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
} else if (userExtension.isBuiltin) {
|
|
40
|
+
logService.warn(
|
|
41
|
+
`Skipping obsolete builtin extension ${userExtension.extensionLocation.path}`
|
|
42
|
+
);
|
|
41
43
|
return;
|
|
42
44
|
}
|
|
43
45
|
result.set(userExtension.identifier, userExtension);
|
|
@@ -46,7 +48,7 @@ function dedupExtensions(system, user, workspace, development, logService) {
|
|
|
46
48
|
const extension = result.get(workspaceExtension.identifier);
|
|
47
49
|
if (extension) {
|
|
48
50
|
logService.warn(( localize(
|
|
49
|
-
|
|
51
|
+
14485,
|
|
50
52
|
"Overwriting {0} with Workspace Extension {1}.",
|
|
51
53
|
extension.extensionLocation.fsPath,
|
|
52
54
|
workspaceExtension.extensionLocation.fsPath
|
|
@@ -56,7 +58,7 @@ function dedupExtensions(system, user, workspace, development, logService) {
|
|
|
56
58
|
});
|
|
57
59
|
development.forEach(developedExtension => {
|
|
58
60
|
logService.info(( localize(
|
|
59
|
-
|
|
61
|
+
14486,
|
|
60
62
|
"Loading development extension at {0}",
|
|
61
63
|
developedExtension.extensionLocation.fsPath
|
|
62
64
|
)));
|
package/vscode/src/vs/workbench/services/extensions/common/lazyCreateExtensionHostManager.js
CHANGED
|
@@ -25,7 +25,13 @@ let LazyCreateExtensionHostManager = class LazyCreateExtensionHostManager extend
|
|
|
25
25
|
get friendyName() {
|
|
26
26
|
return friendlyExtHostName(this.kind, this.pid);
|
|
27
27
|
}
|
|
28
|
-
constructor(
|
|
28
|
+
constructor(
|
|
29
|
+
extensionHost,
|
|
30
|
+
_initialActivationEvents,
|
|
31
|
+
_internalExtensionService,
|
|
32
|
+
_instantiationService,
|
|
33
|
+
_logService
|
|
34
|
+
) {
|
|
29
35
|
super();
|
|
30
36
|
this._initialActivationEvents = _initialActivationEvents;
|
|
31
37
|
this._internalExtensionService = _internalExtensionService;
|
|
@@ -46,8 +52,15 @@ let LazyCreateExtensionHostManager = class LazyCreateExtensionHostManager extend
|
|
|
46
52
|
}
|
|
47
53
|
_createActual(reason) {
|
|
48
54
|
this._logService.info(`Creating lazy extension host (${this.friendyName}). Reason: ${reason}`);
|
|
49
|
-
this._actual = this._register(this._instantiationService.createInstance(
|
|
50
|
-
|
|
55
|
+
this._actual = this._register(this._instantiationService.createInstance(
|
|
56
|
+
ExtensionHostManager,
|
|
57
|
+
this._extensionHost,
|
|
58
|
+
this._initialActivationEvents,
|
|
59
|
+
this._internalExtensionService
|
|
60
|
+
));
|
|
61
|
+
this._register(
|
|
62
|
+
this._actual.onDidChangeResponsiveState(e => this._onDidChangeResponsiveState.fire(e))
|
|
63
|
+
);
|
|
51
64
|
return this._actual;
|
|
52
65
|
}
|
|
53
66
|
async _getOrCreateActualAndStart(reason) {
|
|
@@ -76,7 +89,9 @@ let LazyCreateExtensionHostManager = class LazyCreateExtensionHostManager extend
|
|
|
76
89
|
return this._actual.deltaExtensions(extensionsDelta);
|
|
77
90
|
}
|
|
78
91
|
if (extensionsDelta.myToAdd.length > 0) {
|
|
79
|
-
const actual = this._createActual(
|
|
92
|
+
const actual = this._createActual(
|
|
93
|
+
`contains ${extensionsDelta.myToAdd.length} new extension(s) (installed or enabled): ${( extensionsDelta.myToAdd.map(extId => extId.value))}`
|
|
94
|
+
);
|
|
80
95
|
await actual.ready();
|
|
81
96
|
return;
|
|
82
97
|
}
|
|
@@ -122,7 +137,7 @@ let LazyCreateExtensionHostManager = class LazyCreateExtensionHostManager extend
|
|
|
122
137
|
return this._actual.resolveAuthority(remoteAuthority, resolveAttempt);
|
|
123
138
|
}
|
|
124
139
|
return {
|
|
125
|
-
type:
|
|
140
|
+
type: "error",
|
|
126
141
|
error: {
|
|
127
142
|
message: `Cannot resolve authority`,
|
|
128
143
|
code: RemoteAuthorityResolverErrorCode.Unknown,
|
|
@@ -158,9 +173,6 @@ let LazyCreateExtensionHostManager = class LazyCreateExtensionHostManager extend
|
|
|
158
173
|
}
|
|
159
174
|
}
|
|
160
175
|
};
|
|
161
|
-
LazyCreateExtensionHostManager = ( __decorate([
|
|
162
|
-
( __param(3, IInstantiationService)),
|
|
163
|
-
( __param(4, ILogService))
|
|
164
|
-
], LazyCreateExtensionHostManager));
|
|
176
|
+
LazyCreateExtensionHostManager = ( __decorate([( __param(3, IInstantiationService)), ( __param(4, ILogService))], LazyCreateExtensionHostManager));
|
|
165
177
|
|
|
166
178
|
export { LazyCreateExtensionHostManager };
|
|
@@ -24,7 +24,22 @@ import { isMessageOfType, MessageType, UIKind, createMessageOfType } from '@codi
|
|
|
24
24
|
import { ExtensionHostStartup } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/extensions/common/extensions';
|
|
25
25
|
|
|
26
26
|
let RemoteExtensionHost = class RemoteExtensionHost extends Disposable {
|
|
27
|
-
constructor(
|
|
27
|
+
constructor(
|
|
28
|
+
runningLocation,
|
|
29
|
+
_initDataProvider,
|
|
30
|
+
remoteSocketFactoryService,
|
|
31
|
+
_contextService,
|
|
32
|
+
_environmentService,
|
|
33
|
+
_telemetryService,
|
|
34
|
+
_logService,
|
|
35
|
+
_loggerService,
|
|
36
|
+
_labelService,
|
|
37
|
+
remoteAuthorityResolverService,
|
|
38
|
+
_extensionHostDebugService,
|
|
39
|
+
_productService,
|
|
40
|
+
_signService,
|
|
41
|
+
_defaultLogLevelsService
|
|
42
|
+
) {
|
|
28
43
|
super();
|
|
29
44
|
this.runningLocation = runningLocation;
|
|
30
45
|
this._initDataProvider = _initDataProvider;
|
|
@@ -59,8 +74,13 @@ let RemoteExtensionHost = class RemoteExtensionHost extends Disposable {
|
|
|
59
74
|
quality: this._productService.quality,
|
|
60
75
|
addressProvider: {
|
|
61
76
|
getAddress: async () => {
|
|
62
|
-
const {
|
|
63
|
-
|
|
77
|
+
const {
|
|
78
|
+
authority
|
|
79
|
+
} = await this.remoteAuthorityResolverService.resolveAuthority(this._initDataProvider.remoteAuthority);
|
|
80
|
+
return {
|
|
81
|
+
connectTo: authority.connectTo,
|
|
82
|
+
connectionToken: authority.connectionToken
|
|
83
|
+
};
|
|
64
84
|
}
|
|
65
85
|
},
|
|
66
86
|
remoteSocketFactoryService: this.remoteSocketFactoryService,
|
|
@@ -68,13 +88,16 @@ let RemoteExtensionHost = class RemoteExtensionHost extends Disposable {
|
|
|
68
88
|
logService: this._logService,
|
|
69
89
|
ipcLogger: null
|
|
70
90
|
};
|
|
71
|
-
return this.remoteAuthorityResolverService.resolveAuthority(this._initDataProvider.remoteAuthority).then(
|
|
91
|
+
return this.remoteAuthorityResolverService.resolveAuthority(this._initDataProvider.remoteAuthority).then(resolverResult => {
|
|
72
92
|
const startParams = {
|
|
73
93
|
language: language,
|
|
74
94
|
debugId: this._environmentService.debugExtensionHost.debugId,
|
|
75
95
|
break: this._environmentService.debugExtensionHost.break,
|
|
76
96
|
port: this._environmentService.debugExtensionHost.port,
|
|
77
|
-
env: {
|
|
97
|
+
env: {
|
|
98
|
+
...this._environmentService.debugExtensionHost.env,
|
|
99
|
+
...resolverResult.options?.extensionHostEnv
|
|
100
|
+
}
|
|
78
101
|
};
|
|
79
102
|
const extDevLocs = this._environmentService.extensionDevelopmentLocationURI;
|
|
80
103
|
let debugOk = true;
|
|
@@ -88,10 +111,18 @@ let RemoteExtensionHost = class RemoteExtensionHost extends Disposable {
|
|
|
88
111
|
}
|
|
89
112
|
return connectRemoteAgentExtensionHost(options, startParams).then(result => {
|
|
90
113
|
this._register(result);
|
|
91
|
-
const {
|
|
92
|
-
|
|
114
|
+
const {
|
|
115
|
+
protocol,
|
|
116
|
+
debugPort,
|
|
117
|
+
reconnectionToken
|
|
118
|
+
} = result;
|
|
119
|
+
const isExtensionDevelopmentDebug = typeof debugPort === "number";
|
|
93
120
|
if (debugOk && this._environmentService.isExtensionDevelopment && this._environmentService.debugExtensionHost.debugId && debugPort) {
|
|
94
|
-
this._extensionHostDebugService.attachSession(
|
|
121
|
+
this._extensionHostDebugService.attachSession(
|
|
122
|
+
this._environmentService.debugExtensionHost.debugId,
|
|
123
|
+
debugPort,
|
|
124
|
+
this._initDataProvider.remoteAuthority
|
|
125
|
+
);
|
|
95
126
|
}
|
|
96
127
|
protocol.onDidDispose(() => {
|
|
97
128
|
this._onExtHostConnectionLost(reconnectionToken);
|
|
@@ -103,7 +134,9 @@ let RemoteExtensionHost = class RemoteExtensionHost extends Disposable {
|
|
|
103
134
|
});
|
|
104
135
|
return ( new Promise((resolve, reject) => {
|
|
105
136
|
const handle = setTimeout(() => {
|
|
106
|
-
reject(
|
|
137
|
+
reject(
|
|
138
|
+
"The remote extension host took longer than 60s to send its ready message."
|
|
139
|
+
);
|
|
107
140
|
}, 60 * 1000);
|
|
108
141
|
const disposable = protocol.onMessage(msg => {
|
|
109
142
|
if (isMessageOfType(msg, MessageType.Ready)) {
|
|
@@ -119,7 +152,10 @@ let RemoteExtensionHost = class RemoteExtensionHost extends Disposable {
|
|
|
119
152
|
resolve(protocol);
|
|
120
153
|
return;
|
|
121
154
|
}
|
|
122
|
-
console.error(
|
|
155
|
+
console.error(
|
|
156
|
+
`received unexpected message during handshake phase from the extension host: `,
|
|
157
|
+
msg
|
|
158
|
+
);
|
|
123
159
|
});
|
|
124
160
|
}));
|
|
125
161
|
});
|
|
@@ -152,7 +188,7 @@ let RemoteExtensionHost = class RemoteExtensionHost extends Disposable {
|
|
|
152
188
|
isExtensionDevelopmentDebug,
|
|
153
189
|
appRoot: remoteInitData.appRoot,
|
|
154
190
|
appName: this._productService.nameLong,
|
|
155
|
-
appHost: this._productService.embedderIdentifier ||
|
|
191
|
+
appHost: this._productService.embedderIdentifier || "desktop",
|
|
156
192
|
appUriScheme: this._productService.urlProtocol,
|
|
157
193
|
isExtensionTelemetryLoggingOnly: isLoggingOnly(this._productService, this._environmentService),
|
|
158
194
|
appLanguage: language,
|
|
@@ -219,19 +255,6 @@ let RemoteExtensionHost = class RemoteExtensionHost extends Disposable {
|
|
|
219
255
|
}
|
|
220
256
|
}
|
|
221
257
|
};
|
|
222
|
-
RemoteExtensionHost = ( __decorate([
|
|
223
|
-
( __param(2, IRemoteSocketFactoryService)),
|
|
224
|
-
( __param(3, IWorkspaceContextService)),
|
|
225
|
-
( __param(4, IWorkbenchEnvironmentService)),
|
|
226
|
-
( __param(5, ITelemetryService)),
|
|
227
|
-
( __param(6, ILogService)),
|
|
228
|
-
( __param(7, ILoggerService)),
|
|
229
|
-
( __param(8, ILabelService)),
|
|
230
|
-
( __param(9, IRemoteAuthorityResolverService)),
|
|
231
|
-
( __param(10, IExtensionHostDebugService)),
|
|
232
|
-
( __param(11, IProductService)),
|
|
233
|
-
( __param(12, ISignService)),
|
|
234
|
-
( __param(13, IDefaultLogLevelsService))
|
|
235
|
-
], RemoteExtensionHost));
|
|
258
|
+
RemoteExtensionHost = ( __decorate([( __param(2, IRemoteSocketFactoryService)), ( __param(3, IWorkspaceContextService)), ( __param(4, IWorkbenchEnvironmentService)), ( __param(5, ITelemetryService)), ( __param(6, ILogService)), ( __param(7, ILoggerService)), ( __param(8, ILabelService)), ( __param(9, IRemoteAuthorityResolverService)), ( __param(10, IExtensionHostDebugService)), ( __param(11, IProductService)), ( __param(12, ISignService)), ( __param(13, IDefaultLogLevelsService))], RemoteExtensionHost));
|
|
236
259
|
|
|
237
260
|
export { RemoteExtensionHost };
|