@codingame/monaco-vscode-configuration-service-override 32.0.2 → 33.0.5
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/package.json +3 -3
- package/vscode/src/vs/workbench/api/common/configurationExtensionPoint.js +58 -58
- package/vscode/src/vs/workbench/contrib/workspaces/browser/workspaces.contribution.js +7 -7
- package/vscode/src/vs/workbench/services/configuration/browser/configurationService.js +2 -2
- package/vscode/src/vs/workbench/services/configuration/common/configurationEditing.js +43 -43
- package/vscode/src/vs/workbench/services/configurationResolver/browser/baseConfigurationResolverService.js +7 -7
- package/vscode/src/vs/workbench/services/workspaces/browser/abstractWorkspaceEditingService.js +4 -4
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codingame/monaco-vscode-configuration-service-override",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "33.0.5",
|
|
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": "
|
|
19
|
-
"@codingame/monaco-vscode-files-service-override": "
|
|
18
|
+
"@codingame/monaco-vscode-api": "33.0.5",
|
|
19
|
+
"@codingame/monaco-vscode-files-service-override": "33.0.5"
|
|
20
20
|
},
|
|
21
21
|
"main": "index.js",
|
|
22
22
|
"module": "index.js",
|
|
@@ -28,28 +28,28 @@ const configurationEntrySchema = {
|
|
|
28
28
|
properties: {
|
|
29
29
|
title: {
|
|
30
30
|
description: ( localize(
|
|
31
|
-
|
|
31
|
+
2738,
|
|
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
|
-
|
|
38
|
+
2739,
|
|
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(
|
|
44
|
+
description: ( localize(2740, "Description of the configuration properties.")),
|
|
45
45
|
type: "object",
|
|
46
46
|
propertyNames: {
|
|
47
47
|
pattern: "\\S+",
|
|
48
|
-
patternErrorMessage: ( localize(
|
|
48
|
+
patternErrorMessage: ( localize(2741, "Property should not be empty."))
|
|
49
49
|
},
|
|
50
50
|
additionalProperties: {
|
|
51
51
|
anyOf: [{
|
|
52
|
-
title: ( localize(
|
|
52
|
+
title: ( localize(2742, "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(
|
|
69
|
-
|
|
68
|
+
enumDescriptions: [( localize(2743, "Configuration that can be configured only in the user settings.")), ( localize(
|
|
69
|
+
2744,
|
|
70
70
|
"Configuration that can be configured only in the user settings or only in the remote settings."
|
|
71
71
|
)), ( localize(
|
|
72
|
-
|
|
72
|
+
2745,
|
|
73
73
|
"Configuration that can be configured in the user, remote or workspace settings."
|
|
74
74
|
)), ( localize(
|
|
75
|
-
|
|
75
|
+
2746,
|
|
76
76
|
"Configuration that can be configured in the user, remote, workspace or folder settings."
|
|
77
77
|
)), ( localize(
|
|
78
|
-
|
|
78
|
+
2747,
|
|
79
79
|
"Resource configuration that can be configured in language specific settings."
|
|
80
80
|
)), ( localize(
|
|
81
|
-
|
|
81
|
+
2748,
|
|
82
82
|
"Machine configuration that can be configured also in workspace or folder settings."
|
|
83
83
|
))],
|
|
84
84
|
markdownDescription: ( localize(
|
|
85
|
-
|
|
85
|
+
2749,
|
|
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(
|
|
94
|
+
description: ( localize(2750, "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(
|
|
101
|
+
description: ( localize(2751, "Descriptions for enum values in the markdown format."))
|
|
102
102
|
},
|
|
103
103
|
enumItemLabels: {
|
|
104
104
|
type: "array",
|
|
@@ -106,50 +106,50 @@ const configurationEntrySchema = {
|
|
|
106
106
|
type: "string"
|
|
107
107
|
},
|
|
108
108
|
markdownDescription: ( localize(
|
|
109
|
-
|
|
109
|
+
2752,
|
|
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(
|
|
116
|
+
description: ( localize(2753, "The description in the markdown format."))
|
|
117
117
|
},
|
|
118
118
|
deprecationMessage: {
|
|
119
119
|
type: "string",
|
|
120
120
|
description: ( localize(
|
|
121
|
-
|
|
121
|
+
2754,
|
|
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
|
-
|
|
128
|
+
2755,
|
|
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
|
},
|
|
132
132
|
editPresentation: {
|
|
133
133
|
type: "string",
|
|
134
134
|
enum: ["singlelineText", "multilineText"],
|
|
135
|
-
enumDescriptions: [( localize(
|
|
135
|
+
enumDescriptions: [( localize(2756, "The value will be shown in an inputbox.")), ( localize(2757, "The value will be shown in a textarea."))],
|
|
136
136
|
default: "singlelineText",
|
|
137
137
|
description: ( localize(
|
|
138
|
-
|
|
138
|
+
2758,
|
|
139
139
|
"When specified, controls the presentation format of the string setting."
|
|
140
140
|
))
|
|
141
141
|
},
|
|
142
142
|
order: {
|
|
143
143
|
type: "integer",
|
|
144
144
|
description: ( localize(
|
|
145
|
-
|
|
145
|
+
2759,
|
|
146
146
|
"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."
|
|
147
147
|
))
|
|
148
148
|
},
|
|
149
149
|
ignoreSync: {
|
|
150
150
|
type: "boolean",
|
|
151
151
|
description: ( localize(
|
|
152
|
-
|
|
152
|
+
2760,
|
|
153
153
|
"When enabled, Settings Sync will not sync the user value of this configuration by default."
|
|
154
154
|
))
|
|
155
155
|
},
|
|
@@ -159,7 +159,7 @@ const configurationEntrySchema = {
|
|
|
159
159
|
type: "string"
|
|
160
160
|
},
|
|
161
161
|
description: ( localize(
|
|
162
|
-
|
|
162
|
+
2761,
|
|
163
163
|
"A list of keywords that help users find this setting in the Settings editor. These are not shown to the user."
|
|
164
164
|
))
|
|
165
165
|
},
|
|
@@ -174,37 +174,37 @@ const configurationEntrySchema = {
|
|
|
174
174
|
"telemetry",
|
|
175
175
|
"usesOnlineServices"
|
|
176
176
|
],
|
|
177
|
-
enumDescriptions: [( localize(
|
|
178
|
-
|
|
177
|
+
enumDescriptions: [( localize(2762, "Accessibility settings")), ( localize(
|
|
178
|
+
2763,
|
|
179
179
|
"Advanced settings are hidden by default in the Settings editor unless the user chooses to show advanced settings."
|
|
180
180
|
)), ( localize(
|
|
181
|
-
|
|
181
|
+
2764,
|
|
182
182
|
"Experimental settings are subject to change and may be removed in future releases."
|
|
183
183
|
)), ( localize(
|
|
184
|
-
|
|
184
|
+
2765,
|
|
185
185
|
"Preview settings can be used to try out new features before they are finalized."
|
|
186
|
-
)), ( localize(
|
|
186
|
+
)), ( localize(2766, "Telemetry settings")), ( localize(2767, "Settings that use online services"))]
|
|
187
187
|
},
|
|
188
188
|
additionalItems: true,
|
|
189
189
|
markdownDescription: ( localize(
|
|
190
|
-
|
|
190
|
+
2768,
|
|
191
191
|
"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`."
|
|
192
192
|
))
|
|
193
193
|
},
|
|
194
194
|
agentsWindow: {
|
|
195
195
|
type: "object",
|
|
196
196
|
markdownDescription: ( localize(
|
|
197
|
-
|
|
197
|
+
2769,
|
|
198
198
|
"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`."
|
|
199
199
|
)),
|
|
200
200
|
properties: {
|
|
201
201
|
"default": {
|
|
202
|
-
description: ( localize(
|
|
202
|
+
description: ( localize(2770, "The default value for this setting in the Agents window."))
|
|
203
203
|
},
|
|
204
204
|
readOnly: {
|
|
205
205
|
type: "boolean",
|
|
206
206
|
description: ( localize(
|
|
207
|
-
|
|
207
|
+
2771,
|
|
208
208
|
"When true, this setting cannot be changed by the user in the Agents window."
|
|
209
209
|
)),
|
|
210
210
|
default: false
|
|
@@ -267,7 +267,7 @@ defaultConfigurationExtPoint.setHandler((
|
|
|
267
267
|
const registeredPropertyScheme = registeredProperties[key];
|
|
268
268
|
if (registeredPropertyScheme?.disallowConfigurationDefault) {
|
|
269
269
|
extension.collector.warn(( localize(
|
|
270
|
-
|
|
270
|
+
2772,
|
|
271
271
|
"Cannot register configuration defaults for '{0}'. This setting does not allow contributing configuration defaults.",
|
|
272
272
|
key
|
|
273
273
|
)));
|
|
@@ -277,7 +277,7 @@ defaultConfigurationExtPoint.setHandler((
|
|
|
277
277
|
if (!OVERRIDE_PROPERTY_REGEX.test(key)) {
|
|
278
278
|
if (registeredPropertyScheme?.scope && !allowedScopes.includes(registeredPropertyScheme.scope)) {
|
|
279
279
|
extension.collector.warn(( localize(
|
|
280
|
-
|
|
280
|
+
2773,
|
|
281
281
|
"Cannot register configuration defaults for '{0}'. Only defaults for machine-overridable, window, resource and language overridable scoped settings are supported.",
|
|
282
282
|
key
|
|
283
283
|
)));
|
|
@@ -301,7 +301,7 @@ const configurationExtPoint = ExtensionsRegistry.registerExtensionPoint({
|
|
|
301
301
|
extensionPoint: "configuration",
|
|
302
302
|
deps: [defaultConfigurationExtPoint],
|
|
303
303
|
jsonSchema: {
|
|
304
|
-
description: ( localize(
|
|
304
|
+
description: ( localize(2774, "Contributes configuration settings.")),
|
|
305
305
|
oneOf: [configurationEntrySchema, {
|
|
306
306
|
type: "array",
|
|
307
307
|
items: configurationEntrySchema
|
|
@@ -330,7 +330,7 @@ configurationExtPoint.setHandler((
|
|
|
330
330
|
function handleConfiguration(node, extension) {
|
|
331
331
|
const configuration = deepClone(node);
|
|
332
332
|
if (configuration.title && (typeof configuration.title !== "string")) {
|
|
333
|
-
extension.collector.error(( localize(
|
|
333
|
+
extension.collector.error(( localize(2775, "'configuration.title' must be a string")));
|
|
334
334
|
}
|
|
335
335
|
validateProperties(configuration, extension);
|
|
336
336
|
configuration.id = node.id || extension.description.identifier.value;
|
|
@@ -347,7 +347,7 @@ configurationExtPoint.setHandler((
|
|
|
347
347
|
const extensionConfigurationPolicy = product.extensionConfigurationPolicy;
|
|
348
348
|
if (properties) {
|
|
349
349
|
if (typeof properties !== "object") {
|
|
350
|
-
extension.collector.error(( localize(
|
|
350
|
+
extension.collector.error(( localize(2776, "'configuration.properties' must be an object")));
|
|
351
351
|
configuration.properties = {};
|
|
352
352
|
}
|
|
353
353
|
for (const key in properties) {
|
|
@@ -360,12 +360,12 @@ configurationExtPoint.setHandler((
|
|
|
360
360
|
}
|
|
361
361
|
if (( seenProperties.has(key)) && !( EXTENSION_UNIFICATION_EXTENSION_IDS.has(extension.description.identifier.value.toLowerCase()))) {
|
|
362
362
|
delete properties[key];
|
|
363
|
-
extension.collector.warn(( localize(
|
|
363
|
+
extension.collector.warn(( localize(2777, "Cannot register '{0}'. This property is already registered.", key)));
|
|
364
364
|
continue;
|
|
365
365
|
}
|
|
366
366
|
if (!isObject(propertyConfiguration)) {
|
|
367
367
|
delete properties[key];
|
|
368
|
-
extension.collector.error(( localize(
|
|
368
|
+
extension.collector.error(( localize(2778, "configuration.properties property '{0}' must be an object", key)));
|
|
369
369
|
continue;
|
|
370
370
|
}
|
|
371
371
|
if (extensionConfigurationPolicy?.[key]) {
|
|
@@ -378,7 +378,7 @@ configurationExtPoint.setHandler((
|
|
|
378
378
|
}
|
|
379
379
|
if (propertyConfiguration.agentsWindow && !isProposedApiEnabled(extension.description)) {
|
|
380
380
|
extension.collector.error(( localize(
|
|
381
|
-
|
|
381
|
+
2779,
|
|
382
382
|
"Extension '{0}' CANNOT use 'agentsWindow' property on configuration '{1}' without enabling the 'agentsWindowConfiguration' API proposal.",
|
|
383
383
|
extension.description.identifier.value,
|
|
384
384
|
key
|
|
@@ -392,7 +392,7 @@ configurationExtPoint.setHandler((
|
|
|
392
392
|
const subNodes = configuration.allOf;
|
|
393
393
|
if (subNodes) {
|
|
394
394
|
extension.collector.error(( localize(
|
|
395
|
-
|
|
395
|
+
2780,
|
|
396
396
|
"'configuration.allOf' is deprecated and should no longer be used. Instead, pass multiple configuration sections as an array to the 'configuration' contribution point."
|
|
397
397
|
)));
|
|
398
398
|
for (const node of subNodes) {
|
|
@@ -432,7 +432,7 @@ jsonRegistry.registerSchema("vscode://schemas/workspaceConfig", {
|
|
|
432
432
|
"folders": {
|
|
433
433
|
minItems: 0,
|
|
434
434
|
uniqueItems: true,
|
|
435
|
-
description: ( localize(
|
|
435
|
+
description: ( localize(2781, "List of folders to be loaded in the workspace.")),
|
|
436
436
|
items: {
|
|
437
437
|
type: "object",
|
|
438
438
|
defaultSnippets: [{
|
|
@@ -445,13 +445,13 @@ jsonRegistry.registerSchema("vscode://schemas/workspaceConfig", {
|
|
|
445
445
|
path: {
|
|
446
446
|
type: "string",
|
|
447
447
|
description: ( localize(
|
|
448
|
-
|
|
448
|
+
2782,
|
|
449
449
|
"A file path. e.g. `/root/folderA` or `./folderA` for a relative path that will be resolved against the location of the workspace file."
|
|
450
450
|
))
|
|
451
451
|
},
|
|
452
452
|
name: {
|
|
453
453
|
type: "string",
|
|
454
|
-
description: ( localize(
|
|
454
|
+
description: ( localize(2783, "An optional name for the folder. "))
|
|
455
455
|
}
|
|
456
456
|
},
|
|
457
457
|
required: ["path"]
|
|
@@ -459,11 +459,11 @@ jsonRegistry.registerSchema("vscode://schemas/workspaceConfig", {
|
|
|
459
459
|
properties: {
|
|
460
460
|
uri: {
|
|
461
461
|
type: "string",
|
|
462
|
-
description: ( localize(
|
|
462
|
+
description: ( localize(2784, "URI of the folder"))
|
|
463
463
|
},
|
|
464
464
|
name: {
|
|
465
465
|
type: "string",
|
|
466
|
-
description: ( localize(
|
|
466
|
+
description: ( localize(2783, "An optional name for the folder. "))
|
|
467
467
|
}
|
|
468
468
|
},
|
|
469
469
|
required: ["uri"]
|
|
@@ -473,7 +473,7 @@ jsonRegistry.registerSchema("vscode://schemas/workspaceConfig", {
|
|
|
473
473
|
"settings": {
|
|
474
474
|
type: "object",
|
|
475
475
|
default: {},
|
|
476
|
-
description: ( localize(
|
|
476
|
+
description: ( localize(2785, "Workspace settings")),
|
|
477
477
|
$ref: workspaceSettingsSchemaId
|
|
478
478
|
},
|
|
479
479
|
"launch": {
|
|
@@ -482,7 +482,7 @@ jsonRegistry.registerSchema("vscode://schemas/workspaceConfig", {
|
|
|
482
482
|
configurations: [],
|
|
483
483
|
compounds: []
|
|
484
484
|
},
|
|
485
|
-
description: ( localize(
|
|
485
|
+
description: ( localize(2786, "Workspace launch configurations")),
|
|
486
486
|
$ref: launchSchemaId
|
|
487
487
|
},
|
|
488
488
|
"tasks": {
|
|
@@ -491,7 +491,7 @@ jsonRegistry.registerSchema("vscode://schemas/workspaceConfig", {
|
|
|
491
491
|
version: "2.0.0",
|
|
492
492
|
tasks: []
|
|
493
493
|
},
|
|
494
|
-
description: ( localize(
|
|
494
|
+
description: ( localize(2787, "Workspace task configurations")),
|
|
495
495
|
$ref: tasksSchemaId
|
|
496
496
|
},
|
|
497
497
|
"mcp": {
|
|
@@ -505,27 +505,27 @@ jsonRegistry.registerSchema("vscode://schemas/workspaceConfig", {
|
|
|
505
505
|
}
|
|
506
506
|
}
|
|
507
507
|
},
|
|
508
|
-
description: ( localize(
|
|
508
|
+
description: ( localize(2788, "Model Context Protocol server configurations")),
|
|
509
509
|
$ref: mcpSchemaId
|
|
510
510
|
},
|
|
511
511
|
"extensions": {
|
|
512
512
|
type: "object",
|
|
513
513
|
default: {},
|
|
514
|
-
description: ( localize(
|
|
514
|
+
description: ( localize(2789, "Workspace extensions")),
|
|
515
515
|
$ref: "vscode://schemas/extensions"
|
|
516
516
|
},
|
|
517
517
|
"remoteAuthority": {
|
|
518
518
|
type: "string",
|
|
519
519
|
doNotSuggest: true,
|
|
520
|
-
description: ( localize(
|
|
520
|
+
description: ( localize(2790, "The remote server where the workspace is located."))
|
|
521
521
|
},
|
|
522
522
|
"transient": {
|
|
523
523
|
type: "boolean",
|
|
524
524
|
doNotSuggest: true,
|
|
525
|
-
description: ( localize(
|
|
525
|
+
description: ( localize(2791, "A transient workspace will disappear when restarting or reloading."))
|
|
526
526
|
}
|
|
527
527
|
},
|
|
528
|
-
errorMessage: ( localize(
|
|
528
|
+
errorMessage: ( localize(2792, "Unknown workspace configuration property"))
|
|
529
529
|
});
|
|
530
530
|
class SettingsTableRenderer extends Disposable {
|
|
531
531
|
constructor() {
|
|
@@ -539,7 +539,7 @@ class SettingsTableRenderer extends Disposable {
|
|
|
539
539
|
const configuration = manifest.contributes?.configuration ? Array.isArray(manifest.contributes.configuration) ? manifest.contributes.configuration : [manifest.contributes.configuration] : [];
|
|
540
540
|
const properties = getAllConfigurationProperties(configuration);
|
|
541
541
|
const contrib = properties ? ( Object.keys(properties)) : [];
|
|
542
|
-
const headers = [( localize(
|
|
542
|
+
const headers = [( localize(2793, "ID")), ( localize(2794, "Description")), ( localize(2795, "Default"))];
|
|
543
543
|
const rows = ( contrib.sort((a, b) => a.localeCompare(b)).map(key => {
|
|
544
544
|
return [( new MarkdownString()).appendMarkdown(`\`${key}\``), properties[key].markdownDescription ? ( new MarkdownString(properties[key].markdownDescription, false)) : properties[key].description ?? "", ( new MarkdownString()).appendCodeblock("json", JSON.stringify(
|
|
545
545
|
isUndefined(properties[key].default) ? getDefaultValue(properties[key].type) : properties[key].default,
|
|
@@ -558,7 +558,7 @@ class SettingsTableRenderer extends Disposable {
|
|
|
558
558
|
}
|
|
559
559
|
( Registry.as(Extensions$2.ExtensionFeaturesRegistry)).registerExtensionFeature({
|
|
560
560
|
id: "configuration",
|
|
561
|
-
label: ( localize(
|
|
561
|
+
label: ( localize(2796, "Settings")),
|
|
562
562
|
access: {
|
|
563
563
|
canToggle: false
|
|
564
564
|
},
|
|
@@ -574,7 +574,7 @@ class ConfigurationDefaultsTableRenderer extends Disposable {
|
|
|
574
574
|
}
|
|
575
575
|
render(manifest) {
|
|
576
576
|
const configurationDefaults = manifest.contributes?.configurationDefaults ?? {};
|
|
577
|
-
const headers = [( localize(
|
|
577
|
+
const headers = [( localize(2797, "Languages")), ( localize(2798, "Setting")), ( localize(2799, "Override Value"))];
|
|
578
578
|
const rows = [];
|
|
579
579
|
for (const key of ( Object.keys(configurationDefaults)).sort((a, b) => a.localeCompare(b))) {
|
|
580
580
|
const value = configurationDefaults[key];
|
|
@@ -607,7 +607,7 @@ class ConfigurationDefaultsTableRenderer extends Disposable {
|
|
|
607
607
|
}
|
|
608
608
|
( Registry.as(Extensions$2.ExtensionFeaturesRegistry)).registerExtensionFeature({
|
|
609
609
|
id: "configurationDefaults",
|
|
610
|
-
label: ( localize(
|
|
610
|
+
label: ( localize(2800, "Settings Default Overrides")),
|
|
611
611
|
access: {
|
|
612
612
|
canToggle: false
|
|
613
613
|
},
|
|
@@ -62,12 +62,12 @@ let WorkspacesFinderContribution = class WorkspacesFinderContribution extends Di
|
|
|
62
62
|
if (workspaces.length === 1) {
|
|
63
63
|
const workspaceFile = workspaces[0];
|
|
64
64
|
this.notificationService.prompt(Severity.Info, ( localize(
|
|
65
|
-
|
|
65
|
+
16329,
|
|
66
66
|
"This folder contains a workspace file '{0}'. Do you want to open it? [Learn more]({1}) about workspace files.",
|
|
67
67
|
workspaceFile,
|
|
68
68
|
"https://go.microsoft.com/fwlink/?linkid=2025315"
|
|
69
69
|
)), [{
|
|
70
|
-
label: ( localize(
|
|
70
|
+
label: ( localize(16330, "Open Workspace")),
|
|
71
71
|
run: () => this.hostService.openWindow([{
|
|
72
72
|
workspaceUri: joinPath(folder, workspaceFile)
|
|
73
73
|
}])
|
|
@@ -78,16 +78,16 @@ let WorkspacesFinderContribution = class WorkspacesFinderContribution extends Di
|
|
|
78
78
|
}
|
|
79
79
|
else if (workspaces.length > 1) {
|
|
80
80
|
this.notificationService.prompt(Severity.Info, ( localize(
|
|
81
|
-
|
|
81
|
+
16331,
|
|
82
82
|
"This folder contains multiple workspace files. Do you want to open one? [Learn more]({0}) about workspace files.",
|
|
83
83
|
"https://go.microsoft.com/fwlink/?linkid=2025315"
|
|
84
84
|
)), [{
|
|
85
|
-
label: ( localize(
|
|
85
|
+
label: ( localize(16332, "Select Workspace")),
|
|
86
86
|
run: () => {
|
|
87
87
|
this.quickInputService.pick(( workspaces.map(workspace => ({
|
|
88
88
|
label: workspace
|
|
89
89
|
}))), {
|
|
90
|
-
placeHolder: ( localize(
|
|
90
|
+
placeHolder: ( localize(16333, "Select a workspace to open"))
|
|
91
91
|
}).then(pick => {
|
|
92
92
|
if (pick) {
|
|
93
93
|
this.hostService.openWindow([{
|
|
@@ -109,7 +109,7 @@ registerAction2(class extends Action2 {
|
|
|
109
109
|
constructor() {
|
|
110
110
|
super({
|
|
111
111
|
id: "workbench.action.openWorkspaceFromEditor",
|
|
112
|
-
title: ( localize2(
|
|
112
|
+
title: ( localize2(16330, "Open Workspace")),
|
|
113
113
|
f1: false,
|
|
114
114
|
menu: {
|
|
115
115
|
id: MenuId.EditorContent,
|
|
@@ -124,7 +124,7 @@ registerAction2(class extends Action2 {
|
|
|
124
124
|
if (contextService.getWorkbenchState() === WorkbenchState.WORKSPACE) {
|
|
125
125
|
const workspaceConfiguration = contextService.getWorkspace().configuration;
|
|
126
126
|
if (workspaceConfiguration && isEqual(workspaceConfiguration, uri)) {
|
|
127
|
-
notificationService.info(( localize(
|
|
127
|
+
notificationService.info(( localize(16334, "This workspace is already open.")));
|
|
128
128
|
return;
|
|
129
129
|
}
|
|
130
130
|
}
|
|
@@ -1334,7 +1334,7 @@ let RegisterConfigurationSchemasContribution = class RegisterConfigurationSchema
|
|
|
1334
1334
|
} : workspaceSettingsSchema;
|
|
1335
1335
|
const configDefaultsSchema = {
|
|
1336
1336
|
type: "object",
|
|
1337
|
-
description: ( localize(
|
|
1337
|
+
description: ( localize(16523, "Contribute defaults for configurations")),
|
|
1338
1338
|
properties: Object.assign(
|
|
1339
1339
|
{},
|
|
1340
1340
|
this.filterDefaultOverridableProperties(machineOverridableSettings.properties),
|
|
@@ -1484,7 +1484,7 @@ configurationRegistry.registerConfiguration({
|
|
|
1484
1484
|
properties: {
|
|
1485
1485
|
[APPLY_ALL_PROFILES_SETTING]: {
|
|
1486
1486
|
"type": "array",
|
|
1487
|
-
description: ( localize(
|
|
1487
|
+
description: ( localize(16524, "Configure settings to be applied for all profiles.")),
|
|
1488
1488
|
"default": [],
|
|
1489
1489
|
"scope": ConfigurationScope.APPLICATION,
|
|
1490
1490
|
additionalProperties: true,
|
|
@@ -163,7 +163,7 @@ let ConfigurationEditing = class ConfigurationEditing {
|
|
|
163
163
|
);
|
|
164
164
|
}
|
|
165
165
|
throw ( new ConfigurationEditingError(( localize(
|
|
166
|
-
|
|
166
|
+
16525,
|
|
167
167
|
"Error while writing to {0}. {1}",
|
|
168
168
|
this.stringifyTarget(operation.target),
|
|
169
169
|
error.message
|
|
@@ -244,7 +244,7 @@ let ConfigurationEditing = class ConfigurationEditing {
|
|
|
244
244
|
}
|
|
245
245
|
}
|
|
246
246
|
onInvalidConfigurationError(error, operation) {
|
|
247
|
-
const openStandAloneConfigurationActionLabel = operation.workspaceStandAloneConfigurationKey === TASKS_CONFIGURATION_KEY ? ( localize(
|
|
247
|
+
const openStandAloneConfigurationActionLabel = operation.workspaceStandAloneConfigurationKey === TASKS_CONFIGURATION_KEY ? ( localize(16526, "Open Tasks Configuration")) : operation.workspaceStandAloneConfigurationKey === LAUNCH_CONFIGURATION_KEY ? ( localize(16527, "Open Launch Configuration")) : operation.workspaceStandAloneConfigurationKey === MCP_CONFIGURATION_KEY ? ( localize(16528, "Open MCP Configuration")) : null;
|
|
248
248
|
if (openStandAloneConfigurationActionLabel) {
|
|
249
249
|
this.notificationService.prompt(Severity.Error, error.message, [{
|
|
250
250
|
label: openStandAloneConfigurationActionLabel,
|
|
@@ -252,16 +252,16 @@ let ConfigurationEditing = class ConfigurationEditing {
|
|
|
252
252
|
}]);
|
|
253
253
|
} else {
|
|
254
254
|
this.notificationService.prompt(Severity.Error, error.message, [{
|
|
255
|
-
label: ( localize(
|
|
255
|
+
label: ( localize(16529, "Open Settings")),
|
|
256
256
|
run: () => this.openSettings(operation)
|
|
257
257
|
}]);
|
|
258
258
|
}
|
|
259
259
|
}
|
|
260
260
|
onConfigurationFileDirtyError(error, operation, scopes) {
|
|
261
|
-
const openStandAloneConfigurationActionLabel = operation.workspaceStandAloneConfigurationKey === TASKS_CONFIGURATION_KEY ? ( localize(
|
|
261
|
+
const openStandAloneConfigurationActionLabel = operation.workspaceStandAloneConfigurationKey === TASKS_CONFIGURATION_KEY ? ( localize(16526, "Open Tasks Configuration")) : operation.workspaceStandAloneConfigurationKey === LAUNCH_CONFIGURATION_KEY ? ( localize(16527, "Open Launch Configuration")) : null;
|
|
262
262
|
if (openStandAloneConfigurationActionLabel) {
|
|
263
263
|
this.notificationService.prompt(Severity.Error, error.message, [{
|
|
264
|
-
label: ( localize(
|
|
264
|
+
label: ( localize(16530, "Save and Retry")),
|
|
265
265
|
run: () => {
|
|
266
266
|
const key = operation.key ? `${operation.workspaceStandAloneConfigurationKey}.${operation.key}` : operation.workspaceStandAloneConfigurationKey;
|
|
267
267
|
this.writeConfiguration(operation.target, {
|
|
@@ -278,7 +278,7 @@ let ConfigurationEditing = class ConfigurationEditing {
|
|
|
278
278
|
}]);
|
|
279
279
|
} else {
|
|
280
280
|
this.notificationService.prompt(Severity.Error, error.message, [{
|
|
281
|
-
label: ( localize(
|
|
281
|
+
label: ( localize(16530, "Save and Retry")),
|
|
282
282
|
run: () => this.writeConfiguration(operation.target, {
|
|
283
283
|
key: operation.key,
|
|
284
284
|
value: operation.value
|
|
@@ -287,7 +287,7 @@ let ConfigurationEditing = class ConfigurationEditing {
|
|
|
287
287
|
scopes
|
|
288
288
|
})
|
|
289
289
|
}, {
|
|
290
|
-
label: ( localize(
|
|
290
|
+
label: ( localize(16529, "Open Settings")),
|
|
291
291
|
run: () => this.openSettings(operation)
|
|
292
292
|
}]);
|
|
293
293
|
}
|
|
@@ -335,61 +335,61 @@ let ConfigurationEditing = class ConfigurationEditing {
|
|
|
335
335
|
switch (error) {
|
|
336
336
|
case ConfigurationEditingErrorCode.ERROR_POLICY_CONFIGURATION:
|
|
337
337
|
return localize(
|
|
338
|
-
|
|
338
|
+
16531,
|
|
339
339
|
"Unable to write {0} because it is configured in system policy.",
|
|
340
340
|
operation.key
|
|
341
341
|
);
|
|
342
342
|
case ConfigurationEditingErrorCode.ERROR_UNKNOWN_KEY:
|
|
343
343
|
return localize(
|
|
344
|
-
|
|
344
|
+
16532,
|
|
345
345
|
"Unable to write to {0} because {1} is not a registered configuration.",
|
|
346
346
|
this.stringifyTarget(target),
|
|
347
347
|
operation.key
|
|
348
348
|
);
|
|
349
349
|
case ConfigurationEditingErrorCode.ERROR_INVALID_WORKSPACE_CONFIGURATION_APPLICATION:
|
|
350
350
|
return localize(
|
|
351
|
-
|
|
351
|
+
16533,
|
|
352
352
|
"Unable to write {0} to Workspace Settings. This setting can be written only into User settings.",
|
|
353
353
|
operation.key
|
|
354
354
|
);
|
|
355
355
|
case ConfigurationEditingErrorCode.ERROR_INVALID_WORKSPACE_CONFIGURATION_MACHINE:
|
|
356
356
|
return localize(
|
|
357
|
-
|
|
357
|
+
16534,
|
|
358
358
|
"Unable to write {0} to Workspace Settings. This setting can be written only into User settings.",
|
|
359
359
|
operation.key
|
|
360
360
|
);
|
|
361
361
|
case ConfigurationEditingErrorCode.ERROR_INVALID_FOLDER_CONFIGURATION:
|
|
362
362
|
return localize(
|
|
363
|
-
|
|
363
|
+
16535,
|
|
364
364
|
"Unable to write to Folder Settings because {0} does not support the folder resource scope.",
|
|
365
365
|
operation.key
|
|
366
366
|
);
|
|
367
367
|
case ConfigurationEditingErrorCode.ERROR_INVALID_USER_TARGET:
|
|
368
368
|
return localize(
|
|
369
|
-
|
|
369
|
+
16536,
|
|
370
370
|
"Unable to write to User Settings because {0} does not support for global scope.",
|
|
371
371
|
operation.key
|
|
372
372
|
);
|
|
373
373
|
case ConfigurationEditingErrorCode.ERROR_INVALID_WORKSPACE_TARGET:
|
|
374
374
|
return localize(
|
|
375
|
-
|
|
375
|
+
16537,
|
|
376
376
|
"Unable to write to Workspace Settings because {0} does not support for workspace scope in a multi folder workspace.",
|
|
377
377
|
operation.key
|
|
378
378
|
);
|
|
379
379
|
case ConfigurationEditingErrorCode.ERROR_INVALID_FOLDER_TARGET:
|
|
380
380
|
return localize(
|
|
381
|
-
|
|
381
|
+
16538,
|
|
382
382
|
"Unable to write to Folder Settings because no resource is provided."
|
|
383
383
|
);
|
|
384
384
|
case ConfigurationEditingErrorCode.ERROR_INVALID_RESOURCE_LANGUAGE_CONFIGURATION:
|
|
385
385
|
return localize(
|
|
386
|
-
|
|
386
|
+
16539,
|
|
387
387
|
"Unable to write to Language Settings because {0} is not a resource language setting.",
|
|
388
388
|
operation.key
|
|
389
389
|
);
|
|
390
390
|
case ConfigurationEditingErrorCode.ERROR_NO_WORKSPACE_OPENED:
|
|
391
391
|
return localize(
|
|
392
|
-
|
|
392
|
+
16540,
|
|
393
393
|
"Unable to write to {0} because no workspace is opened. Please open a workspace first and try again.",
|
|
394
394
|
this.stringifyTarget(target)
|
|
395
395
|
);
|
|
@@ -397,36 +397,36 @@ let ConfigurationEditing = class ConfigurationEditing {
|
|
|
397
397
|
{
|
|
398
398
|
if (operation.workspaceStandAloneConfigurationKey === TASKS_CONFIGURATION_KEY) {
|
|
399
399
|
return localize(
|
|
400
|
-
|
|
400
|
+
16541,
|
|
401
401
|
"Unable to write into the tasks configuration file. Please open it to correct errors/warnings in it and try again."
|
|
402
402
|
);
|
|
403
403
|
}
|
|
404
404
|
if (operation.workspaceStandAloneConfigurationKey === LAUNCH_CONFIGURATION_KEY) {
|
|
405
405
|
return localize(
|
|
406
|
-
|
|
406
|
+
16542,
|
|
407
407
|
"Unable to write into the launch configuration file. Please open it to correct errors/warnings in it and try again."
|
|
408
408
|
);
|
|
409
409
|
}
|
|
410
410
|
if (operation.workspaceStandAloneConfigurationKey === MCP_CONFIGURATION_KEY) {
|
|
411
411
|
return localize(
|
|
412
|
-
|
|
412
|
+
16543,
|
|
413
413
|
"Unable to write into the MCP configuration file. Please open it to correct errors/warnings in it and try again."
|
|
414
414
|
);
|
|
415
415
|
}
|
|
416
416
|
switch (target) {
|
|
417
417
|
case EditableConfigurationTarget.USER_LOCAL:
|
|
418
418
|
return localize(
|
|
419
|
-
|
|
419
|
+
16544,
|
|
420
420
|
"Unable to write into user settings. Please open the user settings to correct errors/warnings in it and try again."
|
|
421
421
|
);
|
|
422
422
|
case EditableConfigurationTarget.USER_REMOTE:
|
|
423
423
|
return localize(
|
|
424
|
-
|
|
424
|
+
16545,
|
|
425
425
|
"Unable to write into remote user settings. Please open the remote user settings to correct errors/warnings in it and try again."
|
|
426
426
|
);
|
|
427
427
|
case EditableConfigurationTarget.WORKSPACE:
|
|
428
428
|
return localize(
|
|
429
|
-
|
|
429
|
+
16546,
|
|
430
430
|
"Unable to write into workspace settings. Please open the workspace settings to correct errors/warnings in the file and try again."
|
|
431
431
|
);
|
|
432
432
|
case EditableConfigurationTarget.WORKSPACE_FOLDER:
|
|
@@ -439,7 +439,7 @@ let ConfigurationEditing = class ConfigurationEditing {
|
|
|
439
439
|
}
|
|
440
440
|
}
|
|
441
441
|
return localize(
|
|
442
|
-
|
|
442
|
+
16547,
|
|
443
443
|
"Unable to write into folder settings. Please open the '{0}' folder settings to correct errors/warnings in it and try again.",
|
|
444
444
|
workspaceFolderName
|
|
445
445
|
);
|
|
@@ -452,36 +452,36 @@ let ConfigurationEditing = class ConfigurationEditing {
|
|
|
452
452
|
{
|
|
453
453
|
if (operation.workspaceStandAloneConfigurationKey === TASKS_CONFIGURATION_KEY) {
|
|
454
454
|
return localize(
|
|
455
|
-
|
|
455
|
+
16548,
|
|
456
456
|
"Unable to write into tasks configuration file because the file has unsaved changes. Please save it first and then try again."
|
|
457
457
|
);
|
|
458
458
|
}
|
|
459
459
|
if (operation.workspaceStandAloneConfigurationKey === LAUNCH_CONFIGURATION_KEY) {
|
|
460
460
|
return localize(
|
|
461
|
-
|
|
461
|
+
16549,
|
|
462
462
|
"Unable to write into launch configuration file because the file has unsaved changes. Please save it first and then try again."
|
|
463
463
|
);
|
|
464
464
|
}
|
|
465
465
|
if (operation.workspaceStandAloneConfigurationKey === MCP_CONFIGURATION_KEY) {
|
|
466
466
|
return localize(
|
|
467
|
-
|
|
467
|
+
16550,
|
|
468
468
|
"Unable to write into MCP configuration file because the file has unsaved changes. Please save it first and then try again."
|
|
469
469
|
);
|
|
470
470
|
}
|
|
471
471
|
switch (target) {
|
|
472
472
|
case EditableConfigurationTarget.USER_LOCAL:
|
|
473
473
|
return localize(
|
|
474
|
-
|
|
474
|
+
16551,
|
|
475
475
|
"Unable to write into user settings because the file has unsaved changes. Please save the user settings file first and then try again."
|
|
476
476
|
);
|
|
477
477
|
case EditableConfigurationTarget.USER_REMOTE:
|
|
478
478
|
return localize(
|
|
479
|
-
|
|
479
|
+
16552,
|
|
480
480
|
"Unable to write into remote user settings because the file has unsaved changes. Please save the remote user settings file first and then try again."
|
|
481
481
|
);
|
|
482
482
|
case EditableConfigurationTarget.WORKSPACE:
|
|
483
483
|
return localize(
|
|
484
|
-
|
|
484
|
+
16553,
|
|
485
485
|
"Unable to write into workspace settings because the file has unsaved changes. Please save the workspace settings file first and then try again."
|
|
486
486
|
);
|
|
487
487
|
case EditableConfigurationTarget.WORKSPACE_FOLDER:
|
|
@@ -494,7 +494,7 @@ let ConfigurationEditing = class ConfigurationEditing {
|
|
|
494
494
|
}
|
|
495
495
|
}
|
|
496
496
|
return localize(
|
|
497
|
-
|
|
497
|
+
16554,
|
|
498
498
|
"Unable to write into folder settings because the file has unsaved changes. Please save the '{0}' folder settings file first and then try again.",
|
|
499
499
|
workspaceFolderName
|
|
500
500
|
);
|
|
@@ -506,47 +506,47 @@ let ConfigurationEditing = class ConfigurationEditing {
|
|
|
506
506
|
case ConfigurationEditingErrorCode.ERROR_CONFIGURATION_FILE_MODIFIED_SINCE:
|
|
507
507
|
if (operation.workspaceStandAloneConfigurationKey === TASKS_CONFIGURATION_KEY) {
|
|
508
508
|
return localize(
|
|
509
|
-
|
|
509
|
+
16555,
|
|
510
510
|
"Unable to write into tasks configuration file because the content of the file is newer."
|
|
511
511
|
);
|
|
512
512
|
}
|
|
513
513
|
if (operation.workspaceStandAloneConfigurationKey === LAUNCH_CONFIGURATION_KEY) {
|
|
514
514
|
return localize(
|
|
515
|
-
|
|
515
|
+
16556,
|
|
516
516
|
"Unable to write into launch configuration file because the content of the file is newer."
|
|
517
517
|
);
|
|
518
518
|
}
|
|
519
519
|
if (operation.workspaceStandAloneConfigurationKey === MCP_CONFIGURATION_KEY) {
|
|
520
520
|
return localize(
|
|
521
|
-
|
|
521
|
+
16557,
|
|
522
522
|
"Unable to write into MCP configuration file because the content of the file is newer."
|
|
523
523
|
);
|
|
524
524
|
}
|
|
525
525
|
switch (target) {
|
|
526
526
|
case EditableConfigurationTarget.USER_LOCAL:
|
|
527
527
|
return localize(
|
|
528
|
-
|
|
528
|
+
16558,
|
|
529
529
|
"Unable to write into user settings because the content of the file is newer."
|
|
530
530
|
);
|
|
531
531
|
case EditableConfigurationTarget.USER_REMOTE:
|
|
532
532
|
return localize(
|
|
533
|
-
|
|
533
|
+
16559,
|
|
534
534
|
"Unable to write into remote user settings because the content of the file is newer."
|
|
535
535
|
);
|
|
536
536
|
case EditableConfigurationTarget.WORKSPACE:
|
|
537
537
|
return localize(
|
|
538
|
-
|
|
538
|
+
16560,
|
|
539
539
|
"Unable to write into workspace settings because the content of the file is newer."
|
|
540
540
|
);
|
|
541
541
|
case EditableConfigurationTarget.WORKSPACE_FOLDER:
|
|
542
542
|
return localize(
|
|
543
|
-
|
|
543
|
+
16561,
|
|
544
544
|
"Unable to write into folder settings because the content of the file is newer."
|
|
545
545
|
);
|
|
546
546
|
}
|
|
547
547
|
case ConfigurationEditingErrorCode.ERROR_INTERNAL:
|
|
548
548
|
return localize(
|
|
549
|
-
|
|
549
|
+
16562,
|
|
550
550
|
"Unable to write to {0} because of an internal error.",
|
|
551
551
|
this.stringifyTarget(target)
|
|
552
552
|
);
|
|
@@ -555,13 +555,13 @@ let ConfigurationEditing = class ConfigurationEditing {
|
|
|
555
555
|
stringifyTarget(target) {
|
|
556
556
|
switch (target) {
|
|
557
557
|
case EditableConfigurationTarget.USER_LOCAL:
|
|
558
|
-
return localize(
|
|
558
|
+
return localize(16563, "User Settings");
|
|
559
559
|
case EditableConfigurationTarget.USER_REMOTE:
|
|
560
|
-
return localize(
|
|
560
|
+
return localize(16564, "Remote User Settings");
|
|
561
561
|
case EditableConfigurationTarget.WORKSPACE:
|
|
562
|
-
return localize(
|
|
562
|
+
return localize(16565, "Workspace Settings");
|
|
563
563
|
case EditableConfigurationTarget.WORKSPACE_FOLDER:
|
|
564
|
-
return localize(
|
|
564
|
+
return localize(16566, "Folder Settings");
|
|
565
565
|
default:
|
|
566
566
|
return "";
|
|
567
567
|
}
|
|
@@ -150,7 +150,7 @@ class BaseConfigurationResolverService extends AbstractVariableResolverService {
|
|
|
150
150
|
if (!isUndefinedOrNull(value)) {
|
|
151
151
|
if (typeof value !== "string") {
|
|
152
152
|
throw ( new VariableError(VariableKind.Command, ( localize(
|
|
153
|
-
|
|
153
|
+
16568,
|
|
154
154
|
"Cannot substitute command variable '{0}' because command did not return a result of type string.",
|
|
155
155
|
commandId
|
|
156
156
|
))));
|
|
@@ -250,7 +250,7 @@ class BaseConfigurationResolverService extends AbstractVariableResolverService {
|
|
|
250
250
|
async showUserInput(section, variable, inputInfos, variableToCommandMap) {
|
|
251
251
|
if (!inputInfos) {
|
|
252
252
|
throw ( new VariableError(VariableKind.Input, ( localize(
|
|
253
|
-
|
|
253
|
+
16569,
|
|
254
254
|
"Variable '{0}' must be defined in an '{1}' section of the debug or task configuration.",
|
|
255
255
|
variable,
|
|
256
256
|
"inputs"
|
|
@@ -260,7 +260,7 @@ class BaseConfigurationResolverService extends AbstractVariableResolverService {
|
|
|
260
260
|
if (info) {
|
|
261
261
|
const missingAttribute = attrName => {
|
|
262
262
|
throw ( new VariableError(VariableKind.Input, ( localize(
|
|
263
|
-
|
|
263
|
+
16570,
|
|
264
264
|
"Input variable '{0}' is of type '{1}' and must include '{2}'.",
|
|
265
265
|
variable,
|
|
266
266
|
info.type,
|
|
@@ -318,7 +318,7 @@ class BaseConfigurationResolverService extends AbstractVariableResolverService {
|
|
|
318
318
|
};
|
|
319
319
|
const topValue = variableToCommandMap?.[`input:${variable}`] ?? previousPickedValue ?? info.default;
|
|
320
320
|
if (value === info.default) {
|
|
321
|
-
item.description = ( localize(
|
|
321
|
+
item.description = ( localize(16571, "(Default)"));
|
|
322
322
|
picks.unshift(item);
|
|
323
323
|
} else if (value === topValue) {
|
|
324
324
|
picks.unshift(item);
|
|
@@ -356,7 +356,7 @@ class BaseConfigurationResolverService extends AbstractVariableResolverService {
|
|
|
356
356
|
};
|
|
357
357
|
}
|
|
358
358
|
throw ( new VariableError(VariableKind.Input, ( localize(
|
|
359
|
-
|
|
359
|
+
16572,
|
|
360
360
|
"Cannot substitute input variable '{0}' because command '{1}' did not return a result of type string.",
|
|
361
361
|
variable,
|
|
362
362
|
info.command
|
|
@@ -365,14 +365,14 @@ class BaseConfigurationResolverService extends AbstractVariableResolverService {
|
|
|
365
365
|
}
|
|
366
366
|
default:
|
|
367
367
|
throw ( new VariableError(VariableKind.Input, ( localize(
|
|
368
|
-
|
|
368
|
+
16573,
|
|
369
369
|
"Input variable '{0}' can only be of type 'promptString', 'pickString', or 'command'.",
|
|
370
370
|
variable
|
|
371
371
|
))));
|
|
372
372
|
}
|
|
373
373
|
}
|
|
374
374
|
throw ( new VariableError(VariableKind.Input, ( localize(
|
|
375
|
-
|
|
375
|
+
16574,
|
|
376
376
|
"Undefined input variable '{0}' encountered. Remove or define '{0}' to continue.",
|
|
377
377
|
variable
|
|
378
378
|
))));
|
package/vscode/src/vs/workbench/services/workspaces/browser/abstractWorkspaceEditingService.js
CHANGED
|
@@ -92,8 +92,8 @@ let AbstractWorkspaceEditingService = class AbstractWorkspaceEditingService exte
|
|
|
92
92
|
availableFileSystems.unshift(Schemas.vscodeRemote);
|
|
93
93
|
}
|
|
94
94
|
let workspacePath = await this.fileDialogService.showSaveDialog({
|
|
95
|
-
saveLabel: ( localize(
|
|
96
|
-
title: ( localize(
|
|
95
|
+
saveLabel: ( localize(17441, "Save")),
|
|
96
|
+
title: ( localize(17442, "Save Workspace")),
|
|
97
97
|
filters: WORKSPACE_FILTER,
|
|
98
98
|
defaultUri: joinPath(
|
|
99
99
|
await this.fileDialogService.defaultWorkspacePath(),
|
|
@@ -323,14 +323,14 @@ let AbstractWorkspaceEditingService = class AbstractWorkspaceEditingService exte
|
|
|
323
323
|
}
|
|
324
324
|
onInvalidWorkspaceConfigurationFileError() {
|
|
325
325
|
const message = ( localize(
|
|
326
|
-
|
|
326
|
+
17443,
|
|
327
327
|
"Unable to write into workspace configuration file. Please open the file to correct errors/warnings in it and try again."
|
|
328
328
|
));
|
|
329
329
|
this.askToOpenWorkspaceConfigurationFile(message);
|
|
330
330
|
}
|
|
331
331
|
askToOpenWorkspaceConfigurationFile(message) {
|
|
332
332
|
this.notificationService.prompt(Severity.Error, message, [{
|
|
333
|
-
label: ( localize(
|
|
333
|
+
label: ( localize(17444, "Open Workspace Configuration")),
|
|
334
334
|
run: () => this.commandService.executeCommand("workbench.action.openWorkspaceConfigFile")
|
|
335
335
|
}]);
|
|
336
336
|
}
|