@codingame/monaco-vscode-configuration-service-override 37.6.1 → 38.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.
Files changed (18) hide show
  1. package/common.js +6 -0
  2. package/package.json +3 -3
  3. package/vscode/src/vs/sessions/services/configuration/browser/configurationService.js +12 -5
  4. package/vscode/src/vs/sessions/services/workspace/browser/workspaceContextService.js +2 -2
  5. package/vscode/src/vs/workbench/api/common/configurationExtensionPoint.js +62 -62
  6. package/vscode/src/vs/workbench/contrib/workspaces/browser/workspaces.contribution.js +15 -16
  7. package/vscode/src/vs/workbench/services/configuration/browser/configurationService.d.ts +4 -1
  8. package/vscode/src/vs/workbench/services/configuration/browser/configurationService.js +52 -11
  9. package/vscode/src/vs/workbench/services/configuration/common/configurationEditing.js +43 -43
  10. package/vscode/src/vs/workbench/services/configuration/common/experimentalSettings.d.ts +12 -0
  11. package/vscode/src/vs/workbench/services/configuration/common/experimentalSettings.js +40 -0
  12. package/vscode/src/vs/workbench/services/configuration/common/managedSettingsPresentation.d.ts +15 -0
  13. package/vscode/src/vs/workbench/services/configuration/common/managedSettingsPresentation.js +55 -0
  14. package/vscode/src/vs/workbench/services/configurationResolver/browser/baseConfigurationResolverService.d.ts +1 -1
  15. package/vscode/src/vs/workbench/services/configurationResolver/browser/baseConfigurationResolverService.js +7 -7
  16. package/vscode/src/vs/workbench/services/configurationResolver/browser/configurationResolverService.d.ts +1 -1
  17. package/vscode/src/vs/workbench/services/configurationResolver/browser/configurationResolverService.js +2 -1
  18. package/vscode/src/vs/workbench/services/workspaces/browser/abstractWorkspaceEditingService.js +4 -4
package/common.js CHANGED
@@ -11,6 +11,10 @@ import { SyncDescriptor } from '@codingame/monaco-vscode-api/vscode/vs/platform/
11
11
  import { Registry } from '@codingame/monaco-vscode-api/vscode/vs/platform/registry/common/platform';
12
12
  import { IUserDataProfilesService } from '@codingame/monaco-vscode-api/vscode/vs/platform/userDataProfile/common/userDataProfile.service';
13
13
  import { IWorkspacesService } from '@codingame/monaco-vscode-api/vscode/vs/platform/workspaces/common/workspaces.service';
14
+ import { ExperimentalSettingsService } from './vscode/src/vs/workbench/services/configuration/common/experimentalSettings.js';
15
+ import { IExperimentalSettingsService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/configuration/common/experimentalSettings.service';
16
+ import { ManagedSettingsPresentationService } from './vscode/src/vs/workbench/services/configuration/common/managedSettingsPresentation.js';
17
+ import { IManagedSettingsPresentationService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/configuration/common/managedSettingsPresentation.service';
14
18
  import { ConfigurationResolverService } from './vscode/src/vs/workbench/services/configurationResolver/browser/configurationResolverService.js';
15
19
  import { IConfigurationResolverService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/configurationResolver/common/configurationResolver.service';
16
20
  import { TextResourcePropertiesService } from './vscode/src/vs/workbench/services/textresourceProperties/common/textResourcePropertiesService.js';
@@ -51,6 +55,8 @@ const configurationRegistry = Registry.as(Extensions.Configuration);
51
55
  function getServiceOverride() {
52
56
  return {
53
57
  ...getServiceOverride$1(),
58
+ [IExperimentalSettingsService.toString()]: new SyncDescriptor(ExperimentalSettingsService, [], true),
59
+ [IManagedSettingsPresentationService.toString()]: new SyncDescriptor(ManagedSettingsPresentationService, [], true),
54
60
  [ITextResourceConfigurationService.toString()]: new SyncDescriptor(TextResourceConfigurationService, [], true),
55
61
  [IWorkspacesService.toString()]: new SyncDescriptor(BrowserWorkspacesService, [], true),
56
62
  [ITextResourcePropertiesService.toString()]: new SyncDescriptor(TextResourcePropertiesService, [], true),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codingame/monaco-vscode-configuration-service-override",
3
- "version": "37.6.1",
3
+ "version": "38.0.1",
4
4
  "private": false,
5
5
  "description": "VSCode public API plugged on the monaco editor - configuration service-override",
6
6
  "keywords": [],
@@ -15,8 +15,8 @@
15
15
  },
16
16
  "type": "module",
17
17
  "dependencies": {
18
- "@codingame/monaco-vscode-api": "37.6.1",
19
- "@codingame/monaco-vscode-files-service-override": "37.6.1"
18
+ "@codingame/monaco-vscode-api": "38.0.1",
19
+ "@codingame/monaco-vscode-files-service-override": "38.0.1"
20
20
  },
21
21
  "main": "index.js",
22
22
  "module": "index.js",
@@ -125,8 +125,8 @@ class ConfigurationService extends Disposable {
125
125
  id: workspace.id,
126
126
  configPath: workspace.configuration
127
127
  };
128
- const [defaultModel, policyModel, userModel] = await Promise.all([
129
- this.defaultConfiguration.initialize(),
128
+ await this.defaultConfiguration.initialize();
129
+ const [, userModel] = await Promise.all([
130
130
  this.policyConfiguration.initialize(),
131
131
  this.userConfiguration.initialize(),
132
132
  this.workspaceConfiguration.initialize(workspaceIdentifier, true)
@@ -134,13 +134,18 @@ class ConfigurationService extends Disposable {
134
134
  this.workspaceConfiguration.reparseWorkspaceSettings({
135
135
  exclude: [...this.agentsWindowReadOnlyKeys]
136
136
  });
137
+ const [defaultModel, policyModel, workspaceModel] = [
138
+ this.defaultConfiguration.configurationModel,
139
+ this.policyConfiguration.configurationModel,
140
+ this.workspaceConfiguration.getConfiguration()
141
+ ];
137
142
  this._configuration = ( new Configuration(
138
143
  defaultModel,
139
144
  policyModel,
140
145
  ConfigurationModel.createEmptyModel(this.logService),
141
146
  userModel,
142
147
  ConfigurationModel.createEmptyModel(this.logService),
143
- this.workspaceConfiguration.getConfiguration(),
148
+ workspaceModel,
144
149
  ( new ResourceMap()),
145
150
  ConfigurationModel.createEmptyModel(this.logService),
146
151
  ( new ResourceMap()),
@@ -205,7 +210,7 @@ class ConfigurationService extends Disposable {
205
210
  path = ["settings", ...path];
206
211
  }
207
212
  await this.configurationEditing.write(settingsResource, path, value);
208
- await this.reloadConfiguration();
213
+ await this.reloadConfiguration(target);
209
214
  }
210
215
  deriveConfigurationTargets(_key, value, inspect) {
211
216
  if (equals(value, inspect.value)) {
@@ -254,7 +259,9 @@ class ConfigurationService extends Disposable {
254
259
  return ( this._configuration.keys());
255
260
  }
256
261
  async reloadConfiguration(_target) {
257
- this.reloadDefaultConfiguration();
262
+ if (_target === undefined || _target === ConfigurationTarget.DEFAULT) {
263
+ this.reloadDefaultConfiguration();
264
+ }
258
265
  if (_target === ConfigurationTarget.DEFAULT) {
259
266
  return;
260
267
  }
@@ -25,7 +25,7 @@ class SessionsWorkspaceContextService extends Disposable {
25
25
  false,
26
26
  workspaceIdentifier.configPath,
27
27
  uri => uriIdentityService.extUri.ignorePathCasing(uri),
28
- ( localize(5035, "Agents Window"))
28
+ ( localize(6356, "Agents Window"))
29
29
  ));
30
30
  }
31
31
  getCompleteWorkspace() {
@@ -135,7 +135,7 @@ class SessionsWorkspaceContextService extends Disposable {
135
135
  }
136
136
  });
137
137
  await Promise.allSettled(joinPromises);
138
- const workspaceIdentifier = getWorkspaceIdentifier(this.workspace.configuration);
138
+ const workspaceIdentifier = getWorkspaceIdentifier(this.workspace.configuration, this.workspace.id);
139
139
  const workspace = ( new Workspace$1(
140
140
  workspaceIdentifier.id,
141
141
  newFolders,
@@ -28,28 +28,28 @@ const configurationEntrySchema = {
28
28
  properties: {
29
29
  title: {
30
30
  description: ( localize(
31
- 5203,
31
+ 6525,
32
32
  "A title for the current category of settings. This label will be rendered in the Settings editor as a subheading. If the title is the same as the extension display name, then the category will be grouped under the main extension heading."
33
33
  )),
34
34
  type: "string"
35
35
  },
36
36
  order: {
37
37
  description: ( localize(
38
- 5204,
38
+ 6526,
39
39
  "When specified, gives the order of this category of settings relative to other categories."
40
40
  )),
41
41
  type: "integer"
42
42
  },
43
43
  properties: {
44
- description: ( localize(5205, "Description of the configuration properties.")),
44
+ description: ( localize(6527, "Description of the configuration properties.")),
45
45
  type: "object",
46
46
  propertyNames: {
47
47
  pattern: "\\S+",
48
- patternErrorMessage: ( localize(5206, "Property should not be empty."))
48
+ patternErrorMessage: ( localize(6528, "Property should not be empty."))
49
49
  },
50
50
  additionalProperties: {
51
51
  anyOf: [{
52
- title: ( localize(5207, "Schema of the configuration property.")),
52
+ title: ( localize(6529, "Schema of the configuration property.")),
53
53
  $ref: "http://json-schema.org/draft-07/schema#"
54
54
  }, {
55
55
  type: "object",
@@ -65,24 +65,24 @@ const configurationEntrySchema = {
65
65
  "machine-overridable"
66
66
  ],
67
67
  default: "window",
68
- enumDescriptions: [( localize(5208, "Configuration that can be configured only in the user settings.")), ( localize(
69
- 5209,
68
+ enumDescriptions: [( localize(6530, "Configuration that can be configured only in the user settings.")), ( localize(
69
+ 6531,
70
70
  "Configuration that can be configured only in the user settings or only in the remote settings."
71
71
  )), ( localize(
72
- 5210,
72
+ 6532,
73
73
  "Configuration that can be configured in the user, remote or workspace settings."
74
74
  )), ( localize(
75
- 5211,
75
+ 6533,
76
76
  "Configuration that can be configured in the user, remote, workspace or folder settings."
77
77
  )), ( localize(
78
- 5212,
78
+ 6534,
79
79
  "Resource configuration that can be configured in language specific settings."
80
80
  )), ( localize(
81
- 5213,
81
+ 6535,
82
82
  "Machine configuration that can be configured also in workspace or folder settings."
83
83
  ))],
84
84
  markdownDescription: ( localize(
85
- 5214,
85
+ 6536,
86
86
  "Scope in which the configuration is applicable. Available scopes are `application`, `machine`, `window`, `resource`, and `machine-overridable`."
87
87
  ))
88
88
  },
@@ -91,14 +91,14 @@ const configurationEntrySchema = {
91
91
  items: {
92
92
  type: "string"
93
93
  },
94
- description: ( localize(5215, "Descriptions for enum values"))
94
+ description: ( localize(6537, "Descriptions for enum values"))
95
95
  },
96
96
  markdownEnumDescriptions: {
97
97
  type: "array",
98
98
  items: {
99
99
  type: "string"
100
100
  },
101
- description: ( localize(5216, "Descriptions for enum values in the markdown format."))
101
+ description: ( localize(6538, "Descriptions for enum values in the markdown format."))
102
102
  },
103
103
  enumItemLabels: {
104
104
  type: "array",
@@ -106,26 +106,26 @@ const configurationEntrySchema = {
106
106
  type: "string"
107
107
  },
108
108
  markdownDescription: ( localize(
109
- 5217,
109
+ 6539,
110
110
  "Labels for enum values to be displayed in the Settings editor. When specified, the {0} values still show after the labels, but less prominently.",
111
111
  "`enum`"
112
112
  ))
113
113
  },
114
114
  markdownDescription: {
115
115
  type: "string",
116
- description: ( localize(5218, "The description in the markdown format."))
116
+ description: ( localize(6540, "The description in the markdown format."))
117
117
  },
118
118
  deprecationMessage: {
119
119
  type: "string",
120
120
  description: ( localize(
121
- 5219,
121
+ 6541,
122
122
  "If set, the property is marked as deprecated and the given message is shown as an explanation."
123
123
  ))
124
124
  },
125
125
  markdownDeprecationMessage: {
126
126
  type: "string",
127
127
  description: ( localize(
128
- 5220,
128
+ 6542,
129
129
  "If set, the property is marked as deprecated and the given message is shown as an explanation in the markdown format."
130
130
  ))
131
131
  },
@@ -133,33 +133,33 @@ const configurationEntrySchema = {
133
133
  type: "string",
134
134
  enum: ["warning", "info"],
135
135
  enumDescriptions: [( localize(
136
- 5221,
136
+ 6543,
137
137
  "Shows the deprecation message using the standard warning treatment."
138
- )), ( localize(5222, "Shows the deprecation message using an informational treatment."))],
138
+ )), ( localize(6544, "Shows the deprecation message using an informational treatment."))],
139
139
  default: "warning",
140
- description: ( localize(5223, "Controls the severity used to display the deprecation message."))
140
+ description: ( localize(6545, "Controls the severity used to display the deprecation message."))
141
141
  },
142
142
  editPresentation: {
143
143
  type: "string",
144
144
  enum: ["singlelineText", "multilineText"],
145
- enumDescriptions: [( localize(5224, "The value will be shown in an inputbox.")), ( localize(5225, "The value will be shown in a textarea."))],
145
+ enumDescriptions: [( localize(6546, "The value will be shown in an inputbox.")), ( localize(6547, "The value will be shown in a textarea."))],
146
146
  default: "singlelineText",
147
147
  description: ( localize(
148
- 5226,
148
+ 6548,
149
149
  "When specified, controls the presentation format of the string setting."
150
150
  ))
151
151
  },
152
152
  order: {
153
153
  type: "integer",
154
154
  description: ( localize(
155
- 5227,
155
+ 6549,
156
156
  "When specified, gives the order of this setting relative to other settings within the same category. Settings with an order property will be placed before settings without this property set."
157
157
  ))
158
158
  },
159
159
  ignoreSync: {
160
160
  type: "boolean",
161
161
  description: ( localize(
162
- 5228,
162
+ 6550,
163
163
  "When enabled, Settings Sync will not sync the user value of this configuration by default."
164
164
  ))
165
165
  },
@@ -169,7 +169,7 @@ const configurationEntrySchema = {
169
169
  type: "string"
170
170
  },
171
171
  description: ( localize(
172
- 5229,
172
+ 6551,
173
173
  "A list of keywords that help users find this setting in the Settings editor. These are not shown to the user."
174
174
  ))
175
175
  },
@@ -184,37 +184,37 @@ const configurationEntrySchema = {
184
184
  "telemetry",
185
185
  "usesOnlineServices"
186
186
  ],
187
- enumDescriptions: [( localize(5230, "Accessibility settings")), ( localize(
188
- 5231,
187
+ enumDescriptions: [( localize(6552, "Accessibility settings")), ( localize(
188
+ 6553,
189
189
  "Advanced settings are hidden by default in the Settings editor unless the user chooses to show advanced settings."
190
190
  )), ( localize(
191
- 5232,
191
+ 6554,
192
192
  "Experimental settings are subject to change and may be removed in future releases."
193
193
  )), ( localize(
194
- 5233,
194
+ 6555,
195
195
  "Preview settings can be used to try out new features before they are finalized."
196
- )), ( localize(5234, "Telemetry settings")), ( localize(5235, "Settings that use online services"))]
196
+ )), ( localize(6556, "Telemetry settings")), ( localize(6557, "Settings that use online services"))]
197
197
  },
198
198
  additionalItems: true,
199
199
  markdownDescription: ( localize(
200
- 5236,
200
+ 6558,
201
201
  "A list of tags under which to place the setting. The tag can then be searched up in the Settings editor. For example, specifying the `experimental` tag allows one to find the setting by searching `@tag:experimental`."
202
202
  ))
203
203
  },
204
204
  agentsWindow: {
205
205
  type: "object",
206
206
  markdownDescription: ( localize(
207
- 5237,
207
+ 6559,
208
208
  "Configuration overrides for the Agents window. Allows specifying a different default value and read-only behavior for this setting when running in the Agents window.\n\n**Note**: This is a proposed API. To use it, extensions must include `agentsWindowConfiguration` in their `enabledApiProposals`."
209
209
  )),
210
210
  properties: {
211
211
  "default": {
212
- description: ( localize(5238, "The default value for this setting in the Agents window."))
212
+ description: ( localize(6560, "The default value for this setting in the Agents window."))
213
213
  },
214
214
  readOnly: {
215
215
  type: "boolean",
216
216
  description: ( localize(
217
- 5239,
217
+ 6561,
218
218
  "When true, this setting cannot be changed by the user in the Agents window."
219
219
  )),
220
220
  default: false
@@ -277,7 +277,7 @@ defaultConfigurationExtPoint.setHandler((
277
277
  const registeredPropertyScheme = registeredProperties[key];
278
278
  if (registeredPropertyScheme?.disallowConfigurationDefault) {
279
279
  extension.collector.warn(( localize(
280
- 5240,
280
+ 6562,
281
281
  "Cannot register configuration defaults for '{0}'. This setting does not allow contributing configuration defaults.",
282
282
  key
283
283
  )));
@@ -287,7 +287,7 @@ defaultConfigurationExtPoint.setHandler((
287
287
  if (!OVERRIDE_PROPERTY_REGEX.test(key)) {
288
288
  if (registeredPropertyScheme?.scope && !allowedScopes.includes(registeredPropertyScheme.scope)) {
289
289
  extension.collector.warn(( localize(
290
- 5241,
290
+ 6563,
291
291
  "Cannot register configuration defaults for '{0}'. Only defaults for machine-overridable, window, resource and language overridable scoped settings are supported.",
292
292
  key
293
293
  )));
@@ -311,7 +311,7 @@ const configurationExtPoint = ExtensionsRegistry.registerExtensionPoint({
311
311
  extensionPoint: "configuration",
312
312
  deps: [defaultConfigurationExtPoint],
313
313
  jsonSchema: {
314
- description: ( localize(5242, "Contributes configuration settings.")),
314
+ description: ( localize(6564, "Contributes configuration settings.")),
315
315
  oneOf: [configurationEntrySchema, {
316
316
  type: "array",
317
317
  items: configurationEntrySchema
@@ -340,7 +340,7 @@ configurationExtPoint.setHandler((
340
340
  function handleConfiguration(node, extension) {
341
341
  const configuration = deepClone(node);
342
342
  if (configuration.title && (typeof configuration.title !== "string")) {
343
- extension.collector.error(( localize(5243, "'configuration.title' must be a string")));
343
+ extension.collector.error(( localize(6565, "'configuration.title' must be a string")));
344
344
  }
345
345
  validateProperties(configuration, extension);
346
346
  configuration.id = node.id || extension.description.identifier.value;
@@ -357,7 +357,7 @@ configurationExtPoint.setHandler((
357
357
  const extensionConfigurationPolicy = product.extensionConfigurationPolicy;
358
358
  if (properties) {
359
359
  if (typeof properties !== "object") {
360
- extension.collector.error(( localize(5244, "'configuration.properties' must be an object")));
360
+ extension.collector.error(( localize(6566, "'configuration.properties' must be an object")));
361
361
  configuration.properties = {};
362
362
  }
363
363
  for (const key in properties) {
@@ -370,12 +370,12 @@ configurationExtPoint.setHandler((
370
370
  }
371
371
  if (( seenProperties.has(key)) && !( EXTENSION_UNIFICATION_EXTENSION_IDS.has(extension.description.identifier.value.toLowerCase()))) {
372
372
  delete properties[key];
373
- extension.collector.warn(( localize(5245, "Cannot register '{0}'. This property is already registered.", key)));
373
+ extension.collector.warn(( localize(6567, "Cannot register '{0}'. This property is already registered.", key)));
374
374
  continue;
375
375
  }
376
376
  if (!isObject(propertyConfiguration)) {
377
377
  delete properties[key];
378
- extension.collector.error(( localize(5246, "configuration.properties property '{0}' must be an object", key)));
378
+ extension.collector.error(( localize(6568, "configuration.properties property '{0}' must be an object", key)));
379
379
  continue;
380
380
  }
381
381
  const policyEntry = extensionConfigurationPolicy?.[key];
@@ -395,7 +395,7 @@ configurationExtPoint.setHandler((
395
395
  }
396
396
  if (propertyConfiguration.agentsWindow && !isProposedApiEnabled(extension.description, "agentsWindowConfiguration")) {
397
397
  extension.collector.error(( localize(
398
- 5247,
398
+ 6569,
399
399
  "Extension '{0}' CANNOT use 'agentsWindow' property on configuration '{1}' without enabling the 'agentsWindowConfiguration' API proposal.",
400
400
  extension.description.identifier.value,
401
401
  key
@@ -404,7 +404,7 @@ configurationExtPoint.setHandler((
404
404
  }
405
405
  if (propertyConfiguration.agentHost) {
406
406
  extension.collector.error(( localize(
407
- 5248,
407
+ 6570,
408
408
  "Extension '{0}' CANNOT use the 'agentHost' property on configuration '{1}'.",
409
409
  extension.description.identifier.value,
410
410
  key
@@ -418,7 +418,7 @@ configurationExtPoint.setHandler((
418
418
  const subNodes = configuration.allOf;
419
419
  if (subNodes) {
420
420
  extension.collector.error(( localize(
421
- 5249,
421
+ 6571,
422
422
  "'configuration.allOf' is deprecated and should no longer be used. Instead, pass multiple configuration sections as an array to the 'configuration' contribution point."
423
423
  )));
424
424
  for (const node of subNodes) {
@@ -458,7 +458,7 @@ jsonRegistry.registerSchema("vscode://schemas/workspaceConfig", {
458
458
  "folders": {
459
459
  minItems: 0,
460
460
  uniqueItems: true,
461
- description: ( localize(5250, "List of folders to be loaded in the workspace.")),
461
+ description: ( localize(6572, "List of folders to be loaded in the workspace.")),
462
462
  items: {
463
463
  type: "object",
464
464
  defaultSnippets: [{
@@ -471,13 +471,13 @@ jsonRegistry.registerSchema("vscode://schemas/workspaceConfig", {
471
471
  path: {
472
472
  type: "string",
473
473
  description: ( localize(
474
- 5251,
474
+ 6573,
475
475
  "A file path. e.g. `/root/folderA` or `./folderA` for a relative path that will be resolved against the location of the workspace file."
476
476
  ))
477
477
  },
478
478
  name: {
479
479
  type: "string",
480
- description: ( localize(5252, "An optional name for the folder. "))
480
+ description: ( localize(6574, "An optional name for the folder. "))
481
481
  }
482
482
  },
483
483
  required: ["path"]
@@ -485,11 +485,11 @@ jsonRegistry.registerSchema("vscode://schemas/workspaceConfig", {
485
485
  properties: {
486
486
  uri: {
487
487
  type: "string",
488
- description: ( localize(5253, "URI of the folder"))
488
+ description: ( localize(6575, "URI of the folder"))
489
489
  },
490
490
  name: {
491
491
  type: "string",
492
- description: ( localize(5252, "An optional name for the folder. "))
492
+ description: ( localize(6574, "An optional name for the folder. "))
493
493
  }
494
494
  },
495
495
  required: ["uri"]
@@ -499,7 +499,7 @@ jsonRegistry.registerSchema("vscode://schemas/workspaceConfig", {
499
499
  "settings": {
500
500
  type: "object",
501
501
  default: {},
502
- description: ( localize(5254, "Workspace settings")),
502
+ description: ( localize(6576, "Workspace settings")),
503
503
  allOf: [{
504
504
  $ref: workspaceSettingsSchemaId
505
505
  }, {
@@ -515,7 +515,7 @@ jsonRegistry.registerSchema("vscode://schemas/workspaceConfig", {
515
515
  }
516
516
  }
517
517
  },
518
- description: ( localize(5255, "Model Context Protocol server configurations")),
518
+ description: ( localize(6577, "Model Context Protocol server configurations")),
519
519
  $ref: mcpSchemaId
520
520
  }
521
521
  }
@@ -527,7 +527,7 @@ jsonRegistry.registerSchema("vscode://schemas/workspaceConfig", {
527
527
  configurations: [],
528
528
  compounds: []
529
529
  },
530
- description: ( localize(5256, "Workspace launch configurations")),
530
+ description: ( localize(6578, "Workspace launch configurations")),
531
531
  $ref: launchSchemaId
532
532
  },
533
533
  "tasks": {
@@ -536,27 +536,27 @@ jsonRegistry.registerSchema("vscode://schemas/workspaceConfig", {
536
536
  version: "2.0.0",
537
537
  tasks: []
538
538
  },
539
- description: ( localize(5257, "Workspace task configurations")),
539
+ description: ( localize(6579, "Workspace task configurations")),
540
540
  $ref: tasksSchemaId
541
541
  },
542
542
  "extensions": {
543
543
  type: "object",
544
544
  default: {},
545
- description: ( localize(5258, "Workspace extensions")),
545
+ description: ( localize(6580, "Workspace extensions")),
546
546
  $ref: "vscode://schemas/extensions"
547
547
  },
548
548
  "remoteAuthority": {
549
549
  type: "string",
550
550
  doNotSuggest: true,
551
- description: ( localize(5259, "The remote server where the workspace is located."))
551
+ description: ( localize(6581, "The remote server where the workspace is located."))
552
552
  },
553
553
  "transient": {
554
554
  type: "boolean",
555
555
  doNotSuggest: true,
556
- description: ( localize(5260, "A transient workspace will disappear when restarting or reloading."))
556
+ description: ( localize(6582, "A transient workspace will disappear when restarting or reloading."))
557
557
  }
558
558
  },
559
- errorMessage: ( localize(5261, "Unknown workspace configuration property"))
559
+ errorMessage: ( localize(6583, "Unknown workspace configuration property"))
560
560
  });
561
561
  class SettingsTableRenderer extends Disposable {
562
562
  constructor() {
@@ -570,7 +570,7 @@ class SettingsTableRenderer extends Disposable {
570
570
  const configuration = manifest.contributes?.configuration ? Array.isArray(manifest.contributes.configuration) ? manifest.contributes.configuration : [manifest.contributes.configuration] : [];
571
571
  const properties = getAllConfigurationProperties(configuration);
572
572
  const contrib = properties ? ( Object.keys(properties)) : [];
573
- const headers = [( localize(5262, "ID")), ( localize(5263, "Description")), ( localize(5264, "Default"))];
573
+ const headers = [( localize(6584, "ID")), ( localize(6585, "Description")), ( localize(6586, "Default"))];
574
574
  const rows = contrib.sort((a, b) => a.localeCompare(b)).map(key => {
575
575
  return [( new MarkdownString()).appendMarkdown(`\`${key}\``), properties[key].markdownDescription ? ( new MarkdownString(properties[key].markdownDescription, false)) : properties[key].description ?? "", ( new MarkdownString()).appendCodeblock("json", JSON.stringify(
576
576
  isUndefined(properties[key].default) ? getDefaultValue(properties[key].type) : properties[key].default,
@@ -589,7 +589,7 @@ class SettingsTableRenderer extends Disposable {
589
589
  }
590
590
  ( Registry.as(Extensions$2.ExtensionFeaturesRegistry)).registerExtensionFeature({
591
591
  id: "configuration",
592
- label: ( localize(5265, "Settings")),
592
+ label: ( localize(6587, "Settings")),
593
593
  access: {
594
594
  canToggle: false
595
595
  },
@@ -605,7 +605,7 @@ class ConfigurationDefaultsTableRenderer extends Disposable {
605
605
  }
606
606
  render(manifest) {
607
607
  const configurationDefaults = manifest.contributes?.configurationDefaults ?? {};
608
- const headers = [( localize(5266, "Languages")), ( localize(5267, "Setting")), ( localize(5268, "Override Value"))];
608
+ const headers = [( localize(6588, "Languages")), ( localize(6589, "Setting")), ( localize(6590, "Override Value"))];
609
609
  const rows = [];
610
610
  for (const key of ( Object.keys(configurationDefaults)).sort((a, b) => a.localeCompare(b))) {
611
611
  const value = configurationDefaults[key];
@@ -638,7 +638,7 @@ class ConfigurationDefaultsTableRenderer extends Disposable {
638
638
  }
639
639
  ( Registry.as(Extensions$2.ExtensionFeaturesRegistry)).registerExtensionFeature({
640
640
  id: "configurationDefaults",
641
- label: ( localize(5269, "Settings Default Overrides")),
641
+ label: ( localize(6591, "Settings Default Overrides")),
642
642
  access: {
643
643
  canToggle: false
644
644
  },
@@ -10,6 +10,7 @@ import { Disposable } from '@codingame/monaco-vscode-api/vscode/vs/base/common/l
10
10
  import { IFileService } from '@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service';
11
11
  import { NeverShowAgainScope, NotificationPriority } from '@codingame/monaco-vscode-api/vscode/vs/platform/notification/common/notification';
12
12
  import { INotificationService } from '@codingame/monaco-vscode-api/vscode/vs/platform/notification/common/notification.service';
13
+ import { NotificationText } from '@codingame/monaco-vscode-api/vscode/vs/platform/notification/common/notificationMessage';
13
14
  import { joinPath, isEqual } from '@codingame/monaco-vscode-api/vscode/vs/base/common/resources';
14
15
  import { IHostService } from '@codingame/monaco-vscode-api/vscode/vs/workbench/services/host/browser/host.service';
15
16
  import { IQuickInputService } from '@codingame/monaco-vscode-api/vscode/vs/platform/quickinput/common/quickInput.service';
@@ -60,15 +61,14 @@ let WorkspacesFinderContribution = class WorkspacesFinderContribution extends Di
60
61
  scope: NeverShowAgainScope.WORKSPACE,
61
62
  isSecondary: true
62
63
  };
64
+ const learnMoreLink = NotificationText.link(( localize(24089, "Learn more")), "https://go.microsoft.com/fwlink/?linkid=2025315");
63
65
  if (workspaces.length === 1) {
64
66
  const workspaceFile = workspaces[0];
65
- this.notificationService.prompt(Severity.Info, ( localize(
66
- 21519,
67
- "This folder contains a workspace file '{0}'. Do you want to open it? [Learn more]({1}) about workspace files.",
68
- workspaceFile,
69
- "https://go.microsoft.com/fwlink/?linkid=2025315"
70
- )), [{
71
- label: ( localize(21520, "Open Workspace")),
67
+ this.notificationService.prompt(Severity.Info, NotificationText.format(( localize(
68
+ 24090,
69
+ "This folder contains a workspace file '{0}'. Do you want to open it? {1} about workspace files."
70
+ )), workspaceFile, learnMoreLink), [{
71
+ label: ( localize(24091, "Open Workspace")),
72
72
  run: () => this.hostService.openWindow([{
73
73
  workspaceUri: joinPath(folder, workspaceFile)
74
74
  }])
@@ -78,17 +78,16 @@ let WorkspacesFinderContribution = class WorkspacesFinderContribution extends Di
78
78
  });
79
79
  }
80
80
  else if (workspaces.length > 1) {
81
- this.notificationService.prompt(Severity.Info, ( localize(
82
- 21521,
83
- "This folder contains multiple workspace files. Do you want to open one? [Learn more]({0}) about workspace files.",
84
- "https://go.microsoft.com/fwlink/?linkid=2025315"
85
- )), [{
86
- label: ( localize(21522, "Select Workspace")),
81
+ this.notificationService.prompt(Severity.Info, NotificationText.format(( localize(
82
+ 24092,
83
+ "This folder contains multiple workspace files. Do you want to open one? {0} about workspace files."
84
+ )), learnMoreLink), [{
85
+ label: ( localize(24093, "Select Workspace")),
87
86
  run: () => {
88
87
  this.quickInputService.pick(workspaces.map(workspace => ({
89
88
  label: workspace
90
89
  })), {
91
- placeHolder: ( localize(21523, "Select a workspace to open"))
90
+ placeHolder: ( localize(24094, "Select a workspace to open"))
92
91
  }).then(pick => {
93
92
  if (pick) {
94
93
  this.hostService.openWindow([{
@@ -110,7 +109,7 @@ registerAction2(class extends Action2 {
110
109
  constructor() {
111
110
  super({
112
111
  id: "workbench.action.openWorkspaceFromEditor",
113
- title: ( localize2(21520, "Open Workspace")),
112
+ title: ( localize2(24091, "Open Workspace")),
114
113
  f1: false,
115
114
  menu: {
116
115
  id: MenuId.EditorContent,
@@ -125,7 +124,7 @@ registerAction2(class extends Action2 {
125
124
  if (contextService.getWorkbenchState() === WorkbenchState.WORKSPACE) {
126
125
  const workspaceConfiguration = contextService.getWorkspace().configuration;
127
126
  if (workspaceConfiguration && isEqual(workspaceConfiguration, uri)) {
128
- notificationService.info(( localize(21524, "This workspace is already open.")));
127
+ notificationService.info(( localize(24095, "This workspace is already open.")));
129
128
  return;
130
129
  }
131
130
  }
@@ -21,6 +21,7 @@ import { IUserDataProfileService } from "@codingame/monaco-vscode-api/vscode/vs/
21
21
  import { IPolicyService } from "@codingame/monaco-vscode-api/vscode/vs/platform/policy/common/policy.service";
22
22
  import { IUserDataProfilesService } from "@codingame/monaco-vscode-api/vscode/vs/platform/userDataProfile/common/userDataProfile.service";
23
23
  import { IBrowserWorkbenchEnvironmentService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/environment/browser/environmentService.service";
24
+ import { IExperimentalSettingsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/configuration/common/experimentalSettings.service";
24
25
  declare class Workspace extends BaseWorkspace {
25
26
  initialized: boolean;
26
27
  }
@@ -166,14 +167,16 @@ export declare class ConfigurationDefaultOverridesContribution extends Disposabl
166
167
  private readonly configurationService;
167
168
  private readonly environmentService;
168
169
  private readonly logService;
170
+ private readonly experimentalSettingsService;
169
171
  static readonly ID = "workbench.contrib.configurationDefaultOverridesContribution";
170
172
  private readonly processedExperimentalSettings;
171
173
  private readonly autoExperimentalSettings;
172
174
  private readonly pendingStartupExperimentalSettings;
173
175
  private readonly registeredExperimentalDefaults;
176
+ private readonly assignmentRequests;
174
177
  private readonly configurationRegistry;
175
178
  private readonly throttler;
176
- constructor(workbenchAssignmentService: IWorkbenchAssignmentService, extensionService: IExtensionService, configurationService: WorkspaceService, environmentService: IWorkbenchEnvironmentService, logService: ILogService);
179
+ constructor(workbenchAssignmentService: IWorkbenchAssignmentService, extensionService: IExtensionService, configurationService: WorkspaceService, environmentService: IWorkbenchEnvironmentService, logService: ILogService, experimentalSettingsService: IExperimentalSettingsService);
177
180
  private updateDefaults;
178
181
  private processExperimentalSettings;
179
182
  private shouldOverride;