@codingame/monaco-vscode-configuration-service-override 10.1.4 → 11.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -3
- package/vscode/src/vs/workbench/api/common/configurationExtensionPoint.js +45 -45
- package/vscode/src/vs/workbench/contrib/workspaces/browser/workspaces.contribution.js +7 -7
- package/vscode/src/vs/workbench/services/configuration/browser/configuration.js +1 -1
- package/vscode/src/vs/workbench/services/configuration/browser/configurationService.js +4 -3
- package/vscode/src/vs/workbench/services/configuration/common/configurationEditing.js +42 -42
- 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": "11.0.1",
|
|
4
4
|
"keywords": [],
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "CodinGame",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
}
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"vscode": "npm:@codingame/monaco-vscode-api@
|
|
30
|
-
"@codingame/monaco-vscode-files-service-override": "
|
|
29
|
+
"vscode": "npm:@codingame/monaco-vscode-api@11.0.1",
|
|
30
|
+
"@codingame/monaco-vscode-files-service-override": "11.0.1"
|
|
31
31
|
}
|
|
32
32
|
}
|
|
@@ -20,29 +20,29 @@ const configurationEntrySchema = {
|
|
|
20
20
|
properties: {
|
|
21
21
|
title: {
|
|
22
22
|
description: ( localize(
|
|
23
|
-
|
|
23
|
+
3627,
|
|
24
24
|
'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.'
|
|
25
25
|
)),
|
|
26
26
|
type: 'string'
|
|
27
27
|
},
|
|
28
28
|
order: {
|
|
29
29
|
description: ( localize(
|
|
30
|
-
|
|
30
|
+
3628,
|
|
31
31
|
'When specified, gives the order of this category of settings relative to other categories.'
|
|
32
32
|
)),
|
|
33
33
|
type: 'integer'
|
|
34
34
|
},
|
|
35
35
|
properties: {
|
|
36
|
-
description: ( localize(
|
|
36
|
+
description: ( localize(3629, 'Description of the configuration properties.')),
|
|
37
37
|
type: 'object',
|
|
38
38
|
propertyNames: {
|
|
39
39
|
pattern: '\\S+',
|
|
40
|
-
patternErrorMessage: ( localize(
|
|
40
|
+
patternErrorMessage: ( localize(3630, 'Property should not be empty.')),
|
|
41
41
|
},
|
|
42
42
|
additionalProperties: {
|
|
43
43
|
anyOf: [
|
|
44
44
|
{
|
|
45
|
-
title: ( localize(
|
|
45
|
+
title: ( localize(3631, 'Schema of the configuration property.')),
|
|
46
46
|
$ref: 'http://json-schema.org/draft-07/schema#'
|
|
47
47
|
},
|
|
48
48
|
{
|
|
@@ -53,30 +53,30 @@ const configurationEntrySchema = {
|
|
|
53
53
|
enum: ['application', 'machine', 'window', 'resource', 'language-overridable', 'machine-overridable'],
|
|
54
54
|
default: 'window',
|
|
55
55
|
enumDescriptions: [
|
|
56
|
-
( localize(
|
|
56
|
+
( localize(3632, "Configuration that can be configured only in the user settings.")),
|
|
57
57
|
( localize(
|
|
58
|
-
|
|
58
|
+
3633,
|
|
59
59
|
"Configuration that can be configured only in the user settings or only in the remote settings."
|
|
60
60
|
)),
|
|
61
61
|
( localize(
|
|
62
|
-
|
|
62
|
+
3634,
|
|
63
63
|
"Configuration that can be configured in the user, remote or workspace settings."
|
|
64
64
|
)),
|
|
65
65
|
( localize(
|
|
66
|
-
|
|
66
|
+
3635,
|
|
67
67
|
"Configuration that can be configured in the user, remote, workspace or folder settings."
|
|
68
68
|
)),
|
|
69
69
|
( localize(
|
|
70
|
-
|
|
70
|
+
3636,
|
|
71
71
|
"Resource configuration that can be configured in language specific settings."
|
|
72
72
|
)),
|
|
73
73
|
( localize(
|
|
74
|
-
|
|
74
|
+
3637,
|
|
75
75
|
"Machine configuration that can be configured also in workspace or folder settings."
|
|
76
76
|
))
|
|
77
77
|
],
|
|
78
78
|
markdownDescription: ( localize(
|
|
79
|
-
|
|
79
|
+
3638,
|
|
80
80
|
"Scope in which the configuration is applicable. Available scopes are `application`, `machine`, `window`, `resource`, and `machine-overridable`."
|
|
81
81
|
))
|
|
82
82
|
},
|
|
@@ -85,14 +85,14 @@ const configurationEntrySchema = {
|
|
|
85
85
|
items: {
|
|
86
86
|
type: 'string',
|
|
87
87
|
},
|
|
88
|
-
description: ( localize(
|
|
88
|
+
description: ( localize(3639, 'Descriptions for enum values'))
|
|
89
89
|
},
|
|
90
90
|
markdownEnumDescriptions: {
|
|
91
91
|
type: 'array',
|
|
92
92
|
items: {
|
|
93
93
|
type: 'string',
|
|
94
94
|
},
|
|
95
|
-
description: ( localize(
|
|
95
|
+
description: ( localize(3640, 'Descriptions for enum values in the markdown format.'))
|
|
96
96
|
},
|
|
97
97
|
enumItemLabels: {
|
|
98
98
|
type: 'array',
|
|
@@ -100,26 +100,26 @@ const configurationEntrySchema = {
|
|
|
100
100
|
type: 'string'
|
|
101
101
|
},
|
|
102
102
|
markdownDescription: ( localize(
|
|
103
|
-
|
|
103
|
+
3641,
|
|
104
104
|
'Labels for enum values to be displayed in the Settings editor. When specified, the {0} values still show after the labels, but less prominently.',
|
|
105
105
|
'`enum`'
|
|
106
106
|
))
|
|
107
107
|
},
|
|
108
108
|
markdownDescription: {
|
|
109
109
|
type: 'string',
|
|
110
|
-
description: ( localize(
|
|
110
|
+
description: ( localize(3642, 'The description in the markdown format.'))
|
|
111
111
|
},
|
|
112
112
|
deprecationMessage: {
|
|
113
113
|
type: 'string',
|
|
114
114
|
description: ( localize(
|
|
115
|
-
|
|
115
|
+
3643,
|
|
116
116
|
'If set, the property is marked as deprecated and the given message is shown as an explanation.'
|
|
117
117
|
))
|
|
118
118
|
},
|
|
119
119
|
markdownDeprecationMessage: {
|
|
120
120
|
type: 'string',
|
|
121
121
|
description: ( localize(
|
|
122
|
-
|
|
122
|
+
3644,
|
|
123
123
|
'If set, the property is marked as deprecated and the given message is shown as an explanation in the markdown format.'
|
|
124
124
|
))
|
|
125
125
|
},
|
|
@@ -127,26 +127,26 @@ const configurationEntrySchema = {
|
|
|
127
127
|
type: 'string',
|
|
128
128
|
enum: ['singlelineText', 'multilineText'],
|
|
129
129
|
enumDescriptions: [
|
|
130
|
-
( localize(
|
|
131
|
-
( localize(
|
|
130
|
+
( localize(3645, 'The value will be shown in an inputbox.')),
|
|
131
|
+
( localize(3646, 'The value will be shown in a textarea.'))
|
|
132
132
|
],
|
|
133
133
|
default: 'singlelineText',
|
|
134
134
|
description: ( localize(
|
|
135
|
-
|
|
135
|
+
3647,
|
|
136
136
|
'When specified, controls the presentation format of the string setting.'
|
|
137
137
|
))
|
|
138
138
|
},
|
|
139
139
|
order: {
|
|
140
140
|
type: 'integer',
|
|
141
141
|
description: ( localize(
|
|
142
|
-
|
|
142
|
+
3648,
|
|
143
143
|
'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.'
|
|
144
144
|
))
|
|
145
145
|
},
|
|
146
146
|
ignoreSync: {
|
|
147
147
|
type: 'boolean',
|
|
148
148
|
description: ( localize(
|
|
149
|
-
|
|
149
|
+
3649,
|
|
150
150
|
'When enabled, Settings Sync will not sync the user value of this configuration by default.'
|
|
151
151
|
))
|
|
152
152
|
},
|
|
@@ -190,7 +190,7 @@ defaultConfigurationExtPoint.setHandler((extensions, { added, removed }) => {
|
|
|
190
190
|
const registeredPropertyScheme = registeredProperties[key];
|
|
191
191
|
if (registeredPropertyScheme?.disallowConfigurationDefault) {
|
|
192
192
|
extension.collector.warn(( localize(
|
|
193
|
-
|
|
193
|
+
3650,
|
|
194
194
|
"Cannot register configuration defaults for '{0}'. This setting does not allow contributing configuration defaults.",
|
|
195
195
|
key
|
|
196
196
|
)));
|
|
@@ -200,7 +200,7 @@ defaultConfigurationExtPoint.setHandler((extensions, { added, removed }) => {
|
|
|
200
200
|
if (!OVERRIDE_PROPERTY_REGEX.test(key)) {
|
|
201
201
|
if (registeredPropertyScheme?.scope && !allowedScopes.includes(registeredPropertyScheme.scope)) {
|
|
202
202
|
extension.collector.warn(( localize(
|
|
203
|
-
|
|
203
|
+
3651,
|
|
204
204
|
"Cannot register configuration defaults for '{0}'. Only defaults for machine-overridable, window, resource and language overridable scoped settings are supported.",
|
|
205
205
|
key
|
|
206
206
|
)));
|
|
@@ -218,7 +218,7 @@ const configurationExtPoint = ExtensionsRegistry.registerExtensionPoint({
|
|
|
218
218
|
extensionPoint: 'configuration',
|
|
219
219
|
deps: [defaultConfigurationExtPoint],
|
|
220
220
|
jsonSchema: {
|
|
221
|
-
description: ( localize(
|
|
221
|
+
description: ( localize(3652, 'Contributes configuration settings.')),
|
|
222
222
|
oneOf: [
|
|
223
223
|
configurationEntrySchema,
|
|
224
224
|
{
|
|
@@ -243,7 +243,7 @@ configurationExtPoint.setHandler((extensions, { added, removed }) => {
|
|
|
243
243
|
function handleConfiguration(node, extension) {
|
|
244
244
|
const configuration = deepClone(node);
|
|
245
245
|
if (configuration.title && (typeof configuration.title !== 'string')) {
|
|
246
|
-
extension.collector.error(( localize(
|
|
246
|
+
extension.collector.error(( localize(3653, "'configuration.title' must be a string")));
|
|
247
247
|
}
|
|
248
248
|
validateProperties(configuration, extension);
|
|
249
249
|
configuration.id = node.id || extension.description.identifier.value;
|
|
@@ -256,7 +256,7 @@ configurationExtPoint.setHandler((extensions, { added, removed }) => {
|
|
|
256
256
|
const properties = configuration.properties;
|
|
257
257
|
if (properties) {
|
|
258
258
|
if (typeof properties !== 'object') {
|
|
259
|
-
extension.collector.error(( localize(
|
|
259
|
+
extension.collector.error(( localize(3654, "'configuration.properties' must be an object")));
|
|
260
260
|
configuration.properties = {};
|
|
261
261
|
}
|
|
262
262
|
for (const key in properties) {
|
|
@@ -269,12 +269,12 @@ configurationExtPoint.setHandler((extensions, { added, removed }) => {
|
|
|
269
269
|
}
|
|
270
270
|
if (( (seenProperties.has(key)))) {
|
|
271
271
|
delete properties[key];
|
|
272
|
-
extension.collector.warn(( localize(
|
|
272
|
+
extension.collector.warn(( localize(3655, "Cannot register '{0}'. This property is already registered.", key)));
|
|
273
273
|
continue;
|
|
274
274
|
}
|
|
275
275
|
if (!isObject(propertyConfiguration)) {
|
|
276
276
|
delete properties[key];
|
|
277
|
-
extension.collector.error(( localize(
|
|
277
|
+
extension.collector.error(( localize(3656, "configuration.properties property '{0}' must be an object", key)));
|
|
278
278
|
continue;
|
|
279
279
|
}
|
|
280
280
|
seenProperties.add(key);
|
|
@@ -284,7 +284,7 @@ configurationExtPoint.setHandler((extensions, { added, removed }) => {
|
|
|
284
284
|
const subNodes = configuration.allOf;
|
|
285
285
|
if (subNodes) {
|
|
286
286
|
extension.collector.error(( localize(
|
|
287
|
-
|
|
287
|
+
3657,
|
|
288
288
|
"'configuration.allOf' is deprecated and should no longer be used. Instead, pass multiple configuration sections as an array to the 'configuration' contribution point."
|
|
289
289
|
)));
|
|
290
290
|
for (const node of subNodes) {
|
|
@@ -327,7 +327,7 @@ jsonRegistry.registerSchema('vscode://schemas/workspaceConfig', {
|
|
|
327
327
|
'folders': {
|
|
328
328
|
minItems: 0,
|
|
329
329
|
uniqueItems: true,
|
|
330
|
-
description: ( localize(
|
|
330
|
+
description: ( localize(3658, "List of folders to be loaded in the workspace.")),
|
|
331
331
|
items: {
|
|
332
332
|
type: 'object',
|
|
333
333
|
defaultSnippets: [{ body: { path: '$1' } }],
|
|
@@ -336,13 +336,13 @@ jsonRegistry.registerSchema('vscode://schemas/workspaceConfig', {
|
|
|
336
336
|
path: {
|
|
337
337
|
type: 'string',
|
|
338
338
|
description: ( localize(
|
|
339
|
-
|
|
339
|
+
3659,
|
|
340
340
|
"A file path. e.g. `/root/folderA` or `./folderA` for a relative path that will be resolved against the location of the workspace file."
|
|
341
341
|
))
|
|
342
342
|
},
|
|
343
343
|
name: {
|
|
344
344
|
type: 'string',
|
|
345
|
-
description: ( localize(
|
|
345
|
+
description: ( localize(3660, "An optional name for the folder. "))
|
|
346
346
|
}
|
|
347
347
|
},
|
|
348
348
|
required: ['path']
|
|
@@ -350,11 +350,11 @@ jsonRegistry.registerSchema('vscode://schemas/workspaceConfig', {
|
|
|
350
350
|
properties: {
|
|
351
351
|
uri: {
|
|
352
352
|
type: 'string',
|
|
353
|
-
description: ( localize(
|
|
353
|
+
description: ( localize(3661, "URI of the folder"))
|
|
354
354
|
},
|
|
355
355
|
name: {
|
|
356
356
|
type: 'string',
|
|
357
|
-
description: ( localize(
|
|
357
|
+
description: ( localize(3660, "An optional name for the folder. "))
|
|
358
358
|
}
|
|
359
359
|
},
|
|
360
360
|
required: ['uri']
|
|
@@ -364,39 +364,39 @@ jsonRegistry.registerSchema('vscode://schemas/workspaceConfig', {
|
|
|
364
364
|
'settings': {
|
|
365
365
|
type: 'object',
|
|
366
366
|
default: {},
|
|
367
|
-
description: ( localize(
|
|
367
|
+
description: ( localize(3662, "Workspace settings")),
|
|
368
368
|
$ref: workspaceSettingsSchemaId
|
|
369
369
|
},
|
|
370
370
|
'launch': {
|
|
371
371
|
type: 'object',
|
|
372
372
|
default: { configurations: [], compounds: [] },
|
|
373
|
-
description: ( localize(
|
|
373
|
+
description: ( localize(3663, "Workspace launch configurations")),
|
|
374
374
|
$ref: launchSchemaId
|
|
375
375
|
},
|
|
376
376
|
'tasks': {
|
|
377
377
|
type: 'object',
|
|
378
378
|
default: { version: '2.0.0', tasks: [] },
|
|
379
|
-
description: ( localize(
|
|
379
|
+
description: ( localize(3664, "Workspace task configurations")),
|
|
380
380
|
$ref: tasksSchemaId
|
|
381
381
|
},
|
|
382
382
|
'extensions': {
|
|
383
383
|
type: 'object',
|
|
384
384
|
default: {},
|
|
385
|
-
description: ( localize(
|
|
385
|
+
description: ( localize(3665, "Workspace extensions")),
|
|
386
386
|
$ref: 'vscode://schemas/extensions'
|
|
387
387
|
},
|
|
388
388
|
'remoteAuthority': {
|
|
389
389
|
type: 'string',
|
|
390
390
|
doNotSuggest: true,
|
|
391
|
-
description: ( localize(
|
|
391
|
+
description: ( localize(3666, "The remote server where the workspace is located.")),
|
|
392
392
|
},
|
|
393
393
|
'transient': {
|
|
394
394
|
type: 'boolean',
|
|
395
395
|
doNotSuggest: true,
|
|
396
|
-
description: ( localize(
|
|
396
|
+
description: ( localize(3667, "A transient workspace will disappear when restarting or reloading.")),
|
|
397
397
|
}
|
|
398
398
|
},
|
|
399
|
-
errorMessage: ( localize(
|
|
399
|
+
errorMessage: ( localize(3668, "Unknown workspace configuration property"))
|
|
400
400
|
});
|
|
401
401
|
class SettingsTableRenderer extends Disposable {
|
|
402
402
|
constructor() {
|
|
@@ -412,7 +412,7 @@ class SettingsTableRenderer extends Disposable {
|
|
|
412
412
|
: [];
|
|
413
413
|
const properties = getAllConfigurationProperties(configuration);
|
|
414
414
|
const contrib = properties ? ( (Object.keys(properties))) : [];
|
|
415
|
-
const headers = [( localize(
|
|
415
|
+
const headers = [( localize(3669, "ID")), ( localize(3670, "Description")), ( localize(3671, "Default"))];
|
|
416
416
|
const rows = ( (contrib.sort((a, b) => a.localeCompare(b))
|
|
417
417
|
.map(key => {
|
|
418
418
|
return [
|
|
@@ -432,7 +432,7 @@ class SettingsTableRenderer extends Disposable {
|
|
|
432
432
|
}
|
|
433
433
|
( (Registry.as(Extensions$2.ExtensionFeaturesRegistry))).registerExtensionFeature({
|
|
434
434
|
id: 'configuration',
|
|
435
|
-
label: ( localize(
|
|
435
|
+
label: ( localize(3672, "Settings")),
|
|
436
436
|
access: {
|
|
437
437
|
canToggle: false
|
|
438
438
|
},
|
|
@@ -48,12 +48,12 @@ let WorkspacesFinderContribution = class WorkspacesFinderContribution extends Di
|
|
|
48
48
|
if (workspaces.length === 1) {
|
|
49
49
|
const workspaceFile = workspaces[0];
|
|
50
50
|
this.notificationService.prompt(Severity$1.Info, ( localize(
|
|
51
|
-
|
|
51
|
+
3673,
|
|
52
52
|
"This folder contains a workspace file '{0}'. Do you want to open it? [Learn more]({1}) about workspace files.",
|
|
53
53
|
workspaceFile,
|
|
54
54
|
'https://go.microsoft.com/fwlink/?linkid=2025315'
|
|
55
55
|
)), [{
|
|
56
|
-
label: ( localize(
|
|
56
|
+
label: ( localize(3674, "Open Workspace")),
|
|
57
57
|
run: () => this.hostService.openWindow([{ workspaceUri: joinPath(folder, workspaceFile) }])
|
|
58
58
|
}], {
|
|
59
59
|
neverShowAgain,
|
|
@@ -62,13 +62,13 @@ let WorkspacesFinderContribution = class WorkspacesFinderContribution extends Di
|
|
|
62
62
|
}
|
|
63
63
|
else if (workspaces.length > 1) {
|
|
64
64
|
this.notificationService.prompt(Severity$1.Info, ( localize(
|
|
65
|
-
|
|
65
|
+
3675,
|
|
66
66
|
"This folder contains multiple workspace files. Do you want to open one? [Learn more]({0}) about workspace files.",
|
|
67
67
|
'https://go.microsoft.com/fwlink/?linkid=2025315'
|
|
68
68
|
)), [{
|
|
69
|
-
label: ( localize(
|
|
69
|
+
label: ( localize(3676, "Select Workspace")),
|
|
70
70
|
run: () => {
|
|
71
|
-
this.quickInputService.pick(( (workspaces.map(workspace => ({ label: workspace })))), { placeHolder: ( localize(
|
|
71
|
+
this.quickInputService.pick(( (workspaces.map(workspace => ({ label: workspace })))), { placeHolder: ( localize(3677, "Select a workspace to open")) }).then(pick => {
|
|
72
72
|
if (pick) {
|
|
73
73
|
this.hostService.openWindow([{ workspaceUri: joinPath(folder, pick.label) }]);
|
|
74
74
|
}
|
|
@@ -94,7 +94,7 @@ registerAction2(class extends Action2 {
|
|
|
94
94
|
constructor() {
|
|
95
95
|
super({
|
|
96
96
|
id: 'workbench.action.openWorkspaceFromEditor',
|
|
97
|
-
title: ( localize2(
|
|
97
|
+
title: ( localize2(3674, "Open Workspace")),
|
|
98
98
|
f1: false,
|
|
99
99
|
menu: {
|
|
100
100
|
id: MenuId.EditorContent,
|
|
@@ -113,7 +113,7 @@ registerAction2(class extends Action2 {
|
|
|
113
113
|
if (contextService.getWorkbenchState() === 3 ) {
|
|
114
114
|
const workspaceConfiguration = contextService.getWorkspace().configuration;
|
|
115
115
|
if (workspaceConfiguration && isEqual(workspaceConfiguration, uri)) {
|
|
116
|
-
notificationService.info(( localize(
|
|
116
|
+
notificationService.info(( localize(3678, "This workspace is already open.")));
|
|
117
117
|
return;
|
|
118
118
|
}
|
|
119
119
|
}
|
|
@@ -92,7 +92,7 @@ class DefaultConfiguration extends DefaultConfiguration$1 {
|
|
|
92
92
|
}
|
|
93
93
|
class ApplicationConfiguration extends UserSettings {
|
|
94
94
|
constructor(userDataProfilesService, fileService, uriIdentityService, logService) {
|
|
95
|
-
super(userDataProfilesService.defaultProfile.settingsResource, { scopes: [1 ] }, uriIdentityService.extUri, fileService, logService);
|
|
95
|
+
super(userDataProfilesService.defaultProfile.settingsResource, { scopes: [1 ], skipUnregistered: true }, uriIdentityService.extUri, fileService, logService);
|
|
96
96
|
this._onDidChangeConfiguration = this._register(( new Emitter()));
|
|
97
97
|
this.onDidChangeConfiguration = this._onDidChangeConfiguration.event;
|
|
98
98
|
this._register(this.onDidChange(() => this.reloadConfigurationScheduler.schedule()));
|
|
@@ -1094,7 +1094,7 @@ let RegisterConfigurationSchemasContribution = class RegisterConfigurationSchema
|
|
|
1094
1094
|
} : workspaceSettingsSchema;
|
|
1095
1095
|
const configDefaultsSchema = {
|
|
1096
1096
|
type: 'object',
|
|
1097
|
-
description: ( localize(
|
|
1097
|
+
description: ( localize(3679, 'Contribute defaults for configurations')),
|
|
1098
1098
|
properties: Object.assign({}, this.filterDefaultOverridableProperties(machineOverridableSettings.properties), this.filterDefaultOverridableProperties(windowSettings.properties), this.filterDefaultOverridableProperties(resourceSettings.properties)),
|
|
1099
1099
|
patternProperties: {
|
|
1100
1100
|
[OVERRIDE_PROPERTY_PATTERN]: {
|
|
@@ -1181,7 +1181,8 @@ let UpdateExperimentalSettingsDefaults = class UpdateExperimentalSettingsDefault
|
|
|
1181
1181
|
const allProperties = this.configurationRegistry.getConfigurationProperties();
|
|
1182
1182
|
for (const property of properties) {
|
|
1183
1183
|
const schema = allProperties[property];
|
|
1184
|
-
|
|
1184
|
+
const tags = schema?.tags;
|
|
1185
|
+
if (!tags || (!tags.includes('experimental') && !tags.includes('onExP'))) {
|
|
1185
1186
|
continue;
|
|
1186
1187
|
}
|
|
1187
1188
|
if (( (this.processedExperimentalSettings.has(property)))) {
|
|
@@ -1214,7 +1215,7 @@ configurationRegistry.registerConfiguration({
|
|
|
1214
1215
|
properties: {
|
|
1215
1216
|
[APPLY_ALL_PROFILES_SETTING]: {
|
|
1216
1217
|
'type': 'array',
|
|
1217
|
-
description: ( localize(
|
|
1218
|
+
description: ( localize(3680, "Configure settings to be applied for all profiles.")),
|
|
1218
1219
|
'default': [],
|
|
1219
1220
|
'scope': 1 ,
|
|
1220
1221
|
additionalProperties: true,
|
|
@@ -100,7 +100,7 @@ let ConfigurationEditing = class ConfigurationEditing {
|
|
|
100
100
|
throw this.toConfigurationEditingError(10 , operation.target, operation);
|
|
101
101
|
}
|
|
102
102
|
throw ( (new ConfigurationEditingError(localize(
|
|
103
|
-
|
|
103
|
+
8951,
|
|
104
104
|
"Error while writing to {0}. {1}",
|
|
105
105
|
this.stringifyTarget(operation.target),
|
|
106
106
|
error.message
|
|
@@ -160,8 +160,8 @@ let ConfigurationEditing = class ConfigurationEditing {
|
|
|
160
160
|
}
|
|
161
161
|
}
|
|
162
162
|
onInvalidConfigurationError(error, operation) {
|
|
163
|
-
const openStandAloneConfigurationActionLabel = operation.workspaceStandAloneConfigurationKey === TASKS_CONFIGURATION_KEY ? ( localize(
|
|
164
|
-
: operation.workspaceStandAloneConfigurationKey === LAUNCH_CONFIGURATION_KEY ? ( localize(
|
|
163
|
+
const openStandAloneConfigurationActionLabel = operation.workspaceStandAloneConfigurationKey === TASKS_CONFIGURATION_KEY ? ( localize(8952, "Open Tasks Configuration"))
|
|
164
|
+
: operation.workspaceStandAloneConfigurationKey === LAUNCH_CONFIGURATION_KEY ? ( localize(8953, "Open Launch Configuration"))
|
|
165
165
|
: null;
|
|
166
166
|
if (openStandAloneConfigurationActionLabel) {
|
|
167
167
|
this.notificationService.prompt(Severity$1.Error, error.message, [{
|
|
@@ -171,18 +171,18 @@ let ConfigurationEditing = class ConfigurationEditing {
|
|
|
171
171
|
}
|
|
172
172
|
else {
|
|
173
173
|
this.notificationService.prompt(Severity$1.Error, error.message, [{
|
|
174
|
-
label: ( localize(
|
|
174
|
+
label: ( localize(8954, "Open Settings")),
|
|
175
175
|
run: () => this.openSettings(operation)
|
|
176
176
|
}]);
|
|
177
177
|
}
|
|
178
178
|
}
|
|
179
179
|
onConfigurationFileDirtyError(error, operation, scopes) {
|
|
180
|
-
const openStandAloneConfigurationActionLabel = operation.workspaceStandAloneConfigurationKey === TASKS_CONFIGURATION_KEY ? ( localize(
|
|
181
|
-
: operation.workspaceStandAloneConfigurationKey === LAUNCH_CONFIGURATION_KEY ? ( localize(
|
|
180
|
+
const openStandAloneConfigurationActionLabel = operation.workspaceStandAloneConfigurationKey === TASKS_CONFIGURATION_KEY ? ( localize(8952, "Open Tasks Configuration"))
|
|
181
|
+
: operation.workspaceStandAloneConfigurationKey === LAUNCH_CONFIGURATION_KEY ? ( localize(8953, "Open Launch Configuration"))
|
|
182
182
|
: null;
|
|
183
183
|
if (openStandAloneConfigurationActionLabel) {
|
|
184
184
|
this.notificationService.prompt(Severity$1.Error, error.message, [{
|
|
185
|
-
label: ( localize(
|
|
185
|
+
label: ( localize(8955, "Save and Retry")),
|
|
186
186
|
run: () => {
|
|
187
187
|
const key = operation.key ? `${operation.workspaceStandAloneConfigurationKey}.${operation.key}` : operation.workspaceStandAloneConfigurationKey;
|
|
188
188
|
this.writeConfiguration(operation.target, { key, value: operation.value }, { handleDirtyFile: 'save', scopes });
|
|
@@ -195,11 +195,11 @@ let ConfigurationEditing = class ConfigurationEditing {
|
|
|
195
195
|
}
|
|
196
196
|
else {
|
|
197
197
|
this.notificationService.prompt(Severity$1.Error, error.message, [{
|
|
198
|
-
label: ( localize(
|
|
198
|
+
label: ( localize(8955, "Save and Retry")),
|
|
199
199
|
run: () => this.writeConfiguration(operation.target, { key: operation.key, value: operation.value }, { handleDirtyFile: 'save', scopes })
|
|
200
200
|
},
|
|
201
201
|
{
|
|
202
|
-
label: ( localize(
|
|
202
|
+
label: ( localize(8954, "Open Settings")),
|
|
203
203
|
run: () => this.openSettings(operation)
|
|
204
204
|
}]);
|
|
205
205
|
}
|
|
@@ -238,82 +238,82 @@ let ConfigurationEditing = class ConfigurationEditing {
|
|
|
238
238
|
toErrorMessage(error, target, operation) {
|
|
239
239
|
switch (error) {
|
|
240
240
|
case 12 : return ( localize(
|
|
241
|
-
|
|
241
|
+
8956,
|
|
242
242
|
"Unable to write {0} because it is configured in system policy.",
|
|
243
243
|
operation.key
|
|
244
244
|
));
|
|
245
245
|
case 0 : return ( localize(
|
|
246
|
-
|
|
246
|
+
8957,
|
|
247
247
|
"Unable to write to {0} because {1} is not a registered configuration.",
|
|
248
248
|
this.stringifyTarget(target),
|
|
249
249
|
operation.key
|
|
250
250
|
));
|
|
251
251
|
case 1 : return ( localize(
|
|
252
|
-
|
|
252
|
+
8958,
|
|
253
253
|
"Unable to write {0} to Workspace Settings. This setting can be written only into User settings.",
|
|
254
254
|
operation.key
|
|
255
255
|
));
|
|
256
256
|
case 2 : return ( localize(
|
|
257
|
-
|
|
257
|
+
8959,
|
|
258
258
|
"Unable to write {0} to Workspace Settings. This setting can be written only into User settings.",
|
|
259
259
|
operation.key
|
|
260
260
|
));
|
|
261
261
|
case 3 : return ( localize(
|
|
262
|
-
|
|
262
|
+
8960,
|
|
263
263
|
"Unable to write to Folder Settings because {0} does not support the folder resource scope.",
|
|
264
264
|
operation.key
|
|
265
265
|
));
|
|
266
266
|
case 4 : return ( localize(
|
|
267
|
-
|
|
267
|
+
8961,
|
|
268
268
|
"Unable to write to User Settings because {0} does not support for global scope.",
|
|
269
269
|
operation.key
|
|
270
270
|
));
|
|
271
271
|
case 5 : return ( localize(
|
|
272
|
-
|
|
272
|
+
8962,
|
|
273
273
|
"Unable to write to Workspace Settings because {0} does not support for workspace scope in a multi folder workspace.",
|
|
274
274
|
operation.key
|
|
275
275
|
));
|
|
276
276
|
case 6 : return ( localize(
|
|
277
|
-
|
|
277
|
+
8963,
|
|
278
278
|
"Unable to write to Folder Settings because no resource is provided."
|
|
279
279
|
));
|
|
280
280
|
case 7 : return ( localize(
|
|
281
|
-
|
|
281
|
+
8964,
|
|
282
282
|
"Unable to write to Language Settings because {0} is not a resource language setting.",
|
|
283
283
|
operation.key
|
|
284
284
|
));
|
|
285
285
|
case 8 : return ( localize(
|
|
286
|
-
|
|
286
|
+
8965,
|
|
287
287
|
"Unable to write to {0} because no workspace is opened. Please open a workspace first and try again.",
|
|
288
288
|
this.stringifyTarget(target)
|
|
289
289
|
));
|
|
290
290
|
case 11 : {
|
|
291
291
|
if (operation.workspaceStandAloneConfigurationKey === TASKS_CONFIGURATION_KEY) {
|
|
292
292
|
return ( localize(
|
|
293
|
-
|
|
293
|
+
8966,
|
|
294
294
|
"Unable to write into the tasks configuration file. Please open it to correct errors/warnings in it and try again."
|
|
295
295
|
));
|
|
296
296
|
}
|
|
297
297
|
if (operation.workspaceStandAloneConfigurationKey === LAUNCH_CONFIGURATION_KEY) {
|
|
298
298
|
return ( localize(
|
|
299
|
-
|
|
299
|
+
8967,
|
|
300
300
|
"Unable to write into the launch configuration file. Please open it to correct errors/warnings in it and try again."
|
|
301
301
|
));
|
|
302
302
|
}
|
|
303
303
|
switch (target) {
|
|
304
304
|
case 1 :
|
|
305
305
|
return ( localize(
|
|
306
|
-
|
|
306
|
+
8968,
|
|
307
307
|
"Unable to write into user settings. Please open the user settings to correct errors/warnings in it and try again."
|
|
308
308
|
));
|
|
309
309
|
case 2 :
|
|
310
310
|
return ( localize(
|
|
311
|
-
|
|
311
|
+
8969,
|
|
312
312
|
"Unable to write into remote user settings. Please open the remote user settings to correct errors/warnings in it and try again."
|
|
313
313
|
));
|
|
314
314
|
case 3 :
|
|
315
315
|
return ( localize(
|
|
316
|
-
|
|
316
|
+
8970,
|
|
317
317
|
"Unable to write into workspace settings. Please open the workspace settings to correct errors/warnings in the file and try again."
|
|
318
318
|
));
|
|
319
319
|
case 4 : {
|
|
@@ -325,7 +325,7 @@ let ConfigurationEditing = class ConfigurationEditing {
|
|
|
325
325
|
}
|
|
326
326
|
}
|
|
327
327
|
return ( localize(
|
|
328
|
-
|
|
328
|
+
8971,
|
|
329
329
|
"Unable to write into folder settings. Please open the '{0}' folder settings to correct errors/warnings in it and try again.",
|
|
330
330
|
workspaceFolderName
|
|
331
331
|
));
|
|
@@ -337,30 +337,30 @@ let ConfigurationEditing = class ConfigurationEditing {
|
|
|
337
337
|
case 9 : {
|
|
338
338
|
if (operation.workspaceStandAloneConfigurationKey === TASKS_CONFIGURATION_KEY) {
|
|
339
339
|
return ( localize(
|
|
340
|
-
|
|
340
|
+
8972,
|
|
341
341
|
"Unable to write into tasks configuration file because the file has unsaved changes. Please save it first and then try again."
|
|
342
342
|
));
|
|
343
343
|
}
|
|
344
344
|
if (operation.workspaceStandAloneConfigurationKey === LAUNCH_CONFIGURATION_KEY) {
|
|
345
345
|
return ( localize(
|
|
346
|
-
|
|
346
|
+
8973,
|
|
347
347
|
"Unable to write into launch configuration file because the file has unsaved changes. Please save it first and then try again."
|
|
348
348
|
));
|
|
349
349
|
}
|
|
350
350
|
switch (target) {
|
|
351
351
|
case 1 :
|
|
352
352
|
return ( localize(
|
|
353
|
-
|
|
353
|
+
8974,
|
|
354
354
|
"Unable to write into user settings because the file has unsaved changes. Please save the user settings file first and then try again."
|
|
355
355
|
));
|
|
356
356
|
case 2 :
|
|
357
357
|
return ( localize(
|
|
358
|
-
|
|
358
|
+
8975,
|
|
359
359
|
"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."
|
|
360
360
|
));
|
|
361
361
|
case 3 :
|
|
362
362
|
return ( localize(
|
|
363
|
-
|
|
363
|
+
8976,
|
|
364
364
|
"Unable to write into workspace settings because the file has unsaved changes. Please save the workspace settings file first and then try again."
|
|
365
365
|
));
|
|
366
366
|
case 4 : {
|
|
@@ -372,7 +372,7 @@ let ConfigurationEditing = class ConfigurationEditing {
|
|
|
372
372
|
}
|
|
373
373
|
}
|
|
374
374
|
return ( localize(
|
|
375
|
-
|
|
375
|
+
8977,
|
|
376
376
|
"Unable to write into folder settings because the file has unsaved changes. Please save the '{0}' folder settings file first and then try again.",
|
|
377
377
|
workspaceFolderName
|
|
378
378
|
));
|
|
@@ -384,40 +384,40 @@ let ConfigurationEditing = class ConfigurationEditing {
|
|
|
384
384
|
case 10 :
|
|
385
385
|
if (operation.workspaceStandAloneConfigurationKey === TASKS_CONFIGURATION_KEY) {
|
|
386
386
|
return ( localize(
|
|
387
|
-
|
|
387
|
+
8978,
|
|
388
388
|
"Unable to write into tasks configuration file because the content of the file is newer."
|
|
389
389
|
));
|
|
390
390
|
}
|
|
391
391
|
if (operation.workspaceStandAloneConfigurationKey === LAUNCH_CONFIGURATION_KEY) {
|
|
392
392
|
return ( localize(
|
|
393
|
-
|
|
393
|
+
8979,
|
|
394
394
|
"Unable to write into launch configuration file because the content of the file is newer."
|
|
395
395
|
));
|
|
396
396
|
}
|
|
397
397
|
switch (target) {
|
|
398
398
|
case 1 :
|
|
399
399
|
return ( localize(
|
|
400
|
-
|
|
400
|
+
8980,
|
|
401
401
|
"Unable to write into user settings because the content of the file is newer."
|
|
402
402
|
));
|
|
403
403
|
case 2 :
|
|
404
404
|
return ( localize(
|
|
405
|
-
|
|
405
|
+
8981,
|
|
406
406
|
"Unable to write into remote user settings because the content of the file is newer."
|
|
407
407
|
));
|
|
408
408
|
case 3 :
|
|
409
409
|
return ( localize(
|
|
410
|
-
|
|
410
|
+
8982,
|
|
411
411
|
"Unable to write into workspace settings because the content of the file is newer."
|
|
412
412
|
));
|
|
413
413
|
case 4 :
|
|
414
414
|
return ( localize(
|
|
415
|
-
|
|
415
|
+
8983,
|
|
416
416
|
"Unable to write into folder settings because the content of the file is newer."
|
|
417
417
|
));
|
|
418
418
|
}
|
|
419
419
|
case 13 : return ( localize(
|
|
420
|
-
|
|
420
|
+
8984,
|
|
421
421
|
"Unable to write to {0} because of an internal error.",
|
|
422
422
|
this.stringifyTarget(target)
|
|
423
423
|
));
|
|
@@ -426,13 +426,13 @@ let ConfigurationEditing = class ConfigurationEditing {
|
|
|
426
426
|
stringifyTarget(target) {
|
|
427
427
|
switch (target) {
|
|
428
428
|
case 1 :
|
|
429
|
-
return ( localize(
|
|
429
|
+
return ( localize(8985, "User Settings"));
|
|
430
430
|
case 2 :
|
|
431
|
-
return ( localize(
|
|
431
|
+
return ( localize(8986, "Remote User Settings"));
|
|
432
432
|
case 3 :
|
|
433
|
-
return ( localize(
|
|
433
|
+
return ( localize(8987, "Workspace Settings"));
|
|
434
434
|
case 4 :
|
|
435
|
-
return ( localize(
|
|
435
|
+
return ( localize(8988, "Folder Settings"));
|
|
436
436
|
default:
|
|
437
437
|
return '';
|
|
438
438
|
}
|
|
@@ -170,7 +170,7 @@ class BaseConfigurationResolverService extends AbstractVariableResolverService {
|
|
|
170
170
|
result = await this.commandService.executeCommand(commandId, configuration);
|
|
171
171
|
if (typeof result !== 'string' && !isUndefinedOrNull(result)) {
|
|
172
172
|
throw ( (new Error(localize(
|
|
173
|
-
|
|
173
|
+
8989,
|
|
174
174
|
"Cannot substitute command variable '{0}' because command did not return a result of type string.",
|
|
175
175
|
commandId
|
|
176
176
|
))));
|
|
@@ -222,7 +222,7 @@ class BaseConfigurationResolverService extends AbstractVariableResolverService {
|
|
|
222
222
|
showUserInput(section, variable, inputInfos) {
|
|
223
223
|
if (!inputInfos) {
|
|
224
224
|
return Promise.reject(( (new Error(( localize(
|
|
225
|
-
|
|
225
|
+
8990,
|
|
226
226
|
"Variable '{0}' must be defined in an '{1}' section of the debug or task configuration.",
|
|
227
227
|
variable,
|
|
228
228
|
'inputs'
|
|
@@ -232,7 +232,7 @@ class BaseConfigurationResolverService extends AbstractVariableResolverService {
|
|
|
232
232
|
if (info) {
|
|
233
233
|
const missingAttribute = (attrName) => {
|
|
234
234
|
throw ( (new Error(localize(
|
|
235
|
-
|
|
235
|
+
8991,
|
|
236
236
|
"Input variable '{0}' is of type '{1}' and must include '{2}'.",
|
|
237
237
|
variable,
|
|
238
238
|
info.type,
|
|
@@ -284,7 +284,7 @@ class BaseConfigurationResolverService extends AbstractVariableResolverService {
|
|
|
284
284
|
value: value
|
|
285
285
|
};
|
|
286
286
|
if (value === info.default) {
|
|
287
|
-
item.description = ( localize(
|
|
287
|
+
item.description = ( localize(8992, "(Default)"));
|
|
288
288
|
picks.unshift(item);
|
|
289
289
|
}
|
|
290
290
|
else if (!info.default && value === previousPickedValue) {
|
|
@@ -313,7 +313,7 @@ class BaseConfigurationResolverService extends AbstractVariableResolverService {
|
|
|
313
313
|
return result;
|
|
314
314
|
}
|
|
315
315
|
throw ( (new Error(localize(
|
|
316
|
-
|
|
316
|
+
8993,
|
|
317
317
|
"Cannot substitute input variable '{0}' because command '{1}' did not return a result of type string.",
|
|
318
318
|
variable,
|
|
319
319
|
info.command
|
|
@@ -322,14 +322,14 @@ class BaseConfigurationResolverService extends AbstractVariableResolverService {
|
|
|
322
322
|
}
|
|
323
323
|
default:
|
|
324
324
|
throw ( (new Error(localize(
|
|
325
|
-
|
|
325
|
+
8994,
|
|
326
326
|
"Input variable '{0}' can only be of type 'promptString', 'pickString', or 'command'.",
|
|
327
327
|
variable
|
|
328
328
|
))));
|
|
329
329
|
}
|
|
330
330
|
}
|
|
331
331
|
return Promise.reject(( (new Error(( localize(
|
|
332
|
-
|
|
332
|
+
8995,
|
|
333
333
|
"Undefined input variable '{0}' encountered. Remove or define '{0}' to continue.",
|
|
334
334
|
variable
|
|
335
335
|
))))));
|
package/vscode/src/vs/workbench/services/workspaces/browser/abstractWorkspaceEditingService.js
CHANGED
|
@@ -53,8 +53,8 @@ let AbstractWorkspaceEditingService = class AbstractWorkspaceEditingService exte
|
|
|
53
53
|
availableFileSystems.unshift(Schemas.vscodeRemote);
|
|
54
54
|
}
|
|
55
55
|
let workspacePath = await this.fileDialogService.showSaveDialog({
|
|
56
|
-
saveLabel: mnemonicButtonLabel(( localize(
|
|
57
|
-
title: ( localize(
|
|
56
|
+
saveLabel: mnemonicButtonLabel(( localize(3681, "Save"))),
|
|
57
|
+
title: ( localize(3682, "Save Workspace")),
|
|
58
58
|
filters: WORKSPACE_FILTER,
|
|
59
59
|
defaultUri: joinPath(await this.fileDialogService.defaultWorkspacePath(), this.getNewWorkspaceName()),
|
|
60
60
|
availableFileSystems
|
|
@@ -255,14 +255,14 @@ let AbstractWorkspaceEditingService = class AbstractWorkspaceEditingService exte
|
|
|
255
255
|
}
|
|
256
256
|
onInvalidWorkspaceConfigurationFileError() {
|
|
257
257
|
const message = ( localize(
|
|
258
|
-
|
|
258
|
+
3683,
|
|
259
259
|
"Unable to write into workspace configuration file. Please open the file to correct errors/warnings in it and try again."
|
|
260
260
|
));
|
|
261
261
|
this.askToOpenWorkspaceConfigurationFile(message);
|
|
262
262
|
}
|
|
263
263
|
askToOpenWorkspaceConfigurationFile(message) {
|
|
264
264
|
this.notificationService.prompt(Severity$1.Error, message, [{
|
|
265
|
-
label: ( localize(
|
|
265
|
+
label: ( localize(3684, "Open Workspace Configuration")),
|
|
266
266
|
run: () => this.commandService.executeCommand('workbench.action.openWorkspaceConfigFile')
|
|
267
267
|
}]);
|
|
268
268
|
}
|