@codingame/monaco-vscode-extensions-service-override 31.0.0 → 32.0.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 (45) hide show
  1. package/index.js +2 -0
  2. package/package.json +3 -3
  3. package/vscode/src/vs/platform/extensionManagement/common/extensionManagementCLI.js +29 -29
  4. package/vscode/src/vs/workbench/api/browser/mainThreadAuthentication.js +25 -25
  5. package/vscode/src/vs/workbench/api/browser/mainThreadBrowsers.d.ts +3 -1
  6. package/vscode/src/vs/workbench/api/browser/mainThreadBrowsers.js +9 -9
  7. package/vscode/src/vs/workbench/api/browser/mainThreadCLICommands.js +1 -1
  8. package/vscode/src/vs/workbench/api/browser/mainThreadChatAgents2.js +36 -14
  9. package/vscode/src/vs/workbench/api/browser/mainThreadChatDebug.js +9 -0
  10. package/vscode/src/vs/workbench/api/browser/mainThreadChatInputNotification.d.ts +10 -0
  11. package/vscode/src/vs/workbench/api/browser/mainThreadChatInputNotification.js +33 -0
  12. package/vscode/src/vs/workbench/api/browser/mainThreadChatSessions.d.ts +2 -1
  13. package/vscode/src/vs/workbench/api/browser/mainThreadChatSessions.js +102 -27
  14. package/vscode/src/vs/workbench/api/browser/mainThreadComments.d.ts +6 -3
  15. package/vscode/src/vs/workbench/api/browser/mainThreadComments.js +37 -15
  16. package/vscode/src/vs/workbench/api/browser/mainThreadConsole.d.ts +2 -1
  17. package/vscode/src/vs/workbench/api/browser/mainThreadConsole.js +8 -2
  18. package/vscode/src/vs/workbench/api/browser/mainThreadCustomEditors.d.ts +7 -3
  19. package/vscode/src/vs/workbench/api/browser/mainThreadCustomEditors.js +163 -36
  20. package/vscode/src/vs/workbench/api/browser/mainThreadDocumentDiff.d.ts +10 -0
  21. package/vscode/src/vs/workbench/api/browser/mainThreadDocumentDiff.js +58 -0
  22. package/vscode/src/vs/workbench/api/browser/mainThreadEditSessionIdentityParticipant.js +1 -1
  23. package/vscode/src/vs/workbench/api/browser/mainThreadExtensionService.js +11 -11
  24. package/vscode/src/vs/workbench/api/browser/mainThreadFileSystemEventService.js +20 -20
  25. package/vscode/src/vs/workbench/api/browser/mainThreadLanguageFeatures.js +25 -2
  26. package/vscode/src/vs/workbench/api/browser/mainThreadLanguageModels.js +2 -2
  27. package/vscode/src/vs/workbench/api/browser/mainThreadMcp.js +10 -9
  28. package/vscode/src/vs/workbench/api/browser/mainThreadMessageService.js +4 -4
  29. package/vscode/src/vs/workbench/api/browser/mainThreadNotebookSaveParticipant.js +1 -1
  30. package/vscode/src/vs/workbench/api/browser/mainThreadOutputService.js +3 -3
  31. package/vscode/src/vs/workbench/api/browser/mainThreadProgress.js +1 -1
  32. package/vscode/src/vs/workbench/api/browser/mainThreadSaveParticipant.js +1 -1
  33. package/vscode/src/vs/workbench/api/browser/mainThreadTask.js +1 -1
  34. package/vscode/src/vs/workbench/api/browser/mainThreadTunnelService.js +2 -2
  35. package/vscode/src/vs/workbench/api/browser/mainThreadUriOpeners.js +2 -2
  36. package/vscode/src/vs/workbench/api/browser/mainThreadWebviews.js +1 -1
  37. package/vscode/src/vs/workbench/api/browser/mainThreadWorkspace.js +5 -5
  38. package/vscode/src/vs/workbench/contrib/customEditor/common/customTextEditorModel.js +1 -1
  39. package/vscode/src/vs/workbench/services/extensionManagement/browser/extensionBisect.js +23 -23
  40. package/vscode/src/vs/workbench/services/extensionManagement/browser/webExtensionsScannerService.js +2 -2
  41. package/vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.js +14 -13
  42. package/vscode/src/vs/workbench/services/extensions/common/extensionHostManager.js +1 -1
  43. package/vscode/src/vs/workbench/services/extensions/common/extensionsProposedApi.js +1 -1
  44. package/vscode/src/vs/workbench/services/extensions/common/extensionsUtil.js +4 -4
  45. package/vscode/src/vs/workbench/services/themes/browser/cssExtensionPoint.js +5 -5
@@ -94,25 +94,25 @@ let MainThreadFileSystemEventService = class MainThreadFileSystemEventService {
94
94
  if (data.extensionNames.length === 1) {
95
95
  if (operation === FileOperation.CREATE) {
96
96
  message = ( localize(
97
- 2566,
97
+ 2605,
98
98
  "Extension '{0}' wants to make refactoring changes with this file creation",
99
99
  data.extensionNames[0]
100
100
  ));
101
101
  } else if (operation === FileOperation.COPY) {
102
102
  message = ( localize(
103
- 2567,
103
+ 2606,
104
104
  "Extension '{0}' wants to make refactoring changes with this file copy",
105
105
  data.extensionNames[0]
106
106
  ));
107
107
  } else if (operation === FileOperation.MOVE) {
108
108
  message = ( localize(
109
- 2568,
109
+ 2607,
110
110
  "Extension '{0}' wants to make refactoring changes with this file move",
111
111
  data.extensionNames[0]
112
112
  ));
113
113
  } else {
114
114
  message = ( localize(
115
- 2569,
115
+ 2608,
116
116
  "Extension '{0}' wants to make refactoring changes with this file deletion",
117
117
  data.extensionNames[0]
118
118
  ));
@@ -120,25 +120,25 @@ let MainThreadFileSystemEventService = class MainThreadFileSystemEventService {
120
120
  } else {
121
121
  if (operation === FileOperation.CREATE) {
122
122
  message = ( localize(
123
- 2570,
123
+ 2609,
124
124
  "{0} extensions want to make refactoring changes with this file creation",
125
125
  data.extensionNames.length
126
126
  ));
127
127
  } else if (operation === FileOperation.COPY) {
128
128
  message = ( localize(
129
- 2571,
129
+ 2610,
130
130
  "{0} extensions want to make refactoring changes with this file copy",
131
131
  data.extensionNames.length
132
132
  ));
133
133
  } else if (operation === FileOperation.MOVE) {
134
134
  message = ( localize(
135
- 2572,
135
+ 2611,
136
136
  "{0} extensions want to make refactoring changes with this file move",
137
137
  data.extensionNames.length
138
138
  ));
139
139
  } else {
140
140
  message = ( localize(
141
- 2573,
141
+ 2612,
142
142
  "{0} extensions want to make refactoring changes with this file deletion",
143
143
  data.extensionNames.length
144
144
  ));
@@ -150,8 +150,8 @@ let MainThreadFileSystemEventService = class MainThreadFileSystemEventService {
150
150
  } = await dialogService.confirm({
151
151
  type: Severity.Info,
152
152
  message,
153
- primaryButton: ( localize(2574, "Show &&Preview")),
154
- cancelButton: ( localize(2575, "Skip Changes"))
153
+ primaryButton: ( localize(2613, "Show &&Preview")),
154
+ cancelButton: ( localize(2614, "Skip Changes"))
155
155
  });
156
156
  showPreview = true;
157
157
  if (!confirmed) {
@@ -171,18 +171,18 @@ let MainThreadFileSystemEventService = class MainThreadFileSystemEventService {
171
171
  type: Severity.Info,
172
172
  message,
173
173
  buttons: [{
174
- label: ( localize(2576, "&&OK")),
174
+ label: ( localize(2615, "&&OK")),
175
175
  run: () => Choice.OK
176
176
  }, {
177
- label: ( localize(2574, "Show &&Preview")),
177
+ label: ( localize(2613, "Show &&Preview")),
178
178
  run: () => Choice.Preview
179
179
  }],
180
180
  cancelButton: {
181
- label: ( localize(2575, "Skip Changes")),
181
+ label: ( localize(2614, "Skip Changes")),
182
182
  run: () => Choice.Cancel
183
183
  },
184
184
  checkbox: {
185
- label: ( localize(2577, "Do not ask me again"))
185
+ label: ( localize(2616, "Do not ask me again"))
186
186
  }
187
187
  });
188
188
  if (result === Choice.Cancel) {
@@ -211,15 +211,15 @@ let MainThreadFileSystemEventService = class MainThreadFileSystemEventService {
211
211
  _progressLabel(operation) {
212
212
  switch (operation) {
213
213
  case FileOperation.CREATE:
214
- return localize(2578, "Running 'File Create' participants...");
214
+ return localize(2617, "Running 'File Create' participants...");
215
215
  case FileOperation.MOVE:
216
- return localize(2579, "Running 'File Rename' participants...");
216
+ return localize(2618, "Running 'File Rename' participants...");
217
217
  case FileOperation.COPY:
218
- return localize(2580, "Running 'File Copy' participants...");
218
+ return localize(2619, "Running 'File Copy' participants...");
219
219
  case FileOperation.DELETE:
220
- return localize(2581, "Running 'File Delete' participants...");
220
+ return localize(2620, "Running 'File Delete' participants...");
221
221
  case FileOperation.WRITE:
222
- return localize(2582, "Running 'File Write' participants...");
222
+ return localize(2621, "Running 'File Write' participants...");
223
223
  }
224
224
  }
225
225
  })();
@@ -307,7 +307,7 @@ registerAction2(class ResetMemento extends Action2 {
307
307
  super({
308
308
  id: "files.participants.resetChoice",
309
309
  title: {
310
- value: ( localize(2583, "Reset choice for 'File operation needs preview'")),
310
+ value: ( localize(2622, "Reset choice for 'File operation needs preview'")),
311
311
  original: `Reset choice for 'File operation needs preview'`
312
312
  },
313
313
  f1: true
@@ -1264,7 +1264,8 @@ let ExtensionBackedInlineCompletionsProvider = class ExtensionBackedInlineComple
1264
1264
  editDeltaInfo: editDeltaInfo,
1265
1265
  modeId: undefined,
1266
1266
  modelId: undefined,
1267
- presentation: item.isInlineEdit ? "nextEditSuggestion" : "inlineCompletion"
1267
+ presentation: item.isInlineEdit ? "nextEditSuggestion" : "inlineCompletion",
1268
+ sourceRequestId: undefined
1268
1269
  });
1269
1270
  }
1270
1271
  if (this._supportsHandleEvents) {
@@ -1309,7 +1310,29 @@ let ExtensionBackedInlineCompletionsProvider = class ExtensionBackedInlineComple
1309
1310
  modelId: undefined,
1310
1311
  presentation: item.isInlineEdit ? "nextEditSuggestion" : "inlineCompletion",
1311
1312
  acceptanceMethod: "accept",
1312
- applyCodeBlockSuggestionId: undefined
1313
+ applyCodeBlockSuggestionId: undefined,
1314
+ sourceRequestId: undefined
1315
+ });
1316
+ }
1317
+ } else if (reason.kind === InlineCompletionEndOfLifeReasonKind.Rejected) {
1318
+ if (item.suggestionId !== undefined) {
1319
+ this._aiEditTelemetryService.handleCodeRejected({
1320
+ suggestionId: item.suggestionId,
1321
+ feature: "inlineSuggestion",
1322
+ source: this.providerId,
1323
+ languageId: completions.languageId,
1324
+ editDeltaInfo: EditDeltaInfo.tryCreate(
1325
+ lifetimeSummary.lineCountModified,
1326
+ lifetimeSummary.lineCountOriginal,
1327
+ lifetimeSummary.characterCountModified,
1328
+ lifetimeSummary.characterCountOriginal
1329
+ ),
1330
+ modeId: undefined,
1331
+ modelId: undefined,
1332
+ presentation: item.isInlineEdit ? "nextEditSuggestion" : "inlineCompletion",
1333
+ rejectionMethod: "reject",
1334
+ applyCodeBlockSuggestionId: undefined,
1335
+ sourceRequestId: undefined
1313
1336
  });
1314
1337
  }
1315
1338
  }
@@ -178,7 +178,7 @@ let MainThreadLanguageModels = class MainThreadLanguageModels {
178
178
  if (this._authenticationService.getProviderIds().includes(authProviderId)) {
179
179
  return Disposable.None;
180
180
  }
181
- const accountLabel = auth.accountLabel ?? ( localize(2584, "Language Models"));
181
+ const accountLabel = auth.accountLabel ?? ( localize(2623, "Language Models"));
182
182
  const disposables = ( new DisposableStore());
183
183
  const provider = ( new LanguageModelAccessAuthProvider(authProviderId, auth.providerLabel, accountLabel));
184
184
  this._authenticationService.registerAuthenticationProvider(authProviderId, provider);
@@ -261,7 +261,7 @@ class LanguageModelAccessAuthProvider {
261
261
  }
262
262
  confirmation(extensionName, _recreatingSession) {
263
263
  return localize(
264
- 2585,
264
+ 2624,
265
265
  "The extension '{0}' wants to access the language models provided by {1}.",
266
266
  extensionName,
267
267
  this.label
@@ -18,7 +18,7 @@ import { LogLevel } from '@codingame/monaco-vscode-api/vscode/vs/platform/log/co
18
18
  import { ITelemetryService } from '@codingame/monaco-vscode-api/vscode/vs/platform/telemetry/common/telemetry.service';
19
19
  import { IWorkbenchMcpGatewayService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpGatewayService.service';
20
20
  import { IMcpRegistry } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpRegistryTypes.service';
21
- import { McpServerLaunch, McpServerTransportType, McpServerDefinition, McpServerTrust, extensionPrefixedIdentifier, McpConnectionState, UserInteractionRequiredError } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpTypes';
21
+ import { McpServerLaunch, McpServerTransportType, McpServerDefinition, McpServerTrust, McpCollectionSortOrder, extensionPrefixedIdentifier, McpConnectionState, UserInteractionRequiredError } from '@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpTypes';
22
22
  import { IAuthenticationMcpAccessService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/authentication/browser/authenticationMcpAccessService.service';
23
23
  import { IAuthenticationMcpService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/authentication/browser/authenticationMcpService.service';
24
24
  import { IAuthenticationMcpUsageService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/authentication/browser/authenticationMcpUsageService.service';
@@ -144,6 +144,7 @@ let MainThreadMcp = class MainThreadMcp extends Disposable {
144
144
  handle.value ??= this._mcpRegistry.registerCollection({
145
145
  ...collection,
146
146
  source: extensionId,
147
+ order: McpCollectionSortOrder.Extension,
147
148
  resolveServerLanch: collection.canResolveLaunch ? (async def => {
148
149
  const r = await this._proxy.$resolveMcpLaunch(collection.id, def.label);
149
150
  return r ? McpServerLaunch.fromSerialized(r) : undefined;
@@ -341,9 +342,9 @@ let MainThreadMcp = class MainThreadMcp extends Disposable {
341
342
  }
342
343
  async continueWithIncorrectAccountPrompt(chosenAccountLabel, requestedAccountLabel) {
343
344
  const result = await this.dialogService.prompt({
344
- message: ( localize(2586, "Incorrect account detected")),
345
+ message: ( localize(2625, "Incorrect account detected")),
345
346
  detail: ( localize(
346
- 2587,
347
+ 2626,
347
348
  "The chosen account, {0}, does not match the requested account, {1}.",
348
349
  chosenAccountLabel,
349
350
  requestedAccountLabel
@@ -351,10 +352,10 @@ let MainThreadMcp = class MainThreadMcp extends Disposable {
351
352
  type: Severity.Warning,
352
353
  cancelButton: true,
353
354
  buttons: [{
354
- label: ( localize(2588, "Keep {0}", chosenAccountLabel)),
355
+ label: ( localize(2627, "Keep {0}", chosenAccountLabel)),
355
356
  run: () => chosenAccountLabel
356
357
  }, {
357
- label: ( localize(2589, "Login with {0}", requestedAccountLabel)),
358
+ label: ( localize(2628, "Login with {0}", requestedAccountLabel)),
358
359
  run: () => requestedAccountLabel
359
360
  }]
360
361
  });
@@ -386,7 +387,7 @@ let MainThreadMcp = class MainThreadMcp extends Disposable {
386
387
  } catch (e) {
387
388
  if (UserInteractionRequiredError.is(e)) {
388
389
  server.pushLog(LogLevel.Warning, ( localize(
389
- 2590,
390
+ 2629,
390
391
  "Authentication session for {0} removed, stopping server",
391
392
  providerLabel
392
393
  )));
@@ -433,18 +434,18 @@ let MainThreadMcp = class MainThreadMcp extends Disposable {
433
434
  }
434
435
  async loginPrompt(mcpLabel, providerLabel, recreatingSession) {
435
436
  const message = recreatingSession ? ( localize(
436
- 2591,
437
+ 2630,
437
438
  "The MCP Server Definition '{0}' wants you to authenticate to {1}.",
438
439
  mcpLabel,
439
440
  providerLabel
440
441
  )) : ( localize(
441
- 2592,
442
+ 2631,
442
443
  "The MCP Server Definition '{0}' wants to authenticate to {1}.",
443
444
  mcpLabel,
444
445
  providerLabel
445
446
  ));
446
447
  const buttons = [{
447
- label: ( localize(2593, "&&Allow")),
448
+ label: ( localize(2632, "&&Allow")),
448
449
  run() {
449
450
  return true;
450
451
  }
@@ -66,13 +66,13 @@ let MainThreadMessageService = class MainThreadMessageService {
66
66
  sourceIsUrgent = MainThreadMessageService_1.URGENT_NOTIFICATION_SOURCES.includes(source.id);
67
67
  }
68
68
  if (!source) {
69
- source = ( localize(2594, "Extension"));
69
+ source = ( localize(2633, "Extension"));
70
70
  }
71
71
  const secondaryActions = [];
72
72
  if (options.source) {
73
73
  secondaryActions.push(toAction({
74
74
  id: options.source.identifier.value,
75
- label: ( localize(2595, "Manage Extension")),
75
+ label: ( localize(2634, "Manage Extension")),
76
76
  run: () => {
77
77
  return this._commandService.executeCommand("_extensions.manage", options.source.identifier.value);
78
78
  }
@@ -111,12 +111,12 @@ let MainThreadMessageService = class MainThreadMessageService {
111
111
  if (!cancelButton) {
112
112
  if (buttons.length > 0) {
113
113
  cancelButton = {
114
- label: ( localize(2596, "Cancel")),
114
+ label: ( localize(2635, "Cancel")),
115
115
  run: () => undefined
116
116
  };
117
117
  } else {
118
118
  cancelButton = {
119
- label: ( localize(2597, "&&OK")),
119
+ label: ( localize(2636, "&&OK")),
120
120
  run: () => undefined
121
121
  };
122
122
  }
@@ -18,7 +18,7 @@ class ExtHostNotebookDocumentSaveParticipant {
18
18
  }
19
19
  let _warningTimeout;
20
20
  const p = ( new Promise((resolve, reject) => {
21
- _warningTimeout = setTimeout(() => reject(( new Error(( localize(2598, "Aborted onWillSaveNotebookDocument-event after 1750ms"))))), 1750);
21
+ _warningTimeout = setTimeout(() => reject(( new Error(( localize(2637, "Aborted onWillSaveNotebookDocument-event after 1750ms"))))), 1750);
22
22
  this._proxy.$participateInSave(workingCopy.resource, context.reason, token).then(_ => {
23
23
  clearTimeout(_warningTimeout);
24
24
  return undefined;
@@ -94,11 +94,11 @@ let MainThreadOutputService = class MainThreadOutputService extends Disposable {
94
94
  }
95
95
  _showChannelQuietly(channel) {
96
96
  const statusProperties = {
97
- name: ( localize(2599, "Show Output")),
97
+ name: ( localize(2638, "Show Output")),
98
98
  text: "$(output)",
99
- ariaLabel: ( localize(2600, "Show {0} Output Channel", channel.label)),
99
+ ariaLabel: ( localize(2639, "Show {0} Output Channel", channel.label)),
100
100
  command: `workbench.action.output.show.${channel.id}`,
101
- tooltip: ( localize(2601, "Show {0} Output Channel", channel.label)),
101
+ tooltip: ( localize(2640, "Show {0} Output Channel", channel.label)),
102
102
  kind: "prominent"
103
103
  };
104
104
  if (!this._outputStatusItem.value) {
@@ -38,7 +38,7 @@ let MainThreadProgress = class MainThreadProgress {
38
38
  location: ProgressLocation.Notification,
39
39
  secondaryActions: [toAction({
40
40
  id: extensionId,
41
- label: ( localize(2602, "Manage Extension")),
41
+ label: ( localize(2641, "Manage Extension")),
42
42
  run: () => this._commandService.executeCommand("_extensions.manage", extensionId)
43
43
  })]
44
44
  };
@@ -17,7 +17,7 @@ class ExtHostSaveParticipant {
17
17
  return undefined;
18
18
  }
19
19
  const p = ( new Promise((resolve, reject) => {
20
- setTimeout(() => reject(( new Error(( localize(2603, "Aborted onWillSaveTextDocument-event after 1750ms"))))), 1750);
20
+ setTimeout(() => reject(( new Error(( localize(2642, "Aborted onWillSaveTextDocument-event after 1750ms"))))), 1750);
21
21
  this._proxy.$participateInSave(editorModel.resource, context.reason).then(values => {
22
22
  if (!values.every(success => success)) {
23
23
  return Promise.reject(( new Error("listener failed")));
@@ -397,7 +397,7 @@ var TaskDTO;
397
397
  }
398
398
  command.presentation = TaskPresentationOptionsDTO.to(task.presentationOptions);
399
399
  const source = TaskSourceDTO.to(task.source, workspace);
400
- const label = ( localize(2604, "{0}: {1}", source.label, task.name));
400
+ const label = ( localize(2643, "{0}: {1}", source.label, task.name));
401
401
  const definition = TaskDefinitionDTO.to(task.definition, executeOnly);
402
402
  const id = (CustomExecutionDTO.is(task.execution) && task._id) ? task._id : `${task.source.extensionId}.${definition._key}`;
403
403
  const result = ( new ContributedTask(
@@ -116,13 +116,13 @@ let MainThreadTunnelService = class MainThreadTunnelService extends Disposable {
116
116
  }
117
117
  async elevationPrompt(tunnelOptions, tunnel, source) {
118
118
  return this.notificationService.prompt(Severity.Info, ( localize(
119
- 2605,
119
+ 2644,
120
120
  "The extension {0} has forwarded port {1}. You'll need to run as superuser to use port {2} locally.",
121
121
  source,
122
122
  tunnelOptions.remoteAddress.port,
123
123
  tunnelOptions.localAddressPort
124
124
  )), [{
125
- label: ( localize(2606, "Use Port {0} as Sudo...", tunnel.tunnelRemotePort)),
125
+ label: ( localize(2645, "Use Port {0} as Sudo...", tunnel.tunnelRemotePort)),
126
126
  run: async () => {
127
127
  this.elevateionRetry = true;
128
128
  await this.remoteExplorerService.close({
@@ -61,7 +61,7 @@ let MainThreadUriOpeners = class MainThreadUriOpeners extends Disposable {
61
61
  }, token);
62
62
  } catch (e) {
63
63
  if (!isCancellationError(e)) {
64
- const openDefaultAction = ( new Action("default", ( localize(2607, "Open using default opener")), undefined, undefined, async () => {
64
+ const openDefaultAction = ( new Action("default", ( localize(2646, "Open using default opener")), undefined, undefined, async () => {
65
65
  await this.openerService.open(uri, {
66
66
  allowTunneling: false,
67
67
  allowContributedOpeners: defaultExternalUriOpenerId
@@ -70,7 +70,7 @@ let MainThreadUriOpeners = class MainThreadUriOpeners extends Disposable {
70
70
  openDefaultAction.tooltip = ( uri.toString());
71
71
  this.notificationService.notify({
72
72
  severity: Severity.Error,
73
- message: ( localize(2608, "Could not open uri with '{0}': {1}", id, (e.toString()))),
73
+ message: ( localize(2647, "Could not open uri with '{0}': {1}", id, (e.toString()))),
74
74
  actions: {
75
75
  primary: [openDefaultAction]
76
76
  }
@@ -118,7 +118,7 @@ let MainThreadWebviews = class MainThreadWebviews extends Disposable {
118
118
  <meta http-equiv="Content-type" content="text/html;charset=UTF-8">
119
119
  <meta http-equiv="Content-Security-Policy" content="default-src 'none';">
120
120
  </head>
121
- <body>${( localize(2609, "An error occurred while loading view: {0}", escape(viewType)))}</body>
121
+ <body>${( localize(2648, "An error occurred while loading view: {0}", escape(viewType)))}</body>
122
122
  </html>`;
123
123
  }
124
124
  };
@@ -114,10 +114,10 @@ let MainThreadWorkspace = class MainThreadWorkspace extends Disposable {
114
114
  const wantsToDelete = removeCount > 0;
115
115
  if (wantsToAdd && !wantsToDelete) {
116
116
  if (addCount === 1) {
117
- message = ( localize(2610, "Extension '{0}' added 1 folder to the workspace", extensionName));
117
+ message = ( localize(2649, "Extension '{0}' added 1 folder to the workspace", extensionName));
118
118
  } else {
119
119
  message = ( localize(
120
- 2611,
120
+ 2650,
121
121
  "Extension '{0}' added {1} folders to the workspace",
122
122
  extensionName,
123
123
  addCount
@@ -126,10 +126,10 @@ let MainThreadWorkspace = class MainThreadWorkspace extends Disposable {
126
126
  }
127
127
  else if (wantsToDelete && !wantsToAdd) {
128
128
  if (removeCount === 1) {
129
- message = ( localize(2612, "Extension '{0}' removed 1 folder from the workspace", extensionName));
129
+ message = ( localize(2651, "Extension '{0}' removed 1 folder from the workspace", extensionName));
130
130
  } else {
131
131
  message = ( localize(
132
- 2613,
132
+ 2652,
133
133
  "Extension '{0}' removed {1} folders from the workspace",
134
134
  extensionName,
135
135
  removeCount
@@ -137,7 +137,7 @@ let MainThreadWorkspace = class MainThreadWorkspace extends Disposable {
137
137
  }
138
138
  }
139
139
  else {
140
- message = ( localize(2614, "Extension '{0}' changed folders of the workspace", extensionName));
140
+ message = ( localize(2653, "Extension '{0}' changed folders of the workspace", extensionName));
141
141
  }
142
142
  return message;
143
143
  }
@@ -60,7 +60,7 @@ let CustomTextEditorModel = CustomTextEditorModel_1 = class CustomTextEditorMode
60
60
  }));
61
61
  this._register(extensionService.onWillStop(e => {
62
62
  e.veto(true, ( localize(
63
- 8143,
63
+ 8476,
64
64
  "An extension provided text editor for '{0}' is still open that would close otherwise.",
65
65
  this.name
66
66
  )));
@@ -169,11 +169,11 @@ let ExtensionBisectUi = class ExtensionBisectUi {
169
169
  }
170
170
  _showBisectPrompt() {
171
171
  const goodPrompt = {
172
- label: ( localize(16196, "I can't reproduce")),
172
+ label: ( localize(16504, "I can't reproduce")),
173
173
  run: () => this._commandService.executeCommand("extension.bisect.next", false)
174
174
  };
175
175
  const badPrompt = {
176
- label: ( localize(16197, "I can reproduce")),
176
+ label: ( localize(16505, "I can reproduce")),
177
177
  run: () => this._commandService.executeCommand("extension.bisect.next", true)
178
178
  };
179
179
  const stop = {
@@ -181,10 +181,10 @@ let ExtensionBisectUi = class ExtensionBisectUi {
181
181
  run: () => this._commandService.executeCommand("extension.bisect.stop")
182
182
  };
183
183
  const message = this._extensionBisectService.disabledCount === 1 ? ( localize(
184
- 16198,
184
+ 16506,
185
185
  "Extension Bisect is active and has disabled 1 extension. Check if you can still reproduce the problem and proceed by selecting from these options."
186
186
  )) : ( localize(
187
- 16199,
187
+ 16507,
188
188
  "Extension Bisect is active and has disabled {0} extensions. Check if you can still reproduce the problem and proceed by selecting from these options.",
189
189
  this._extensionBisectService.disabledCount
190
190
  ));
@@ -200,7 +200,7 @@ registerAction2(class extends Action2 {
200
200
  constructor() {
201
201
  super({
202
202
  id: "extension.bisect.start",
203
- title: ( localize2(16200, "Start Extension Bisect")),
203
+ title: ( localize2(16508, "Start Extension Bisect")),
204
204
  category: Categories.Help,
205
205
  f1: true,
206
206
  precondition: ( ExtensionBisectUi.ctxIsBisectActive.negate()),
@@ -220,13 +220,13 @@ registerAction2(class extends Action2 {
220
220
  const extensionsBisect = accessor.get(IExtensionBisectService);
221
221
  const extensions = (await extensionManagement.getInstalled(ExtensionType.User)).filter(ext => extensionEnablementService.isEnabled(ext));
222
222
  const res = await dialogService.confirm({
223
- message: ( localize(16201, "Extension Bisect")),
223
+ message: ( localize(16509, "Extension Bisect")),
224
224
  detail: ( localize(
225
- 16202,
225
+ 16510,
226
226
  "Extension Bisect will use binary search to find an extension that causes a problem. During the process the window reloads repeatedly (~{0} times). Each time you must confirm if you are still seeing problems.",
227
227
  2 + Math.log2(extensions.length) | 0
228
228
  )),
229
- primaryButton: ( localize(16203, "&&Start Extension Bisect"))
229
+ primaryButton: ( localize(16511, "&&Start Extension Bisect"))
230
230
  });
231
231
  if (res.confirmed) {
232
232
  await extensionsBisect.start(extensions);
@@ -238,7 +238,7 @@ registerAction2(class extends Action2 {
238
238
  constructor() {
239
239
  super({
240
240
  id: "extension.bisect.next",
241
- title: ( localize2(16204, "Continue Extension Bisect")),
241
+ title: ( localize2(16512, "Continue Extension Bisect")),
242
242
  category: Categories.Help,
243
243
  f1: true,
244
244
  precondition: ExtensionBisectUi.ctxIsBisectActive
@@ -272,24 +272,24 @@ registerAction2(class extends Action2 {
272
272
  return;
273
273
  }
274
274
  if (done.bad) {
275
- await dialogService.info(( localize(16205, "Extension Bisect")), ( localize(
276
- 16206,
275
+ await dialogService.info(( localize(16513, "Extension Bisect")), ( localize(
276
+ 16514,
277
277
  "Extension Bisect is done but no extension has been identified. This might be a problem with {0}.",
278
278
  productService.nameShort
279
279
  )));
280
280
  } else {
281
281
  const res = await dialogService.confirm({
282
282
  type: Severity.Info,
283
- message: ( localize(16205, "Extension Bisect")),
284
- primaryButton: ( localize(16207, "&&Report Issue & Continue")),
285
- cancelButton: ( localize(16208, "Continue")),
283
+ message: ( localize(16513, "Extension Bisect")),
284
+ primaryButton: ( localize(16515, "&&Report Issue & Continue")),
285
+ cancelButton: ( localize(16516, "Continue")),
286
286
  detail: ( localize(
287
- 16209,
287
+ 16517,
288
288
  "Extension Bisect is done and has identified {0} as the extension causing the problem.",
289
289
  done.id
290
290
  )),
291
291
  checkbox: {
292
- label: ( localize(16210, "Keep this extension disabled")),
292
+ label: ( localize(16518, "Keep this extension disabled")),
293
293
  checked: true
294
294
  }
295
295
  });
@@ -310,24 +310,24 @@ registerAction2(class extends Action2 {
310
310
  result
311
311
  } = await dialogService.prompt({
312
312
  type: Severity.Info,
313
- message: ( localize(16211, "Extension Bisect")),
313
+ message: ( localize(16519, "Extension Bisect")),
314
314
  detail: ( localize(
315
- 16212,
315
+ 16520,
316
316
  "Extension Bisect is active and has disabled {0} extensions. Check if you can still reproduce the problem and proceed by selecting from these options.",
317
317
  bisectService.disabledCount
318
318
  )),
319
319
  buttons: [{
320
- label: ( localize(16213, "I ca&&n't reproduce")),
320
+ label: ( localize(16521, "I ca&&n't reproduce")),
321
321
  run: () => false
322
322
  }, {
323
- label: ( localize(16214, "I can &&reproduce")),
323
+ label: ( localize(16522, "I can &&reproduce")),
324
324
  run: () => true
325
325
  }, {
326
- label: ( localize(16215, "&&Stop Bisect")),
326
+ label: ( localize(16523, "&&Stop Bisect")),
327
327
  run: () => undefined
328
328
  }],
329
329
  cancelButton: {
330
- label: ( localize(16216, "&&Cancel Bisect")),
330
+ label: ( localize(16524, "&&Cancel Bisect")),
331
331
  run: () => null
332
332
  }
333
333
  });
@@ -338,7 +338,7 @@ registerAction2(class extends Action2 {
338
338
  constructor() {
339
339
  super({
340
340
  id: "extension.bisect.stop",
341
- title: ( localize2(16217, "Stop Extension Bisect")),
341
+ title: ( localize2(16525, "Stop Extension Bisect")),
342
342
  category: Categories.Help,
343
343
  f1: true,
344
344
  precondition: ExtensionBisectUi.ctxIsBisectActive
@@ -768,7 +768,7 @@ let WebExtensionsScannerService = class WebExtensionsScannerService extends Disp
768
768
  }
769
769
  if (!this.extensionManifestPropertiesService.canExecuteOnWeb(manifest)) {
770
770
  throw ( new Error(( localize(
771
- 16232,
771
+ 16540,
772
772
  "Cannot add '{0}' because this extension is not a web extension.",
773
773
  manifest.displayName || manifest.name
774
774
  ))));
@@ -1049,7 +1049,7 @@ if (isWeb) {
1049
1049
  constructor() {
1050
1050
  super({
1051
1051
  id: "workbench.extensions.action.openInstalledWebExtensionsResource",
1052
- title: ( localize2(16233, "Open Installed Web Extensions Resource")),
1052
+ title: ( localize2(16541, "Open Installed Web Extensions Resource")),
1053
1053
  category: Categories.Developer,
1054
1054
  f1: true,
1055
1055
  precondition: IsWebContext